==> Building on glaceon ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/curl ./ .SRCINFO 1,836 100% 0.00kB/s 0:00:00 1,836 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=10/12) .nvchecker.toml 183 100% 178.71kB/s 0:00:00 183 100% 178.71kB/s 0:00:00 (xfr#2, to-chk=9/12) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=8/12) PKGBUILD 5,466 100% 5.21MB/s 0:00:00 5,466 100% 5.21MB/s 0:00:00 (xfr#4, to-chk=7/12) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=6/12) curl-8.16.0-1.log 731 100% 713.87kB/s 0:00:00 731 100% 713.87kB/s 0:00:00 (xfr#6, to-chk=5/12) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE keys/ keys/pgp/ keys/pgp/27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2.asc 1,680 100% 1.60MB/s 0:00:00 1,680 100% 1.60MB/s 0:00:00 (xfr#7, to-chk=0/12) sent 5,609 bytes received 207 bytes 11,632.00 bytes/sec total size is 10,390 speedup is 1.79 ==> Ensuring required PGP keys are present...  -> Checking for 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2... ==> Patching arch to riscv64... ==> Running pkgctl build --arch riscv64 --repo extra on remote host... ==> WARNING: unsupported architecture: riscv64 ==> Building curl  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building curl for [extra] (riscv64) ]2;🔵 Container arch-nspawn-2466273 on glaceon.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ==> Making package: curl 8.16.0-1 (Thu Sep 11 09:55:03 2025) ==> Retrieving sources...  -> Cloning curl git repo... Cloning into bare repository '/home/felix/packages/curl/curl'... remote: Enumerating objects: 403564 remote: Enumerating objects: 404095, done. remote: Counting objects: 0% (1/531) remote: Counting objects: 1% (6/531) remote: Counting objects: 2% (11/531) remote: Counting objects: 3% (16/531) remote: Counting objects: 4% (22/531) remote: Counting objects: 5% (27/531) remote: Counting objects: 6% (32/531) remote: Counting objects: 7% (38/531) remote: Counting objects: 8% (43/531) remote: Counting objects: 9% (48/531) remote: Counting objects: 10% (54/531) remote: Counting objects: 11% (59/531) remote: Counting objects: 12% (64/531) remote: Counting objects: 13% (70/531) remote: Counting objects: 14% (75/531) remote: Counting objects: 15% (80/531) remote: Counting objects: 16% (85/531) remote: Counting objects: 17% (91/531) remote: Counting objects: 18% (96/531) remote: Counting objects: 19% (101/531) remote: Counting objects: 20% (107/531) remote: Counting objects: 21% (112/531) remote: Counting objects: 22% (117/531) remote: Counting objects: 23% (123/531) remote: Counting objects: 24% (128/531) remote: Counting objects: 25% (133/531) remote: Counting objects: 26% (139/531) remote: Counting objects: 27% (144/531) remote: Counting objects: 28% (149/531) remote: Counting objects: 29% (154/531) remote: Counting objects: 30% (160/531) remote: Counting objects: 31% (165/531) remote: Counting objects: 32% (170/531) remote: Counting objects: 33% (176/531) remote: Counting objects: 34% (181/531) remote: Counting objects: 35% (186/531) remote: Counting objects: 36% (192/531) remote: Counting objects: 37% (197/531) remote: Counting objects: 38% (202/531) remote: Counting objects: 39% (208/531) remote: Counting objects: 40% (213/531) remote: Counting objects: 41% (218/531) remote: Counting objects: 42% (224/531) remote: Counting objects: 43% (229/531) remote: Counting objects: 44% (234/531) remote: Counting objects: 45% (239/531) remote: Counting objects: 46% (245/531) remote: Counting objects: 47% (250/531) remote: Counting objects: 48% (255/531) remote: Counting objects: 49% (261/531) remote: Counting objects: 50% (266/531) remote: Counting objects: 51% (271/531) remote: Counting objects: 52% (277/531) remote: Counting objects: 53% (282/531) remote: Counting objects: 54% (287/531) remote: Counting objects: 55% (293/531) remote: Counting objects: 56% (298/531) remote: Counting objects: 57% (303/531) remote: Counting objects: 58% (308/531) remote: Counting objects: 59% (314/531) remote: Counting objects: 60% (319/531) remote: Counting objects: 61% (324/531) remote: Counting objects: 62% (330/531) remote: Counting objects: 63% (335/531) remote: Counting objects: 64% (340/531) remote: Counting objects: 65% (346/531) remote: Counting objects: 66% (351/531) remote: Counting objects: 67% (356/531) remote: Counting objects: 68% (362/531) remote: Counting objects: 69% (367/531) remote: Counting objects: 70% (372/531) remote: Counting objects: 71% (378/531) remote: Counting objects: 72% (383/531) remote: Counting objects: 73% (388/531) remote: Counting objects: 74% (393/531) remote: Counting objects: 75% (399/531) remote: Counting objects: 76% (404/531) remote: Counting objects: 77% (409/531) remote: Counting objects: 78% (415/531) remote: Counting objects: 79% (420/531) remote: Counting objects: 80% (425/531) remote: Counting objects: 81% (431/531) remote: Counting objects: 82% (436/531) remote: Counting objects: 83% (441/531) remote: Counting objects: 84% (447/531) remote: Counting objects: 85% (452/531) remote: Counting objects: 86% (457/531) remote: Counting objects: 87% (462/531) remote: Counting objects: 88% (468/531) remote: Counting objects: 89% (473/531) remote: Counting objects: 90% (478/531) remote: Counting objects: 91% (484/531) remote: Counting objects: 92% (489/531) remote: Counting objects: 93% (494/531) remote: Counting objects: 94% (500/531) remote: Counting objects: 95% (505/531) remote: Counting objects: 96% (510/531) remote: Counting objects: 97% (516/531) remote: Counting objects: 98% (521/531) remote: Counting objects: 99% (526/531) remote: Counting objects: 100% (531/531) remote: Counting objects: 100% (531/531), done. remote: Compressing objects: 0% (1/144) remote: Compressing objects: 1% (2/144) remote: Compressing objects: 2% (3/144) remote: Compressing objects: 3% (5/144) remote: Compressing objects: 4% (6/144) remote: Compressing objects: 5% (8/144) remote: Compressing objects: 6% (9/144) remote: Compressing objects: 7% (11/144) remote: Compressing objects: 8% (12/144) remote: Compressing objects: 9% (13/144) remote: Compressing objects: 10% (15/144) remote: Compressing objects: 11% (16/144) remote: Compressing objects: 12% (18/144) remote: Compressing objects: 13% (19/144) remote: Compressing objects: 14% (21/144) remote: Compressing objects: 15% (22/144) remote: Compressing objects: 16% (24/144) remote: Compressing objects: 17% (25/144) remote: Compressing objects: 18% (26/144) remote: Compressing objects: 19% (28/144) remote: Compressing objects: 20% (29/144) remote: Compressing objects: 21% (31/144) remote: Compressing objects: 22% (32/144) remote: Compressing objects: 23% (34/144) remote: Compressing objects: 24% (35/144) remote: Compressing objects: 25% (36/144) remote: Compressing objects: 26% (38/144) remote: Compressing objects: 27% (39/144) remote: Compressing objects: 28% (41/144) remote: Compressing objects: 29% (42/144) remote: Compressing objects: 30% (44/144) remote: Compressing objects: 31% (45/144) remote: Compressing objects: 32% (47/144) remote: Compressing objects: 33% (48/144) remote: Compressing objects: 34% (49/144) remote: Compressing objects: 35% (51/144) remote: Compressing objects: 36% (52/144) remote: Compressing objects: 37% (54/144) remote: Compressing objects: 38% (55/144) remote: Compressing objects: 39% (57/144) remote: Compressing objects: 40% (58/144) remote: Compressing objects: 41% (60/144) remote: Compressing objects: 42% (61/144) remote: Compressing objects: 43% (62/144) remote: Compressing objects: 44% (64/144) remote: Compressing objects: 45% (65/144) remote: Compressing objects: 46% (67/144) remote: Compressing objects: 47% (68/144) remote: Compressing objects: 48% (70/144) remote: Compressing objects: 49% (71/144) remote: Compressing objects: 50% (72/144) remote: Compressing objects: 51% (74/144) remote: Compressing objects: 52% (75/144) remote: Compressing objects: 53% (77/144) remote: Compressing objects: 54% (78/144) remote: Compressing objects: 55% (80/144) remote: Compressing objects: 56% (81/144) remote: Compressing objects: 57% (83/144) remote: Compressing objects: 58% (84/144) remote: Compressing objects: 59% (85/144) remote: Compressing objects: 60% (87/144) remote: Compressing objects: 61% (88/144) remote: Compressing objects: 62% (90/144) remote: Compressing objects: 63% (91/144) remote: Compressing objects: 64% (93/144) remote: Compressing objects: 65% (94/144) remote: Compressing objects: 66% (96/144) remote: Compressing objects: 67% (97/144) remote: Compressing objects: 68% (98/144) remote: Compressing objects: 69% (100/144) remote: Compressing objects: 70% (101/144) remote: Compressing objects: 71% (103/144) remote: Compressing objects: 72% (104/144) remote: Compressing objects: 73% (106/144) remote: Compressing objects: 74% (107/144) remote: Compressing objects: 75% (108/144) remote: Compressing objects: 76% (110/144) remote: Compressing objects: 77% (111/144) remote: Compressing objects: 78% (113/144) remote: Compressing objects: 79% (114/144) remote: Compressing objects: 80% (116/144) remote: Compressing objects: 81% (117/144) remote: Compressing objects: 82% (119/144) remote: Compressing objects: 83% (120/144) remote: Compressing objects: 84% (121/144) remote: Compressing objects: 85% (123/144) remote: Compressing objects: 86% (124/144) remote: Compressing objects: 87% (126/144) remote: Compressing objects: 88% (127/144) remote: Compressing objects: 89% (129/144) remote: Compressing objects: 90% (130/144) remote: Compressing objects: 91% (132/144) remote: Compressing objects: 92% (133/144) remote: Compressing objects: 93% (134/144) remote: Compressing objects: 94% (136/144) remote: Compressing objects: 95% (137/144) remote: Compressing objects: 96% (139/144) remote: Compressing objects: 97% (140/144) remote: Compressing objects: 98% (142/144) remote: Compressing objects: 99% (143/144) remote: Compressing objects: 100% (144/144) remote: Compressing objects: 100% (144/144), done. Receiving objects: 0% (1/404095) Receiving objects: 1% (4041/404095), 1.73 MiB | 3.44 MiB/s Receiving objects: 1% (6037/404095), 1.73 MiB | 3.44 MiB/s Receiving objects: 2% (8082/404095), 3.73 MiB | 3.72 MiB/s Receiving objects: 3% (12123/404095), 6.58 MiB | 4.38 MiB/s Receiving objects: 4% (16164/404095), 6.58 MiB | 4.38 MiB/s Receiving objects: 4% (16786/404095), 6.58 MiB | 4.38 MiB/s Receiving objects: 5% (20205/404095), 9.26 MiB | 4.62 MiB/s Receiving objects: 6% (24246/404095), 9.26 MiB | 4.62 MiB/s Receiving objects: 7% (28287/404095), 11.34 MiB | 4.53 MiB/s Receiving objects: 8% (32328/404095), 11.34 MiB | 4.53 MiB/s Receiving objects: 8% (35610/404095), 11.34 MiB | 4.53 MiB/s Receiving objects: 9% (36369/404095), 13.18 MiB | 4.39 MiB/s Receiving objects: 10% (40410/404095), 16.34 MiB | 4.66 MiB/s Receiving objects: 10% (44225/404095), 16.34 MiB | 4.66 MiB/s Receiving objects: 11% (44451/404095), 19.48 MiB | 4.87 MiB/s Receiving objects: 12% (48492/404095), 23.09 MiB | 5.13 MiB/s Receiving objects: 13% (52533/404095), 23.09 MiB | 5.13 MiB/s Receiving objects: 13% (53429/404095), 23.09 MiB | 5.13 MiB/s Receiving objects: 14% (56574/404095), 26.61 MiB | 5.53 MiB/s Receiving objects: 15% (60615/404095), 31.11 MiB | 6.08 MiB/s Receiving objects: 16% (64656/404095), 31.11 MiB | 6.08 MiB/s Receiving objects: 16% (64820/404095), 31.11 MiB | 6.08 MiB/s Receiving objects: 17% (68697/404095), 35.61 MiB | 6.45 MiB/s Receiving objects: 18% (72738/404095), 40.27 MiB | 6.89 MiB/s Receiving objects: 18% (76622/404095), 40.27 MiB | 6.89 MiB/s Receiving objects: 19% (76779/404095), 44.71 MiB | 7.42 MiB/s Receiving objects: 20% (80819/404095), 44.71 MiB | 7.42 MiB/s Receiving objects: 21% (84860/404095), 48.79 MiB | 7.91 MiB/s Receiving objects: 22% (88901/404095), 48.79 MiB | 7.91 MiB/s Receiving objects: 22% (92861/404095), 48.79 MiB | 7.91 MiB/s Receiving objects: 23% (92942/404095), 48.79 MiB | 7.91 MiB/s Receiving objects: 24% (96983/404095), 52.85 MiB | 8.11 MiB/s Receiving objects: 25% (101024/404095), 52.85 MiB | 8.11 MiB/s Receiving objects: 26% (105065/404095), 57.11 MiB | 8.36 MiB/s Receiving objects: 27% (109106/404095), 57.11 MiB | 8.36 MiB/s Receiving objects: 27% (112846/404095), 57.11 MiB | 8.36 MiB/s Receiving objects: 28% (113147/404095), 61.16 MiB | 8.46 MiB/s Receiving objects: 29% (117188/404095), 61.16 MiB | 8.46 MiB/s Receiving objects: 30% (121229/404095), 64.92 MiB | 8.51 MiB/s Receiving objects: 31% (125270/404095), 64.92 MiB | 8.51 MiB/s Receiving objects: 32% (129311/404095), 64.92 MiB | 8.51 MiB/s Receiving objects: 33% (133352/404095), 64.92 MiB | 8.51 MiB/s Receiving objects: 33% (135835/404095), 64.92 MiB | 8.51 MiB/s Receiving objects: 34% (137393/404095), 69.16 MiB | 8.46 MiB/s Receiving objects: 35% (141434/404095), 69.16 MiB | 8.46 MiB/s Receiving objects: 36% (145475/404095), 73.63 MiB | 8.45 MiB/s Receiving objects: 37% (149516/404095), 73.63 MiB | 8.45 MiB/s Receiving objects: 38% (153557/404095), 73.63 MiB | 8.45 MiB/s Receiving objects: 38% (157137/404095), 73.63 MiB | 8.45 MiB/s Receiving objects: 39% (157598/404095), 77.72 MiB | 8.32 MiB/s Receiving objects: 40% (161638/404095), 77.72 MiB | 8.32 MiB/s Receiving objects: 41% (165679/404095), 77.72 MiB | 8.32 MiB/s Receiving objects: 42% (169720/404095), 77.72 MiB | 8.32 MiB/s Receiving objects: 43% (173761/404095), 77.72 MiB | 8.32 MiB/s Receiving objects: 44% (177802/404095), 77.72 MiB | 8.32 MiB/s Receiving objects: 45% (181843/404095), 77.72 MiB | 8.32 MiB/s Receiving objects: 46% (185884/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 47% (189925/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 48% (193966/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 49% (198007/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 50% (202048/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 51% (206089/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 52% (210130/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 53% (214171/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 54% (218212/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 55% (222253/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 55% (225004/404095), 82.44 MiB | 8.38 MiB/s Receiving objects: 56% (226294/404095), 87.30 MiB | 8.56 MiB/s Receiving objects: 57% (230335/404095), 87.30 MiB | 8.56 MiB/s Receiving objects: 58% (234376/404095), 87.30 MiB | 8.56 MiB/s Receiving objects: 59% (238417/404095), 87.30 MiB | 8.56 MiB/s Receiving objects: 60% (242457/404095), 87.30 MiB | 8.56 MiB/s Receiving objects: 61% (246498/404095), 87.30 MiB | 8.56 MiB/s Receiving objects: 62% (250539/404095), 90.36 MiB | 8.34 MiB/s Receiving objects: 62% (254439/404095), 90.36 MiB | 8.34 MiB/s Receiving objects: 63% (254580/404095), 90.36 MiB | 8.34 MiB/s Receiving objects: 64% (258621/404095), 93.23 MiB | 8.03 MiB/s Receiving objects: 65% (262662/404095), 96.03 MiB | 7.75 MiB/s Receiving objects: 66% (266703/404095), 96.03 MiB | 7.75 MiB/s Receiving objects: 66% (268171/404095), 96.03 MiB | 7.75 MiB/s Receiving objects: 67% (270744/404095), 98.85 MiB | 7.54 MiB/s Receiving objects: 68% (274785/404095), 101.80 MiB | 7.25 MiB/s Receiving objects: 69% (278826/404095), 101.80 MiB | 7.25 MiB/s Receiving objects: 70% (282867/404095), 101.80 MiB | 7.25 MiB/s Receiving objects: 70% (286847/404095), 101.80 MiB | 7.25 MiB/s Receiving objects: 71% (286908/404095), 101.80 MiB | 7.25 MiB/s Receiving objects: 72% (290949/404095), 105.33 MiB | 7.04 MiB/s Receiving objects: 73% (294990/404095), 105.33 MiB | 7.04 MiB/s Receiving objects: 74% (299031/404095), 105.33 MiB | 7.04 MiB/s Receiving objects: 75% (303072/404095), 105.33 MiB | 7.04 MiB/s Receiving objects: 76% (307113/404095), 105.33 MiB | 7.04 MiB/s Receiving objects: 77% (311154/404095), 110.02 MiB | 7.18 MiB/s Receiving objects: 78% (315195/404095), 110.02 MiB | 7.18 MiB/s Receiving objects: 79% (319236/404095), 110.02 MiB | 7.18 MiB/s Receiving objects: 80% (323276/404095), 110.02 MiB | 7.18 MiB/s Receiving objects: 81% (327317/404095), 110.02 MiB | 7.18 MiB/s Receiving objects: 81% (327554/404095), 115.11 MiB | 7.26 MiB/s Receiving objects: 81% (327565/404095), 122.25 MiB | 7.09 MiB/s Receiving objects: 82% (331358/404095), 122.25 MiB | 7.09 MiB/s Receiving objects: 83% (335399/404095), 122.25 MiB | 7.09 MiB/s Receiving objects: 84% (339440/404095), 122.25 MiB | 7.09 MiB/s Receiving objects: 85% (343481/404095), 125.71 MiB | 7.22 MiB/s Receiving objects: 86% (347522/404095), 125.71 MiB | 7.22 MiB/s Receiving objects: 86% (349846/404095), 129.45 MiB | 7.43 MiB/s Receiving objects: 86% (349846/404095), 140.93 MiB | 8.70 MiB/s Receiving objects: 86% (349846/404095), 153.86 MiB | 9.74 MiB/s Receiving objects: 86% (349846/404095), 166.66 MiB | 10.10 MiB/s Receiving objects: 87% (351563/404095), 173.56 MiB | 11.05 MiB/s Receiving objects: 88% (355604/404095), 173.56 MiB | 11.05 MiB/s Receiving objects: 89% (359645/404095), 173.56 MiB | 11.05 MiB/s Receiving objects: 89% (363610/404095), 173.56 MiB | 11.05 MiB/s Receiving objects: 90% (363686/404095), 173.56 MiB | 11.05 MiB/s Receiving objects: 91% (367727/404095), 177.92 MiB | 10.67 MiB/s Receiving objects: 92% (371768/404095), 177.92 MiB | 10.67 MiB/s Receiving objects: 93% (375809/404095), 177.92 MiB | 10.67 MiB/s Receiving objects: 93% (377618/404095), 182.89 MiB | 10.92 MiB/s Receiving objects: 94% (379850/404095), 189.75 MiB | 11.13 MiB/s Receiving objects: 95% (383891/404095), 189.75 MiB | 11.13 MiB/s Receiving objects: 96% (387932/404095), 196.00 MiB | 11.26 MiB/s Receiving objects: 96% (388520/404095), 196.00 MiB | 11.26 MiB/s Receiving objects: 97% (391973/404095), 196.00 MiB | 11.26 MiB/s Receiving objects: 98% (396014/404095), 196.00 MiB | 11.26 MiB/s Receiving objects: 99% (400055/404095), 201.29 MiB | 11.11 MiB/s remote: Total 404095 (delta 501), reused 394 (delta 387), pack-reused 403564 (from 3) Receiving objects: 100% (404095/404095), 201.29 MiB | 11.11 MiB/s Receiving objects: 100% (404095/404095), 204.30 MiB | 8.26 MiB/s, done. Resolving deltas: 0% (0/317712) Resolving deltas: 1% (3178/317712) Resolving deltas: 2% (6355/317712) Resolving deltas: 2% (7777/317712) Resolving deltas: 3% (9533/317712) Resolving deltas: 4% (12709/317712) Resolving deltas: 5% (15887/317712) Resolving deltas: 6% (19063/317712) Resolving deltas: 6% (19300/317712) Resolving deltas: 7% (22240/317712) Resolving deltas: 7% (24383/317712) Resolving deltas: 8% (25417/317712) Resolving deltas: 8% (28167/317712) Resolving deltas: 9% (28595/317712) Resolving deltas: 10% (31772/317712) Resolving deltas: 11% (34949/317712) Resolving deltas: 12% (38126/317712) Resolving deltas: 13% (41303/317712) Resolving deltas: 14% (44480/317712) Resolving deltas: 14% (45386/317712) Resolving deltas: 15% (47657/317712) Resolving deltas: 16% (50834/317712) Resolving deltas: 16% (51241/317712) Resolving deltas: 17% (54012/317712) Resolving deltas: 17% (55068/317712) Resolving deltas: 18% (57189/317712) Resolving deltas: 19% (60366/317712) Resolving deltas: 19% (60871/317712) Resolving deltas: 20% (63543/317712) Resolving deltas: 21% (66720/317712) Resolving deltas: 22% (69897/317712) Resolving deltas: 22% (71915/317712) Resolving deltas: 23% (73074/317712) Resolving deltas: 24% (76251/317712) Resolving deltas: 25% (79428/317712) Resolving deltas: 25% (81884/317712) Resolving deltas: 26% (82606/317712) Resolving deltas: 27% (85783/317712) Resolving deltas: 27% (85878/317712) Resolving deltas: 27% (88586/317712) Resolving deltas: 28% (88960/317712) Resolving deltas: 28% (91754/317712) Resolving deltas: 29% (92137/317712) Resolving deltas: 30% (95314/317712) Resolving deltas: 30% (96869/317712) Resolving deltas: 31% (98492/317712) Resolving deltas: 32% (101668/317712) Resolving deltas: 32% (104140/317712) Resolving deltas: 33% (104846/317712) Resolving deltas: 34% (108023/317712) Resolving deltas: 34% (110427/317712) Resolving deltas: 35% (111200/317712) Resolving deltas: 35% (114267/317712) Resolving deltas: 36% (114377/317712) Resolving deltas: 37% (117554/317712) Resolving deltas: 38% (120731/317712) Resolving deltas: 39% (123908/317712) Resolving deltas: 40% (127085/317712) Resolving deltas: 40% (127493/317712) Resolving deltas: 41% (130262/317712) Resolving deltas: 42% (133440/317712) Resolving deltas: 43% (136617/317712) Resolving deltas: 43% (137033/317712) Resolving deltas: 44% (139794/317712) Resolving deltas: 45% (142971/317712) Resolving deltas: 46% (146148/317712) Resolving deltas: 46% (146899/317712) Resolving deltas: 47% (149325/317712) Resolving deltas: 48% (152502/317712) Resolving deltas: 49% (155679/317712) Resolving deltas: 49% (158486/317712) Resolving deltas: 50% (158856/317712) Resolving deltas: 51% (162034/317712) Resolving deltas: 52% (165211/317712) Resolving deltas: 53% (168388/317712) Resolving deltas: 53% (169044/317712) Resolving deltas: 54% (171565/317712) Resolving deltas: 55% (174742/317712) Resolving deltas: 56% (177919/317712) Resolving deltas: 56% (178178/317712) Resolving deltas: 57% (181096/317712) Resolving deltas: 58% (184273/317712) Resolving deltas: 58% (184776/317712) Resolving deltas: 59% (187451/317712) Resolving deltas: 60% (190628/317712) Resolving deltas: 60% (193314/317712) Resolving deltas: 61% (193805/317712) Resolving deltas: 62% (196982/317712) Resolving deltas: 63% (200159/317712) Resolving deltas: 64% (203336/317712) Resolving deltas: 64% (204445/317712) Resolving deltas: 65% (206513/317712) Resolving deltas: 66% (209691/317712) Resolving deltas: 67% (212868/317712) Resolving deltas: 67% (215157/317712) Resolving deltas: 68% (216045/317712) Resolving deltas: 69% (219222/317712) Resolving deltas: 69% (220449/317712) Resolving deltas: 70% (222399/317712) Resolving deltas: 71% (225576/317712) Resolving deltas: 71% (228386/317712) Resolving deltas: 72% (228755/317712) Resolving deltas: 73% (231930/317712) Resolving deltas: 74% (235107/317712) Resolving deltas: 74% (237966/317712) Resolving deltas: 75% (238284/317712) Resolving deltas: 75% (240836/317712) Resolving deltas: 76% (241462/317712) Resolving deltas: 77% (244639/317712) Resolving deltas: 77% (245521/317712) Resolving deltas: 78% (247816/317712) Resolving deltas: 79% (250993/317712) Resolving deltas: 79% (252058/317712) Resolving deltas: 80% (254170/317712) Resolving deltas: 81% (257347/317712) Resolving deltas: 82% (260524/317712) Resolving deltas: 82% (262527/317712) Resolving deltas: 83% (263701/317712) Resolving deltas: 84% (266879/317712) Resolving deltas: 84% (269852/317712) Resolving deltas: 85% (270056/317712) Resolving deltas: 86% (273233/317712) Resolving deltas: 87% (276410/317712) Resolving deltas: 88% (279587/317712) Resolving deltas: 89% (282764/317712) Resolving deltas: 89% (283457/317712) Resolving deltas: 90% (285941/317712) Resolving deltas: 91% (289118/317712) Resolving deltas: 92% (292296/317712) Resolving deltas: 93% (295473/317712) Resolving deltas: 94% (298650/317712) Resolving deltas: 94% (299335/317712) Resolving deltas: 95% (301827/317712) Resolving deltas: 96% (305004/317712) Resolving deltas: 97% (308181/317712) Resolving deltas: 98% (311358/317712) Resolving deltas: 99% (314535/317712) Resolving deltas: 99% (314579/317712) Resolving deltas: 100% (317712/317712) Resolving deltas: 100% (317712/317712), done. ==> Validating source files with sha512sums... curl ... Passed ==> Verifying source file signatures with gpg... curl git repo ... Passed ]2;🔵 Container arch-nspawn-2469186 on glaceon.felixc.at\==> Making package: curl 8.16.0-1 (Thu Sep 11 09:56:54 2025) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (9) New Version Net Change Download Size core/debuginfod 0.193-2 0.37 MiB 0.16 MiB core/libmicrohttpd 1.0.2-1 0.57 MiB extra/perl-error 0.17030-2 0.04 MiB extra/perl-mailtools 2.22-2 0.10 MiB extra/perl-timedate 2.33-8 0.08 MiB extra/zlib-ng 2.2.5-1 0.21 MiB extra/git 2.51.0-1 28.36 MiB extra/patchelf 0.18.0-3 0.19 MiB 0.10 MiB extra/valgrind 3.25.1-1 40.48 MiB 5.80 MiB Total Download Size: 6.07 MiB Total Installed Size: 70.41 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... valgrind-3.25.1-1-riscv64 downloading... debuginfod-0.193-2-riscv64 downloading... patchelf-0.18.0-3-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-mediawiki-api: git mediawiki support perl-datetime-format-iso8601: git mediawiki support perl-lwp-protocol-https: git mediawiki https support perl-cgi: gitweb (web interface) support python: git svn & git p4 subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] less: the default pager for git installing patchelf... installing libmicrohttpd... installing debuginfod... Optional dependencies for debuginfod elfutils=0.193: for translations installing valgrind... Optional dependencies for valgrind python: cg_* scripts :: Running post-transaction hooks... (1/5) Creating system user accounts... Creating group 'git' with GID 971. Creating user 'git' (git daemon user) with UID 971 and GID 971. (2/5) Reloading system manager configuration... Skipped: Current root is not booted. (3/5) Arming ConditionNeedsUpdate... (4/5) Checking for old perl modules... (5/5) Updating the info directory file... [?25h==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of curl git repo... Cloning into 'curl'... done. Updating files: 66% (2728/4127) Updating files: 67% (2766/4127) Updating files: 68% (2807/4127) Updating files: 69% (2848/4127) Updating files: 70% (2889/4127) Updating files: 71% (2931/4127) Updating files: 72% (2972/4127) Updating files: 73% (3013/4127) Updating files: 74% (3054/4127) Updating files: 75% (3096/4127) Updating files: 76% (3137/4127) Updating files: 77% (3178/4127) Updating files: 78% (3220/4127) Updating files: 79% (3261/4127) Updating files: 80% (3302/4127) Updating files: 81% (3343/4127) Updating files: 82% (3385/4127) Updating files: 83% (3426/4127) Updating files: 84% (3467/4127) Updating files: 85% (3508/4127) Updating files: 86% (3550/4127) Updating files: 87% (3591/4127) Updating files: 88% (3632/4127) Updating files: 89% (3674/4127) Updating files: 90% (3715/4127) Updating files: 91% (3756/4127) Updating files: 92% (3797/4127) Updating files: 93% (3839/4127) Updating files: 94% (3880/4127) Updating files: 95% (3921/4127) Updating files: 96% (3962/4127) Updating files: 97% (4004/4127) Updating files: 98% (4045/4127) Updating files: 99% (4086/4127) Updating files: 100% (4127/4127) Updating files: 100% (4127/4127), done. Switched to a new branch 'makepkg' ==> Starting prepare()... libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' libtoolize: Remember to add 'LT_INIT' to configure.ac. configure.ac:128: installing './compile' configure.ac:452: installing './config.guess' configure.ac:452: installing './config.sub' configure.ac:128: installing './install-sh' configure.ac:134: installing './missing' docs/examples/Makefile.am: installing './depcomp' ==> Starting build()... checking whether to enable maintainer-specific portions of Makefiles... no checking whether make supports nested variables... yes checking whether to enable debug build options... no checking whether to enable compiler optimizer... (assumed) yes checking whether to enable strict compiler warnings... no checking whether to enable compiler warnings as errors... no checking whether to enable curl debug memory tracking... no checking whether to enable hiding of library internal symbols... yes checking whether to enable c-ares for DNS lookups... no checking whether to disable dependency on -lrt... (assumed no) checking whether to enable HTTPSRR support... no checking whether to enable ECH support... no checking whether to enable SSL session export support... no checking for path separator... : checking for sed... /usr/bin/sed checking for grep... /usr/bin/grep checking that grep -E works... yes checking for ar... /usr/bin/ar checking for a BSD-compatible install... /usr/bin/install -c checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking how to run the C preprocessor... gcc -E checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for stdatomic.h... yes checking if _Atomic is available... yes checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for code coverage support... no checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking xargs -n works... yes checking whether UID '1000' is supported by ustar format... yes checking whether GID '1000' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking dependency style of gcc... gcc3 checking curl version... 8.16.0 checking for perl... /usr/bin/perl checking for httpd... no checking for apache2... no checking for apxs... no configure: httpd/apache2 not in PATH, http tests disabled configure: apxs not in PATH, http tests disabled checking for danted... no checking for danted... no checking for nghttpx... no checking for caddy... no checking build system type... riscv64-unknown-linux-gnu checking host system type... riscv64-unknown-linux-gnu checking for egrep -e... /usr/bin/grep -E checking if OS is AIX (to define _ALL_SOURCE)... no checking if _THREAD_SAFE is already defined... no checking if _THREAD_SAFE is actually needed... no checking if _THREAD_SAFE is onwards defined... no checking if _REENTRANT is already defined... no checking if _REENTRANT is actually needed... no checking if _REENTRANT is onwards defined... no checking for gcc option to enable large file support... none needed checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert riscv64-unknown-linux-gnu file names to riscv64-unknown-linux-gnu format... func_convert_file_noop checking how to convert riscv64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ranlib... ranlib checking for archiver @FILE support... @ checking for strip... strip checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking which variant of shared library versioning to provide... (default) aix checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether to build shared libraries with -version-info... yes checking whether to build shared libraries with -no-undefined... no checking whether to build shared libraries with -mimpure-text... no checking whether to build shared libraries with PIC... yes checking whether to build static libraries with PIC... no checking whether to build shared libraries only... no checking whether to build static libraries only... no checking for windres... no checking if cpp -P is needed... yes checking if cpp -P works... yes checking if compiler is DEC/Compaq/HP C... no checking if compiler is HP-UX C... no checking if compiler is IBM C... no checking if compiler is Intel C... no checking if compiler is clang... no checking if compiler is GNU C... yes checking compiler version... gcc '1502' (raw: '15.2.1') checking if compiler is SunPro C... no checking if compiler is Tiny C... no checking whether build target is a native Windows one... no checking if compiler accepts some basic options... yes configure: compiler options added: -Werror-implicit-function-declaration checking if compiler optimizer assumed setting might be used... no checking if compiler accepts strict warning options... yes configure: compiler options added: -Wno-system-headers checking if compiler halts on compilation errors... yes checking if compiler halts on negative sized arrays... yes checking if compiler halts on function prototype mismatch... yes checking if compiler supports hiding library internal symbols... yes checking whether build target supports Win32 crypto API... no checking whether to build libcurl and curl in "unity" mode... no checking whether to support http... yes checking whether to support ftp... yes checking whether to support file... yes checking whether to support IPFS... yes checking whether to support ldap... no checking whether to support ldaps... no checking whether to support rtsp... yes checking whether to support proxies... yes checking whether to support dict... yes checking whether to support telnet... yes checking whether to support tftp... yes checking whether to support pop3... yes checking whether to support imap... yes checking whether to support smb... yes checking whether to support smtp... yes checking whether to support gopher... yes checking whether to support mqtt... no checking whether to provide built-in manual... no checking whether to build documentation... yes checking whether to enable generation of C code... yes checking whether to use libgcc... no checking if X/Open network library is required... no checking for gethostbyname... yes checking whether build target is a native Windows one... (cached) no checking for proto/bsdsocket.h... no checking for connect in libraries... yes checking for sys/types.h... (cached) yes checking for monotonic clock_gettime... yes checking for clock_gettime in libraries... no additional lib required checking if monotonic clock_gettime works... yes checking for sys/types.h... (cached) yes checking for raw monotonic clock_gettime... yes checking for pkg-config... /usr/bin/pkg-config checking for zlib options with pkg-config... found checking for zlib.h... yes configure: found both libz and libz.h header checking for BrotliDecoderDecompress in -lbrotlidec... yes checking for brotli/decode.h... yes checking for ZSTD_createDStream in -lzstd... yes checking for zstd.h... yes checking whether to enable IPv6... yes checking if struct sockaddr_in6 has sin6_scope_id member... yes checking if argv can be written to... yes checking if GSS-API support is requested... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking for gss.h... no checking for gssapi/gssapi.h... yes checking for gssapi/gssapi_generic.h... yes checking for gssapi/gssapi_krb5.h... yes checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking if we can link against GSS-API library... yes checking whether to enable Windows native SSL/TLS... no checking whether to enable Amiga native SSL/TLS (AmiSSL v5)... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for openssl options with pkg-config... found configure: pkg-config: SSL_LIBS: "-lssl -lcrypto" configure: pkg-config: SSL_LDFLAGS: "" configure: pkg-config: SSL_CPPFLAGS: "" checking for HMAC_Update in -lcrypto... yes checking for SSL_connect in -lssl... yes checking for openssl/x509.h... yes checking for openssl/rsa.h... yes checking for openssl/crypto.h... yes checking for openssl/pem.h... yes checking for openssl/ssl.h... yes checking for openssl/err.h... yes checking for BoringSSL... no checking for AWS-LC... no checking for LibreSSL... no checking for OpenSSL >= v3... yes checking for SSL_set_quic_use_legacy_codepoint... no checking for SSL_set_quic_tls_cbs... yes configure: OpenSSL with QUIC APIv2 checking for SRP support in OpenSSL... yes checking for QUIC support and OpenSSL >= 3.3... yes configure: built with one SSL backend checking default CA cert bundle/path... /etc/ssl/certs/ca-certificates.crt checking whether to use OpenSSL's built-in CA store... no checking CA cert bundle path to embed in the curl tool... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for libpsl options with pkg-config... found checking for psl_builtin in -lpsl... yes checking for libpsl.h... yes checking for library containing gsasl_init... no configure: WARNING: libgsasl was not found checking for pkg-config... (cached) /usr/bin/pkg-config checking for libssh2 options with pkg-config... found checking for libssh2_free in -lssh2... yes checking for libssh2.h... yes checking for RTMP_Init in -lrtmp... no checking whether versioned symbols are wanted... yes checking if libraries can be versioned... yes checking whether to build with libidn2... (assumed) yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libidn2 options with pkg-config... found configure: pkg-config: IDN_LIBS: "-lidn2" configure: pkg-config: IDN_LDFLAGS: "" configure: pkg-config: IDN_CPPFLAGS: "" configure: pkg-config: IDN_DIR: "" checking if idn2_lookup_ul can be linked... yes checking for idn2.h... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp2 options with pkg-config... found configure: -l is -lnghttp2 configure: -I is configure: -L is checking for nghttp2_session_get_stream_local_window_size in -lnghttp2... yes checking for nghttp2/nghttp2.h... yes configure: Added to CURL_LIBRARY_PATH checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp3 options with pkg-config... found configure: -l is -lnghttp3 configure: -I is configure: -L is checking for nghttp3_conn_client_new_versioned in -lnghttp3... yes checking for nghttp3/nghttp3.h... yes configure: Added to CURL_LIBRARY_PATH configure: HTTP3 support is experimental checking for sys/types.h... (cached) yes checking for sys/select.h... yes checking for sys/ioctl.h... yes checking for unistd.h... (cached) yes checking for arpa/inet.h... yes checking for net/if.h... yes checking for netinet/in.h... yes checking for netinet/in6.h... no checking for sys/un.h... yes checking for linux/tcp.h... yes checking for netinet/tcp.h... yes checking for netinet/udp.h... yes checking for netdb.h... yes checking for sys/sockio.h... no checking for sys/param.h... yes checking for termios.h... yes checking for termio.h... yes checking for fcntl.h... yes checking for io.h... no checking for pwd.h... yes checking for utime.h... yes checking for sys/utime.h... no checking for sys/poll.h... yes checking for poll.h... yes checking for sys/resource.h... yes checking for libgen.h... yes checking for locale.h... yes checking for stdbool.h... yes checking for stdint.h... (cached) yes checking for sys/filio.h... no checking for sys/eventfd.h... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for sys/types.h... (cached) yes checking for struct timeval... yes checking run-time libs availability... fine checking size of size_t... 8 checking size of long... 8 checking size of int... 4 checking size of time_t... 8 checking size of off_t... 8 checking size of curl_off_t... 8 checking size of curl_socket_t... 4 checking for long long... yes checking for ssize_t... yes checking for bool... yes checking for sa_family_t... yes checking for suseconds_t... yes checking if time_t is unsigned... no checking for struct sockaddr_storage... yes checking for sys/select.h... (cached) yes checking for select... yes checking for sys/types.h... (cached) yes checking for recv... yes checking for sys/types.h... (cached) yes checking for send... yes checking for sys/types.h... (cached) yes checking for MSG_NOSIGNAL... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking if alarm can be linked... yes checking if alarm is prototyped... yes checking if alarm is compilable... yes checking if alarm usage allowed... yes checking if alarm might be used... yes checking for sys/types.h... (cached) yes checking for strings.h... (cached) yes checking for sys/types.h... (cached) yes checking for libgen.h... (cached) yes checking if basename can be linked... yes checking if basename is prototyped... yes checking if basename is compilable... yes checking if basename usage allowed... yes checking if basename might be used... yes checking if closesocket can be linked... no checking if closesocket might be used... no checking for sys/types.h... (cached) yes checking if CloseSocket can be linked... no checking if CloseSocket might be used... no checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for fcntl.h... (cached) yes checking if fcntl can be linked... yes checking if fcntl is prototyped... yes checking if fcntl is compilable... yes checking if fcntl usage allowed... yes checking if fcntl might be used... yes checking if fcntl O_NONBLOCK is compilable... yes checking if fcntl O_NONBLOCK usage allowed... yes checking if fcntl O_NONBLOCK might be used... yes checking whether build target is a native Windows one... (cached) no checking for sys/types.h... (cached) yes checking for netdb.h... (cached) yes checking if freeaddrinfo can be linked... yes checking if freeaddrinfo is prototyped... yes checking if freeaddrinfo is compilable... yes checking if freeaddrinfo usage allowed... yes checking if freeaddrinfo might be used... yes checking for sys/types.h... (cached) yes checking for sys/xattr.h... yes checking if fsetxattr can be linked... yes checking if fsetxattr is prototyped... yes checking if fsetxattr takes 5 args.... yes checking if fsetxattr is compilable... yes checking if fsetxattr usage allowed... yes checking if fsetxattr might be used... yes checking if ftruncate can be linked... yes checking if ftruncate is prototyped... yes checking if ftruncate is compilable... yes checking if ftruncate usage allowed... yes checking if ftruncate might be used... yes checking for sys/types.h... (cached) yes checking if getaddrinfo can be linked... yes checking if getaddrinfo is prototyped... yes checking if getaddrinfo is compilable... yes checking if getaddrinfo seems to work... yes checking if getaddrinfo usage allowed... yes checking if getaddrinfo might be used... yes checking if getaddrinfo is threadsafe... yes checking if gethostbyname_r can be linked... yes checking if gethostbyname_r is prototyped... yes checking if gethostbyname_r takes 3 args.... no checking if gethostbyname_r takes 5 args.... no checking if gethostbyname_r takes 6 args.... yes checking if gethostbyname_r is compilable... yes checking if gethostbyname_r usage allowed... yes checking if gethostbyname_r might be used... yes checking if gethostname can be linked... yes checking if gethostname is prototyped... yes checking if gethostname is compilable... yes checking for gethostname arg 2 data type... size_t checking if gethostname usage allowed... yes checking if gethostname might be used... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for ifaddrs.h... yes checking if getifaddrs can be linked... yes checking if getifaddrs is prototyped... yes checking if getifaddrs is compilable... yes checking if getifaddrs seems to work... yes checking if getifaddrs usage allowed... yes checking if getifaddrs might be used... yes checking if getpeername can be linked... yes checking if getpeername is prototyped... yes checking if getpeername is compilable... yes checking if getpeername usage allowed... yes checking if getpeername might be used... yes checking if getsockname can be linked... yes checking if getsockname is prototyped... yes checking if getsockname is compilable... yes checking if getsockname usage allowed... yes checking if getsockname might be used... yes checking for sys/types.h... (cached) yes checking if gmtime_r can be linked... yes checking if gmtime_r is prototyped... yes checking if gmtime_r is compilable... yes checking if gmtime_r seems to work... yes checking if gmtime_r usage allowed... yes checking if gmtime_r might be used... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for sys/ioctl.h... (cached) yes checking for stropts.h... no checking if ioctl can be linked... yes checking if ioctl is prototyped... yes checking if ioctl is compilable... yes checking if ioctl usage allowed... yes checking if ioctl might be used... yes checking if ioctl FIONBIO is compilable... yes checking if ioctl FIONBIO usage allowed... yes checking if ioctl FIONBIO might be used... yes checking if ioctl SIOCGIFADDR is compilable... yes checking if ioctl SIOCGIFADDR usage allowed... yes checking if ioctl SIOCGIFADDR might be used... yes checking if ioctlsocket can be linked... no checking if ioctlsocket might be used... no checking if IoctlSocket can be linked... no checking if IoctlSocket might be used... no checking if memrchr can be linked... yes checking if memrchr is prototyped... yes checking if memrchr is compilable... yes checking if memrchr usage allowed... yes checking if memrchr might be used... yes checking for sys/types.h... (cached) yes checking if sigaction can be linked... yes checking if sigaction is prototyped... yes checking if sigaction is compilable... yes checking if sigaction usage allowed... yes checking if sigaction might be used... yes checking if siginterrupt can be linked... yes checking if siginterrupt is prototyped... yes checking if siginterrupt is compilable... yes checking if siginterrupt usage allowed... yes checking if siginterrupt might be used... yes checking if signal can be linked... yes checking if signal is prototyped... yes checking if signal is compilable... yes checking if signal usage allowed... yes checking if signal might be used... yes checking for sys/types.h... (cached) yes checking if sigsetjmp can be linked... no checking if sigsetjmp seems a macro... yes checking if sigsetjmp is compilable... yes checking if sigsetjmp usage allowed... yes checking if sigsetjmp might be used... yes checking if socket can be linked... yes checking if socket is prototyped... yes checking if socket is compilable... yes checking if socket usage allowed... yes checking if socket might be used... yes checking if socketpair can be linked... yes checking if socketpair is prototyped... yes checking if socketpair is compilable... yes checking if socketpair usage allowed... yes checking if socketpair might be used... yes checking if strdup can be linked... yes checking if strdup is prototyped... yes checking if strdup is compilable... yes checking if strdup usage allowed... yes checking if strdup might be used... yes checking if strerror_r can be linked... yes checking if strerror_r is prototyped... yes checking if strerror_r is compilable... yes checking if strerror_r is glibc like... yes checking if strerror_r seems to work... yes checking if strerror_r usage allowed... yes checking if strerror_r might be used... yes checking for accept4... yes checking for eventfd... yes checking for fnmatch... yes checking for geteuid... yes checking for getpass_r... no checking for getppid... yes checking for getpwuid... yes checking for getpwuid_r... yes checking for getrlimit... yes checking for gettimeofday... yes checking for mach_absolute_time... no checking for pipe... yes checking for pipe2... yes checking for poll... yes checking for sendmmsg... yes checking for sendmsg... yes checking for setlocale... yes checking for setrlimit... yes checking for snprintf... yes checking for utime... yes checking for utimes... yes checking for if_nametoindex... yes checking for realpath... yes checking for sched_yield... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for arpa/inet.h... (cached) yes checking if inet_ntop can be linked... yes checking if inet_ntop is prototyped... yes checking if inet_ntop is compilable... yes checking if inet_ntop seems to work... yes checking if inet_ntop usage allowed... yes checking if inet_ntop might be used... yes checking if inet_pton can be linked... yes checking if inet_pton is prototyped... yes checking if inet_pton is compilable... yes checking if inet_pton seems to work... yes checking if inet_pton usage allowed... yes checking if inet_pton might be used... yes checking if strcasecmp can be linked... yes checking if strcasecmp is prototyped... yes checking if strcasecmp is compilable... yes checking if strcasecmp usage allowed... yes checking if strcasecmp might be used... yes checking if strcmpi can be linked... no checking if strcmpi might be used... no checking if stricmp can be linked... no checking if stricmp might be used... no checking for setmode... no checking for fseeko... yes checking for gcc options needed to detect all undeclared functions... none needed checking whether fseeko is declared... yes checking how to set a socket into non-blocking mode... fcntl O_NONBLOCK checking whether to enable the threaded resolver... yes checking for pthread.h... yes checking for pthread_create... yes checking for dirent.h... yes checking for opendir... yes checking convert -I options to -isystem... yes checking whether to enable verbose strings... yes checking whether to enable SSPI support (Windows native builds only)... no checking whether to enable basic authentication method... yes checking whether to enable bearer authentication method... yes checking whether to enable digest authentication method... yes checking whether to enable kerberos authentication method... yes checking whether to enable negotiate authentication method... yes checking whether to enable aws sig methods... yes checking whether to support NTLM... yes checking whether to enable TLS-SRP authentication... yes checking whether to enable Unix domain sockets... auto checking for struct sockaddr_un.sun_path... yes checking whether to support cookies... yes checking whether to support socketpair... yes checking whether to support HTTP authentication... yes checking whether to support DoH... yes checking whether to support the MIME API... yes checking whether to support binding connections locally... yes checking whether to support the form API... yes checking whether to support date parsing... yes checking whether to support netrc parsing... yes checking whether to support progress-meter... yes checking whether to support the SHA-512/256 hash algorithm... yes checking whether to support DNS shuffling... yes checking whether to support curl_easy_option*... yes checking whether to support alt-svc... yes checking whether to support headers-api... yes checking whether to support HSTS... yes checking whether to enable HTTPS-RR support... no checking for SSL_set0_wbio... yes checking whether to support WebSockets... yes checking whether hiding of library internal symbols will actually happen... yes checking if this build supports HTTPS-proxy... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating docs/Makefile config.status: creating docs/examples/Makefile config.status: creating docs/libcurl/Makefile config.status: creating docs/libcurl/opts/Makefile config.status: creating docs/cmdline-opts/Makefile config.status: creating include/Makefile config.status: creating include/curl/Makefile config.status: creating src/Makefile config.status: creating lib/Makefile config.status: creating scripts/Makefile config.status: creating lib/libcurl.vers config.status: creating tests/Makefile config.status: creating tests/config config.status: creating tests/configurehelp.pm config.status: creating tests/certs/Makefile config.status: creating tests/data/Makefile config.status: creating tests/server/Makefile config.status: creating tests/libtest/Makefile config.status: creating tests/unit/Makefile config.status: creating tests/tunit/Makefile config.status: creating tests/http/config.ini config.status: creating tests/http/Makefile config.status: creating packages/Makefile config.status: creating packages/vms/Makefile config.status: creating libcurl.pc config.status: creating curl-config config.status: creating lib/curl_config.h config.status: executing depfiles commands config.status: executing libtool commands configure: Configured to build curl/libcurl: Host setup: riscv64-unknown-linux-gnu Install prefix: /usr Compiler: gcc CFLAGS: -march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -g -ffile-prefix-map=/build/curl/src=/usr/src/debug/curl -flto=auto -Werror-implicit-function-declaration -Wno-system-headers CFLAGS extras: CPPFLAGS: -D_GNU_SOURCE LDFLAGS: -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -flto=auto curl-config: LIBS: -lnghttp3 -lnghttp2 -lidn2 -lssh2 -lssh2 -lpsl -lssl -lcrypto -lssl -lcrypto -lgssapi_krb5 -lzstd -lbrotlidec -lz curl version: 8.16.0 SSL: enabled (OpenSSL v3+) SSH: enabled (libssh2) zlib: enabled brotli: enabled (libbrotlidec) zstd: enabled (libzstd) GSS-API: enabled (MIT Kerberos/Heimdal) GSASL: no (libgsasl not found) TLS-SRP: enabled resolver: POSIX threaded IPv6: enabled Unix sockets: enabled IDN: enabled (libidn2) Build docs: enabled (--disable-docs) Build libcurl: Shared=yes, Static=yes Built-in manual: no (--enable-manual) --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI: no (--enable-sspi) ca cert bundle: /etc/ssl/certs/ca-certificates.crt ca cert path: no ca cert embed: no ca fallback: no LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: no (--enable-ldaps) IPFS/IPNS: enabled RTSP: enabled RTMP: no (--with-librtmp) PSL: enabled Alt-svc: enabled (--disable-alt-svc) Headers API: enabled (--disable-headers-api) HSTS: enabled (--disable-hsts) HTTP1: enabled (internal) HTTP2: enabled (nghttp2) HTTP3: enabled (openssl + nghttp3) ECH: no (--enable-ech) HTTPS RR: no (--enable-httpsrr) SSLS-EXPORT: no (--enable-ssls-export) Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd configure: WARNING: HTTP3 is enabled but marked EXPERIMENTAL. Use with caution! Making all in lib make[1]: Entering directory '/build/curl/src/build-curl/lib' make all-am make[2]: Entering directory '/build/curl/src/build-curl/lib' CC libcurl_la-altsvc.lo CC libcurl_la-amigaos.lo CC libcurl_la-asyn-ares.lo CC libcurl_la-asyn-base.lo CC libcurl_la-asyn-thrdd.lo CC libcurl_la-bufq.lo CC libcurl_la-bufref.lo CC libcurl_la-cf-h1-proxy.lo CC libcurl_la-cf-h2-proxy.lo CC libcurl_la-cf-haproxy.lo CC libcurl_la-cf-https-connect.lo CC libcurl_la-cf-ip-happy.lo CC libcurl_la-cf-socket.lo CC libcurl_la-cfilters.lo CC libcurl_la-conncache.lo CC libcurl_la-connect.lo CC libcurl_la-content_encoding.lo CC libcurl_la-cookie.lo CC libcurl_la-cshutdn.lo CC libcurl_la-curl_addrinfo.lo CC libcurl_la-curl_des.lo CC libcurl_la-curl_endian.lo CC libcurl_la-curl_fnmatch.lo CC libcurl_la-curl_get_line.lo CC libcurl_la-curl_gethostname.lo CC libcurl_la-curl_gssapi.lo CC libcurl_la-curl_memrchr.lo CC libcurl_la-curl_ntlm_core.lo CC libcurl_la-curl_range.lo CC libcurl_la-curl_rtmp.lo CC libcurl_la-curl_sasl.lo CC libcurl_la-curl_sha512_256.lo CC libcurl_la-curl_sspi.lo CC libcurl_la-curl_threads.lo CC libcurl_la-curl_trc.lo CC libcurl_la-cw-out.lo CC libcurl_la-cw-pause.lo CC libcurl_la-dict.lo CC libcurl_la-doh.lo CC libcurl_la-dynhds.lo CC libcurl_la-easy.lo CC libcurl_la-easygetopt.lo CC libcurl_la-easyoptions.lo CC libcurl_la-escape.lo CC libcurl_la-fake_addrinfo.lo CC libcurl_la-file.lo CC libcurl_la-fileinfo.lo CC libcurl_la-fopen.lo CC libcurl_la-formdata.lo CC libcurl_la-ftp.lo CC libcurl_la-ftplistparser.lo CC libcurl_la-getenv.lo CC libcurl_la-getinfo.lo CC libcurl_la-gopher.lo CC libcurl_la-hash.lo CC libcurl_la-headers.lo CC libcurl_la-hmac.lo CC libcurl_la-hostip.lo CC libcurl_la-hostip4.lo CC libcurl_la-hostip6.lo CC libcurl_la-hsts.lo CC libcurl_la-http.lo CC libcurl_la-http1.lo CC libcurl_la-http2.lo CC libcurl_la-http_aws_sigv4.lo CC libcurl_la-http_chunks.lo CC libcurl_la-http_digest.lo CC libcurl_la-http_negotiate.lo CC libcurl_la-http_ntlm.lo CC libcurl_la-http_proxy.lo CC libcurl_la-httpsrr.lo CC libcurl_la-idn.lo CC libcurl_la-if2ip.lo CC libcurl_la-imap.lo CC libcurl_la-krb5.lo CC libcurl_la-ldap.lo CC libcurl_la-llist.lo CC libcurl_la-macos.lo CC libcurl_la-md4.lo CC libcurl_la-md5.lo CC libcurl_la-memdebug.lo CC libcurl_la-mime.lo CC libcurl_la-mprintf.lo CC libcurl_la-mqtt.lo CC libcurl_la-multi.lo CC libcurl_la-multi_ev.lo CC libcurl_la-netrc.lo CC libcurl_la-noproxy.lo CC libcurl_la-openldap.lo CC libcurl_la-parsedate.lo CC libcurl_la-pingpong.lo CC libcurl_la-pop3.lo CC libcurl_la-progress.lo CC libcurl_la-psl.lo CC libcurl_la-rand.lo CC libcurl_la-rename.lo CC libcurl_la-request.lo CC libcurl_la-rtsp.lo CC libcurl_la-select.lo CC libcurl_la-sendf.lo CC libcurl_la-setopt.lo CC libcurl_la-sha256.lo CC libcurl_la-share.lo CC libcurl_la-slist.lo CC libcurl_la-smb.lo CC libcurl_la-smtp.lo CC libcurl_la-socketpair.lo CC libcurl_la-socks.lo CC libcurl_la-socks_gssapi.lo CC libcurl_la-socks_sspi.lo CC libcurl_la-speedcheck.lo CC libcurl_la-splay.lo CC libcurl_la-strcase.lo CC libcurl_la-strdup.lo CC libcurl_la-strequal.lo CC libcurl_la-strerror.lo CC libcurl_la-system_win32.lo CC libcurl_la-telnet.lo CC libcurl_la-tftp.lo CC libcurl_la-transfer.lo CC libcurl_la-uint-bset.lo CC libcurl_la-uint-hash.lo CC libcurl_la-uint-spbset.lo CC libcurl_la-uint-table.lo CC libcurl_la-url.lo CC libcurl_la-urlapi.lo CC libcurl_la-version.lo CC libcurl_la-ws.lo CC libcurlu_la-altsvc.lo CC libcurlu_la-amigaos.lo CC libcurlu_la-asyn-ares.lo CC libcurlu_la-asyn-base.lo CC libcurlu_la-asyn-thrdd.lo CC libcurlu_la-bufq.lo CC libcurlu_la-bufref.lo CC libcurlu_la-cf-h1-proxy.lo CC libcurlu_la-cf-h2-proxy.lo CC libcurlu_la-cf-haproxy.lo CC libcurlu_la-cf-https-connect.lo CC libcurlu_la-cf-ip-happy.lo CC libcurlu_la-cf-socket.lo CC libcurlu_la-cfilters.lo CC libcurlu_la-conncache.lo CC libcurlu_la-connect.lo CC libcurlu_la-content_encoding.lo CC libcurlu_la-cookie.lo CC libcurlu_la-cshutdn.lo CC libcurlu_la-curl_addrinfo.lo CC libcurlu_la-curl_des.lo CC libcurlu_la-curl_endian.lo CC libcurlu_la-curl_fnmatch.lo CC libcurlu_la-curl_get_line.lo CC libcurlu_la-curl_gethostname.lo CC libcurlu_la-curl_gssapi.lo CC libcurlu_la-curl_memrchr.lo CC libcurlu_la-curl_ntlm_core.lo CC libcurlu_la-curl_range.lo CC libcurlu_la-curl_rtmp.lo CC libcurlu_la-curl_sasl.lo CC libcurlu_la-curl_sha512_256.lo CC libcurlu_la-curl_sspi.lo CC libcurlu_la-curl_threads.lo CC libcurlu_la-curl_trc.lo CC libcurlu_la-cw-out.lo CC libcurlu_la-cw-pause.lo CC libcurlu_la-dict.lo CC libcurlu_la-doh.lo CC libcurlu_la-dynhds.lo CC libcurlu_la-easy.lo CC libcurlu_la-easygetopt.lo CC libcurlu_la-easyoptions.lo CC libcurlu_la-escape.lo CC libcurlu_la-fake_addrinfo.lo CC libcurlu_la-file.lo CC libcurlu_la-fileinfo.lo CC libcurlu_la-fopen.lo CC libcurlu_la-formdata.lo CC libcurlu_la-ftp.lo CC libcurlu_la-ftplistparser.lo CC libcurlu_la-getenv.lo CC libcurlu_la-getinfo.lo CC libcurlu_la-gopher.lo CC libcurlu_la-hash.lo CC libcurlu_la-headers.lo CC libcurlu_la-hmac.lo CC libcurlu_la-hostip.lo CC libcurlu_la-hostip4.lo CC libcurlu_la-hostip6.lo CC libcurlu_la-hsts.lo CC libcurlu_la-http.lo CC libcurlu_la-http1.lo CC libcurlu_la-http2.lo CC libcurlu_la-http_aws_sigv4.lo CC libcurlu_la-http_chunks.lo CC libcurlu_la-http_digest.lo CC libcurlu_la-http_negotiate.lo CC libcurlu_la-http_ntlm.lo CC libcurlu_la-http_proxy.lo CC libcurlu_la-httpsrr.lo CC libcurlu_la-idn.lo CC libcurlu_la-if2ip.lo CC libcurlu_la-imap.lo CC libcurlu_la-krb5.lo CC libcurlu_la-ldap.lo CC libcurlu_la-llist.lo CC libcurlu_la-macos.lo CC libcurlu_la-md4.lo CC libcurlu_la-md5.lo CC libcurlu_la-memdebug.lo CC libcurlu_la-mime.lo CC libcurlu_la-mprintf.lo CC libcurlu_la-mqtt.lo CC libcurlu_la-multi.lo CC libcurlu_la-multi_ev.lo CC libcurlu_la-netrc.lo CC libcurlu_la-noproxy.lo CC libcurlu_la-openldap.lo CC libcurlu_la-parsedate.lo CC libcurlu_la-pingpong.lo CC libcurlu_la-pop3.lo CC libcurlu_la-progress.lo CC libcurlu_la-psl.lo CC libcurlu_la-rand.lo CC libcurlu_la-rename.lo CC libcurlu_la-request.lo CC libcurlu_la-rtsp.lo CC libcurlu_la-select.lo CC libcurlu_la-sendf.lo CC libcurlu_la-setopt.lo CC libcurlu_la-sha256.lo CC libcurlu_la-share.lo CC libcurlu_la-slist.lo CC libcurlu_la-smb.lo CC libcurlu_la-smtp.lo CC libcurlu_la-socketpair.lo CC libcurlu_la-socks.lo CC libcurlu_la-socks_gssapi.lo CC libcurlu_la-socks_sspi.lo CC libcurlu_la-speedcheck.lo CC libcurlu_la-splay.lo CC libcurlu_la-strcase.lo CC libcurlu_la-strdup.lo CC libcurlu_la-strequal.lo CC libcurlu_la-strerror.lo CC libcurlu_la-system_win32.lo CC libcurlu_la-telnet.lo CC libcurlu_la-tftp.lo CC libcurlu_la-transfer.lo CC libcurlu_la-uint-bset.lo CC libcurlu_la-uint-hash.lo CC libcurlu_la-uint-spbset.lo CC libcurlu_la-uint-table.lo CC libcurlu_la-url.lo CC libcurlu_la-urlapi.lo CC libcurlu_la-version.lo CC libcurlu_la-ws.lo CC vauth/libcurlu_la-cleartext.lo CC vauth/libcurlu_la-cram.lo CC vauth/libcurlu_la-digest.lo CC vauth/libcurlu_la-digest_sspi.lo CC vauth/libcurlu_la-gsasl.lo CC vauth/libcurlu_la-krb5_gssapi.lo CC vauth/libcurlu_la-krb5_sspi.lo CC vauth/libcurlu_la-ntlm.lo CC vauth/libcurlu_la-ntlm_sspi.lo CC vauth/libcurlu_la-oauth2.lo CC vauth/libcurlu_la-spnego_gssapi.lo CC vauth/libcurlu_la-spnego_sspi.lo CC vauth/libcurlu_la-vauth.lo CC vtls/libcurlu_la-cipher_suite.lo CC vtls/libcurlu_la-gtls.lo CC vtls/libcurlu_la-hostcheck.lo CC vtls/libcurlu_la-keylog.lo CC vtls/libcurlu_la-mbedtls.lo CC vtls/libcurlu_la-mbedtls_threadlock.lo CC vtls/libcurlu_la-openssl.lo CC vtls/libcurlu_la-rustls.lo CC vtls/libcurlu_la-schannel.lo CC vtls/libcurlu_la-schannel_verify.lo CC vtls/libcurlu_la-vtls.lo CC vtls/libcurlu_la-vtls_scache.lo CC vtls/libcurlu_la-vtls_spack.lo CC vtls/libcurlu_la-wolfssl.lo CC vtls/libcurlu_la-x509asn1.lo CC vquic/libcurlu_la-curl_ngtcp2.lo CC vquic/libcurlu_la-curl_osslq.lo CC vquic/libcurlu_la-curl_quiche.lo CC vquic/libcurlu_la-vquic.lo CC vquic/libcurlu_la-vquic-tls.lo CC vssh/libcurlu_la-libssh.lo CC vssh/libcurlu_la-libssh2.lo CC vssh/libcurlu_la-curl_path.lo CC vssh/libcurlu_la-wolfssh.lo CC curlx/libcurlu_la-base64.lo CC curlx/libcurlu_la-dynbuf.lo CC curlx/libcurlu_la-inet_ntop.lo CC curlx/libcurlu_la-inet_pton.lo CC curlx/libcurlu_la-multibyte.lo CC curlx/libcurlu_la-nonblock.lo CC curlx/libcurlu_la-strparse.lo CC curlx/libcurlu_la-timediff.lo CC curlx/libcurlu_la-timeval.lo CC curlx/libcurlu_la-version_win32.lo CC curlx/libcurlu_la-wait.lo CC curlx/libcurlu_la-warnless.lo CC curlx/libcurlu_la-winapi.lo CC vauth/libcurl_la-cleartext.lo CC vauth/libcurl_la-cram.lo CC vauth/libcurl_la-digest.lo CC vauth/libcurl_la-digest_sspi.lo CC vauth/libcurl_la-gsasl.lo CC vauth/libcurl_la-krb5_gssapi.lo CC vauth/libcurl_la-krb5_sspi.lo CC vauth/libcurl_la-ntlm.lo CC vauth/libcurl_la-ntlm_sspi.lo CC vauth/libcurl_la-oauth2.lo CC vauth/libcurl_la-spnego_gssapi.lo CC vauth/libcurl_la-spnego_sspi.lo CC vauth/libcurl_la-vauth.lo CC vtls/libcurl_la-cipher_suite.lo CC vtls/libcurl_la-gtls.lo CC vtls/libcurl_la-hostcheck.lo CC vtls/libcurl_la-keylog.lo CC vtls/libcurl_la-mbedtls.lo CC vtls/libcurl_la-mbedtls_threadlock.lo CC vtls/libcurl_la-openssl.lo CC vtls/libcurl_la-rustls.lo CC vtls/libcurl_la-schannel.lo CC vtls/libcurl_la-schannel_verify.lo CC vtls/libcurl_la-vtls.lo CC vtls/libcurl_la-vtls_scache.lo CC vtls/libcurl_la-vtls_spack.lo CC vtls/libcurl_la-wolfssl.lo CC vtls/libcurl_la-x509asn1.lo CC vquic/libcurl_la-curl_ngtcp2.lo CC vquic/libcurl_la-curl_osslq.lo CC vquic/libcurl_la-curl_quiche.lo CC vquic/libcurl_la-vquic.lo CC vquic/libcurl_la-vquic-tls.lo CC vssh/libcurl_la-libssh.lo CC vssh/libcurl_la-libssh2.lo CC vssh/libcurl_la-curl_path.lo CC vssh/libcurl_la-wolfssh.lo CC curlx/libcurl_la-base64.lo CC curlx/libcurl_la-dynbuf.lo CC curlx/libcurl_la-inet_ntop.lo CC curlx/libcurl_la-inet_pton.lo CC curlx/libcurl_la-multibyte.lo CC curlx/libcurl_la-nonblock.lo CC curlx/libcurl_la-strparse.lo CC curlx/libcurl_la-timediff.lo CC curlx/libcurl_la-timeval.lo CC curlx/libcurl_la-version_win32.lo CC curlx/libcurl_la-wait.lo CC curlx/libcurl_la-warnless.lo CC curlx/libcurl_la-winapi.lo CCLD libcurlu.la CCLD libcurl.la make[2]: Leaving directory '/build/curl/src/build-curl/lib' make[1]: Leaving directory '/build/curl/src/build-curl/lib' Making all in docs make[1]: Entering directory '/build/curl/src/build-curl/docs' RENDER mk-ca-bundle.1 RENDER curl-config.1 RENDER runtests.1 Making all in . make[2]: Entering directory '/build/curl/src/build-curl/docs' RENDER wcurl.1 RENDER testcurl.1 make[2]: Leaving directory '/build/curl/src/build-curl/docs' Making all in cmdline-opts make[2]: Entering directory '/build/curl/src/build-curl/docs/cmdline-opts' GENERATE curl.1 GENERATE curl.txt make[2]: Leaving directory '/build/curl/src/build-curl/docs/cmdline-opts' Making all in libcurl make[2]: Entering directory '/build/curl/src/build-curl/docs/libcurl' Making all in opts make[3]: Entering directory '/build/curl/src/build-curl/docs/libcurl/opts' RENDER CURLINFO_ACTIVESOCKET.3 RENDER CURLINFO_APPCONNECT_TIME.3 RENDER CURLINFO_APPCONNECT_TIME_T.3 RENDER CURLINFO_CAINFO.3 RENDER CURLINFO_CAPATH.3 RENDER CURLINFO_CERTINFO.3 RENDER CURLINFO_CONDITION_UNMET.3 RENDER CURLINFO_CONNECT_TIME.3 RENDER CURLINFO_CONN_ID.3 RENDER CURLINFO_CONNECT_TIME_T.3 RENDER CURLINFO_CONTENT_LENGTH_DOWNLOAD.3 RENDER CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3 RENDER CURLINFO_CONTENT_LENGTH_UPLOAD.3 RENDER CURLINFO_CONTENT_LENGTH_UPLOAD_T.3 RENDER CURLINFO_CONTENT_TYPE.3 RENDER CURLINFO_COOKIELIST.3 RENDER CURLINFO_EARLYDATA_SENT_T.3 RENDER CURLINFO_EFFECTIVE_METHOD.3 RENDER CURLINFO_EFFECTIVE_URL.3 RENDER CURLINFO_FILETIME.3 RENDER CURLINFO_FILETIME_T.3 RENDER CURLINFO_FTP_ENTRY_PATH.3 RENDER CURLINFO_HEADER_SIZE.3 RENDER CURLINFO_HTTP_CONNECTCODE.3 RENDER CURLINFO_HTTP_VERSION.3 RENDER CURLINFO_HTTPAUTH_AVAIL.3 RENDER CURLINFO_HTTPAUTH_USED.3 RENDER CURLINFO_LASTSOCKET.3 RENDER CURLINFO_LOCAL_IP.3 RENDER CURLINFO_LOCAL_PORT.3 RENDER CURLINFO_NAMELOOKUP_TIME.3 RENDER CURLINFO_NAMELOOKUP_TIME_T.3 RENDER CURLINFO_NUM_CONNECTS.3 RENDER CURLINFO_OS_ERRNO.3 RENDER CURLINFO_PRETRANSFER_TIME.3 RENDER CURLINFO_PRETRANSFER_TIME_T.3 RENDER CURLINFO_POSTTRANSFER_TIME_T.3 RENDER CURLINFO_PRIMARY_IP.3 RENDER CURLINFO_PRIMARY_PORT.3 RENDER CURLINFO_PRIVATE.3 RENDER CURLINFO_PROTOCOL.3 RENDER CURLINFO_PROXY_ERROR.3 RENDER CURLINFO_PROXY_SSL_VERIFYRESULT.3 RENDER CURLINFO_PROXYAUTH_AVAIL.3 RENDER CURLINFO_PROXYAUTH_USED.3 RENDER CURLINFO_QUEUE_TIME_T.3 RENDER CURLINFO_REDIRECT_COUNT.3 RENDER CURLINFO_REDIRECT_TIME.3 RENDER CURLINFO_REDIRECT_TIME_T.3 RENDER CURLINFO_REDIRECT_URL.3 RENDER CURLINFO_REFERER.3 RENDER CURLINFO_REQUEST_SIZE.3 RENDER CURLINFO_RESPONSE_CODE.3 RENDER CURLINFO_RETRY_AFTER.3 RENDER CURLINFO_RTSP_CLIENT_CSEQ.3 RENDER CURLINFO_RTSP_CSEQ_RECV.3 RENDER CURLINFO_RTSP_SERVER_CSEQ.3 RENDER CURLINFO_RTSP_SESSION_ID.3 RENDER CURLINFO_SCHEME.3 RENDER CURLINFO_SIZE_DOWNLOAD.3 RENDER CURLINFO_SIZE_DOWNLOAD_T.3 RENDER CURLINFO_SIZE_UPLOAD.3 RENDER CURLINFO_SIZE_UPLOAD_T.3 RENDER CURLINFO_SPEED_DOWNLOAD.3 RENDER CURLINFO_SPEED_DOWNLOAD_T.3 RENDER CURLINFO_SPEED_UPLOAD.3 RENDER CURLINFO_SPEED_UPLOAD_T.3 RENDER CURLINFO_SSL_ENGINES.3 RENDER CURLINFO_SSL_VERIFYRESULT.3 RENDER CURLINFO_STARTTRANSFER_TIME.3 RENDER CURLINFO_STARTTRANSFER_TIME_T.3 RENDER CURLINFO_TLS_SESSION.3 RENDER CURLINFO_TLS_SSL_PTR.3 RENDER CURLINFO_TOTAL_TIME.3 RENDER CURLINFO_TOTAL_TIME_T.3 RENDER CURLINFO_USED_PROXY.3 RENDER CURLINFO_XFER_ID.3 RENDER CURLMINFO_XFERS_ADDED.3 RENDER CURLMINFO_XFERS_CURRENT.3 RENDER CURLMINFO_XFERS_DONE.3 RENDER CURLMINFO_XFERS_PENDING.3 RENDER CURLMINFO_XFERS_RUNNING.3 RENDER CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3 RENDER CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3 RENDER CURLMOPT_MAX_CONCURRENT_STREAMS.3 RENDER CURLMOPT_MAX_HOST_CONNECTIONS.3 RENDER CURLMOPT_MAX_PIPELINE_LENGTH.3 RENDER CURLMOPT_MAX_TOTAL_CONNECTIONS.3 RENDER CURLMOPT_MAXCONNECTS.3 RENDER CURLMOPT_NETWORK_CHANGED.3 RENDER CURLMOPT_PIPELINING.3 RENDER CURLMOPT_PIPELINING_SERVER_BL.3 RENDER CURLMOPT_PIPELINING_SITE_BL.3 RENDER CURLMOPT_PUSHDATA.3 RENDER CURLMOPT_PUSHFUNCTION.3 RENDER CURLMOPT_SOCKETDATA.3 RENDER CURLMOPT_SOCKETFUNCTION.3 RENDER CURLMOPT_TIMERDATA.3 RENDER CURLMOPT_TIMERFUNCTION.3 RENDER CURLOPT_ABSTRACT_UNIX_SOCKET.3 RENDER CURLOPT_ACCEPT_ENCODING.3 RENDER CURLOPT_ACCEPTTIMEOUT_MS.3 RENDER CURLOPT_ADDRESS_SCOPE.3 RENDER CURLOPT_ALTSVC.3 RENDER CURLOPT_ALTSVC_CTRL.3 RENDER CURLOPT_APPEND.3 RENDER CURLOPT_AUTOREFERER.3 RENDER CURLOPT_AWS_SIGV4.3 RENDER CURLOPT_BUFFERSIZE.3 RENDER CURLOPT_CAINFO.3 RENDER CURLOPT_CAINFO_BLOB.3 RENDER CURLOPT_CAPATH.3 RENDER CURLOPT_CA_CACHE_TIMEOUT.3 RENDER CURLOPT_CERTINFO.3 RENDER CURLOPT_CHUNK_BGN_FUNCTION.3 RENDER CURLOPT_CHUNK_DATA.3 RENDER CURLOPT_CHUNK_END_FUNCTION.3 RENDER CURLOPT_CLOSESOCKETDATA.3 RENDER CURLOPT_CLOSESOCKETFUNCTION.3 RENDER CURLOPT_CONNECT_ONLY.3 RENDER CURLOPT_CONNECT_TO.3 RENDER CURLOPT_CONNECTTIMEOUT.3 RENDER CURLOPT_CONNECTTIMEOUT_MS.3 RENDER CURLOPT_CONV_FROM_NETWORK_FUNCTION.3 RENDER CURLOPT_CONV_FROM_UTF8_FUNCTION.3 RENDER CURLOPT_CONV_TO_NETWORK_FUNCTION.3 RENDER CURLOPT_COOKIE.3 RENDER CURLOPT_COOKIEFILE.3 RENDER CURLOPT_COOKIEJAR.3 RENDER CURLOPT_COOKIELIST.3 RENDER CURLOPT_COOKIESESSION.3 RENDER CURLOPT_COPYPOSTFIELDS.3 RENDER CURLOPT_CRLF.3 RENDER CURLOPT_CRLFILE.3 RENDER CURLOPT_CURLU.3 RENDER CURLOPT_CUSTOMREQUEST.3 RENDER CURLOPT_DEBUGDATA.3 RENDER CURLOPT_DEBUGFUNCTION.3 RENDER CURLOPT_DEFAULT_PROTOCOL.3 RENDER CURLOPT_DIRLISTONLY.3 RENDER CURLOPT_DISALLOW_USERNAME_IN_URL.3 RENDER CURLOPT_DNS_CACHE_TIMEOUT.3 RENDER CURLOPT_DNS_INTERFACE.3 RENDER CURLOPT_DNS_LOCAL_IP4.3 RENDER CURLOPT_DNS_LOCAL_IP6.3 RENDER CURLOPT_DNS_SERVERS.3 RENDER CURLOPT_DNS_SHUFFLE_ADDRESSES.3 RENDER CURLOPT_DNS_USE_GLOBAL_CACHE.3 RENDER CURLOPT_DOH_SSL_VERIFYHOST.3 RENDER CURLOPT_DOH_SSL_VERIFYPEER.3 RENDER CURLOPT_DOH_SSL_VERIFYSTATUS.3 RENDER CURLOPT_DOH_URL.3 RENDER CURLOPT_ECH.3 RENDER CURLOPT_EGDSOCKET.3 RENDER CURLOPT_ERRORBUFFER.3 RENDER CURLOPT_EXPECT_100_TIMEOUT_MS.3 RENDER CURLOPT_FAILONERROR.3 RENDER CURLOPT_FILETIME.3 RENDER CURLOPT_FNMATCH_DATA.3 RENDER CURLOPT_FNMATCH_FUNCTION.3 RENDER CURLOPT_FOLLOWLOCATION.3 RENDER CURLOPT_FORBID_REUSE.3 RENDER CURLOPT_FRESH_CONNECT.3 RENDER CURLOPT_FTP_ACCOUNT.3 RENDER CURLOPT_FTP_ALTERNATIVE_TO_USER.3 RENDER CURLOPT_FTP_CREATE_MISSING_DIRS.3 RENDER CURLOPT_FTP_FILEMETHOD.3 RENDER CURLOPT_FTP_SKIP_PASV_IP.3 RENDER CURLOPT_FTP_SSL_CCC.3 RENDER CURLOPT_FTP_USE_EPRT.3 RENDER CURLOPT_FTP_USE_EPSV.3 RENDER CURLOPT_FTP_USE_PRET.3 RENDER CURLOPT_FTPPORT.3 RENDER CURLOPT_FTPSSLAUTH.3 RENDER CURLOPT_GSSAPI_DELEGATION.3 RENDER CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 RENDER CURLOPT_HAPROXYPROTOCOL.3 RENDER CURLOPT_HAPROXY_CLIENT_IP.3 RENDER CURLOPT_HEADER.3 RENDER CURLOPT_HEADERDATA.3 RENDER CURLOPT_HEADERFUNCTION.3 RENDER CURLOPT_HEADEROPT.3 RENDER CURLOPT_HSTS.3 RENDER CURLOPT_HSTS_CTRL.3 RENDER CURLOPT_HSTSREADDATA.3 RENDER CURLOPT_HSTSREADFUNCTION.3 RENDER CURLOPT_HSTSWRITEDATA.3 RENDER CURLOPT_HSTSWRITEFUNCTION.3 RENDER CURLOPT_HTTP09_ALLOWED.3 RENDER CURLOPT_HTTP200ALIASES.3 RENDER CURLOPT_HTTP_CONTENT_DECODING.3 RENDER CURLOPT_HTTP_TRANSFER_DECODING.3 RENDER CURLOPT_HTTP_VERSION.3 RENDER CURLOPT_HTTPAUTH.3 RENDER CURLOPT_HTTPGET.3 RENDER CURLOPT_HTTPHEADER.3 RENDER CURLOPT_HTTPPOST.3 RENDER CURLOPT_HTTPPROXYTUNNEL.3 RENDER CURLOPT_IGNORE_CONTENT_LENGTH.3 RENDER CURLOPT_INFILESIZE.3 RENDER CURLOPT_INFILESIZE_LARGE.3 RENDER CURLOPT_INTERFACE.3 RENDER CURLOPT_INTERLEAVEDATA.3 RENDER CURLOPT_INTERLEAVEFUNCTION.3 RENDER CURLOPT_IOCTLDATA.3 RENDER CURLOPT_IOCTLFUNCTION.3 RENDER CURLOPT_IPRESOLVE.3 RENDER CURLOPT_ISSUERCERT.3 RENDER CURLOPT_ISSUERCERT_BLOB.3 RENDER CURLOPT_KEEP_SENDING_ON_ERROR.3 RENDER CURLOPT_KEYPASSWD.3 RENDER CURLOPT_KRBLEVEL.3 RENDER CURLOPT_LOCALPORT.3 RENDER CURLOPT_LOCALPORTRANGE.3 RENDER CURLOPT_LOGIN_OPTIONS.3 RENDER CURLOPT_LOW_SPEED_LIMIT.3 RENDER CURLOPT_LOW_SPEED_TIME.3 RENDER CURLOPT_MAIL_AUTH.3 RENDER CURLOPT_MAIL_FROM.3 RENDER CURLOPT_MAIL_RCPT.3 RENDER CURLOPT_MAIL_RCPT_ALLOWFAILS.3 RENDER CURLOPT_MAX_RECV_SPEED_LARGE.3 RENDER CURLOPT_MAX_SEND_SPEED_LARGE.3 RENDER CURLOPT_MAXAGE_CONN.3 RENDER CURLOPT_MAXCONNECTS.3 RENDER CURLOPT_MAXFILESIZE.3 RENDER CURLOPT_MAXFILESIZE_LARGE.3 RENDER CURLOPT_MAXLIFETIME_CONN.3 RENDER CURLOPT_MAXREDIRS.3 RENDER CURLOPT_MIME_OPTIONS.3 RENDER CURLOPT_MIMEPOST.3 RENDER CURLOPT_NETRC.3 RENDER CURLOPT_NETRC_FILE.3 RENDER CURLOPT_NEW_DIRECTORY_PERMS.3 RENDER CURLOPT_NEW_FILE_PERMS.3 RENDER CURLOPT_NOBODY.3 RENDER CURLOPT_NOPROGRESS.3 RENDER CURLOPT_NOPROXY.3 RENDER CURLOPT_NOSIGNAL.3 RENDER CURLOPT_OPENSOCKETDATA.3 RENDER CURLOPT_OPENSOCKETFUNCTION.3 RENDER CURLOPT_PASSWORD.3 RENDER CURLOPT_PATH_AS_IS.3 RENDER CURLOPT_PINNEDPUBLICKEY.3 RENDER CURLOPT_PIPEWAIT.3 RENDER CURLOPT_PORT.3 RENDER CURLOPT_POST.3 RENDER CURLOPT_POSTFIELDS.3 RENDER CURLOPT_POSTFIELDSIZE.3 RENDER CURLOPT_POSTFIELDSIZE_LARGE.3 RENDER CURLOPT_POSTQUOTE.3 RENDER CURLOPT_POSTREDIR.3 RENDER CURLOPT_PRE_PROXY.3 RENDER CURLOPT_PREQUOTE.3 RENDER CURLOPT_PREREQDATA.3 RENDER CURLOPT_PREREQFUNCTION.3 RENDER CURLOPT_PRIVATE.3 RENDER CURLOPT_PROGRESSDATA.3 RENDER CURLOPT_PROGRESSFUNCTION.3 RENDER CURLOPT_PROTOCOLS.3 RENDER CURLOPT_PROTOCOLS_STR.3 RENDER CURLOPT_PROXY.3 RENDER CURLOPT_PROXY_CAINFO.3 RENDER CURLOPT_PROXY_CAINFO_BLOB.3 RENDER CURLOPT_PROXY_CAPATH.3 RENDER CURLOPT_PROXY_CRLFILE.3 RENDER CURLOPT_PROXY_ISSUERCERT.3 RENDER CURLOPT_PROXY_ISSUERCERT_BLOB.3 RENDER CURLOPT_PROXY_KEYPASSWD.3 RENDER CURLOPT_PROXY_PINNEDPUBLICKEY.3 RENDER CURLOPT_PROXY_SERVICE_NAME.3 RENDER CURLOPT_PROXY_SSL_CIPHER_LIST.3 RENDER CURLOPT_PROXY_SSL_OPTIONS.3 RENDER CURLOPT_PROXY_SSL_VERIFYHOST.3 RENDER CURLOPT_PROXY_SSL_VERIFYPEER.3 RENDER CURLOPT_PROXY_SSLCERT.3 RENDER CURLOPT_PROXY_SSLCERT_BLOB.3 RENDER CURLOPT_PROXY_SSLCERTTYPE.3 RENDER CURLOPT_PROXY_SSLKEY.3 RENDER CURLOPT_PROXY_SSLKEY_BLOB.3 RENDER CURLOPT_PROXY_SSLKEYTYPE.3 RENDER CURLOPT_PROXY_SSLVERSION.3 RENDER CURLOPT_PROXY_TLS13_CIPHERS.3 RENDER CURLOPT_PROXY_TLSAUTH_PASSWORD.3 RENDER CURLOPT_PROXY_TLSAUTH_TYPE.3 RENDER CURLOPT_PROXY_TLSAUTH_USERNAME.3 RENDER CURLOPT_PROXY_TRANSFER_MODE.3 RENDER CURLOPT_PROXYAUTH.3 RENDER CURLOPT_PROXYHEADER.3 RENDER CURLOPT_PROXYPASSWORD.3 RENDER CURLOPT_PROXYPORT.3 RENDER CURLOPT_PROXYTYPE.3 RENDER CURLOPT_PROXYUSERNAME.3 RENDER CURLOPT_PROXYUSERPWD.3 RENDER CURLOPT_PUT.3 RENDER CURLOPT_QUICK_EXIT.3 RENDER CURLOPT_QUOTE.3 RENDER CURLOPT_RANDOM_FILE.3 RENDER CURLOPT_RANGE.3 RENDER CURLOPT_READDATA.3 RENDER CURLOPT_READFUNCTION.3 RENDER CURLOPT_REDIR_PROTOCOLS.3 RENDER CURLOPT_REDIR_PROTOCOLS_STR.3 RENDER CURLOPT_REFERER.3 RENDER CURLOPT_REQUEST_TARGET.3 RENDER CURLOPT_RESOLVE.3 RENDER CURLOPT_RESOLVER_START_DATA.3 RENDER CURLOPT_RESOLVER_START_FUNCTION.3 RENDER CURLOPT_RESUME_FROM.3 RENDER CURLOPT_RESUME_FROM_LARGE.3 RENDER CURLOPT_RTSP_CLIENT_CSEQ.3 RENDER CURLOPT_RTSP_REQUEST.3 RENDER CURLOPT_RTSP_SERVER_CSEQ.3 RENDER CURLOPT_RTSP_SESSION_ID.3 RENDER CURLOPT_RTSP_STREAM_URI.3 RENDER CURLOPT_RTSP_TRANSPORT.3 RENDER CURLOPT_SASL_AUTHZID.3 RENDER CURLOPT_SASL_IR.3 RENDER CURLOPT_SEEKDATA.3 RENDER CURLOPT_SEEKFUNCTION.3 RENDER CURLOPT_SERVER_RESPONSE_TIMEOUT.3 RENDER CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.3 RENDER CURLOPT_SERVICE_NAME.3 RENDER CURLOPT_SHARE.3 RENDER CURLOPT_SOCKOPTDATA.3 RENDER CURLOPT_SOCKOPTFUNCTION.3 RENDER CURLOPT_SOCKS5_AUTH.3 RENDER CURLOPT_SOCKS5_GSSAPI_NEC.3 RENDER CURLOPT_SOCKS5_GSSAPI_SERVICE.3 RENDER CURLOPT_SSH_AUTH_TYPES.3 RENDER CURLOPT_SSH_COMPRESSION.3 RENDER CURLOPT_SSH_HOSTKEYDATA.3 RENDER CURLOPT_SSH_HOSTKEYFUNCTION.3 RENDER CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 RENDER CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.3 RENDER CURLOPT_SSH_KEYDATA.3 RENDER CURLOPT_SSH_KEYFUNCTION.3 RENDER CURLOPT_SSH_KNOWNHOSTS.3 RENDER CURLOPT_SSH_PRIVATE_KEYFILE.3 RENDER CURLOPT_SSH_PUBLIC_KEYFILE.3 RENDER CURLOPT_SSL_CIPHER_LIST.3 RENDER CURLOPT_SSL_CTX_DATA.3 RENDER CURLOPT_SSL_CTX_FUNCTION.3 RENDER CURLOPT_SSL_EC_CURVES.3 RENDER CURLOPT_SSL_ENABLE_ALPN.3 RENDER CURLOPT_SSL_ENABLE_NPN.3 RENDER CURLOPT_SSL_FALSESTART.3 RENDER CURLOPT_SSL_OPTIONS.3 RENDER CURLOPT_SSL_SESSIONID_CACHE.3 RENDER CURLOPT_SSL_SIGNATURE_ALGORITHMS.3 RENDER CURLOPT_SSL_VERIFYHOST.3 RENDER CURLOPT_SSL_VERIFYPEER.3 RENDER CURLOPT_SSL_VERIFYSTATUS.3 RENDER CURLOPT_SSLCERT.3 RENDER CURLOPT_SSLCERT_BLOB.3 RENDER CURLOPT_SSLCERTTYPE.3 RENDER CURLOPT_SSLENGINE.3 RENDER CURLOPT_SSLENGINE_DEFAULT.3 RENDER CURLOPT_SSLKEY.3 RENDER CURLOPT_SSLKEY_BLOB.3 RENDER CURLOPT_SSLKEYTYPE.3 RENDER CURLOPT_SSLVERSION.3 RENDER CURLOPT_STDERR.3 RENDER CURLOPT_STREAM_DEPENDS.3 RENDER CURLOPT_STREAM_DEPENDS_E.3 RENDER CURLOPT_STREAM_WEIGHT.3 RENDER CURLOPT_SUPPRESS_CONNECT_HEADERS.3 RENDER CURLOPT_TCP_FASTOPEN.3 RENDER CURLOPT_TCP_KEEPALIVE.3 RENDER CURLOPT_TCP_KEEPIDLE.3 RENDER CURLOPT_TCP_KEEPINTVL.3 RENDER CURLOPT_TCP_KEEPCNT.3 RENDER CURLOPT_TCP_NODELAY.3 RENDER CURLOPT_TELNETOPTIONS.3 RENDER CURLOPT_TFTP_BLKSIZE.3 RENDER CURLOPT_TFTP_NO_OPTIONS.3 RENDER CURLOPT_TIMECONDITION.3 RENDER CURLOPT_TIMEOUT.3 RENDER CURLOPT_TIMEOUT_MS.3 RENDER CURLOPT_TIMEVALUE.3 RENDER CURLOPT_TIMEVALUE_LARGE.3 RENDER CURLOPT_TLS13_CIPHERS.3 RENDER CURLOPT_TLSAUTH_PASSWORD.3 RENDER CURLOPT_TLSAUTH_TYPE.3 RENDER CURLOPT_TLSAUTH_USERNAME.3 RENDER CURLOPT_TRAILERDATA.3 RENDER CURLOPT_TRAILERFUNCTION.3 RENDER CURLOPT_TRANSFER_ENCODING.3 RENDER CURLOPT_TRANSFERTEXT.3 RENDER CURLOPT_UNIX_SOCKET_PATH.3 RENDER CURLOPT_UNRESTRICTED_AUTH.3 RENDER CURLOPT_UPKEEP_INTERVAL_MS.3 RENDER CURLOPT_UPLOAD.3 RENDER CURLOPT_UPLOAD_BUFFERSIZE.3 RENDER CURLOPT_UPLOAD_FLAGS.3 RENDER CURLOPT_URL.3 RENDER CURLOPT_USE_SSL.3 RENDER CURLOPT_USERAGENT.3 RENDER CURLOPT_USERNAME.3 RENDER CURLOPT_USERPWD.3 RENDER CURLOPT_VERBOSE.3 RENDER CURLOPT_WILDCARDMATCH.3 RENDER CURLOPT_WRITEDATA.3 RENDER CURLOPT_WRITEFUNCTION.3 RENDER CURLOPT_WS_OPTIONS.3 RENDER CURLOPT_XFERINFODATA.3 RENDER CURLOPT_XFERINFOFUNCTION.3 RENDER CURLOPT_XOAUTH2_BEARER.3 RENDER CURLSHOPT_LOCKFUNC.3 RENDER CURLSHOPT_SHARE.3 RENDER CURLSHOPT_UNLOCKFUNC.3 RENDER CURLSHOPT_UNSHARE.3 RENDER CURLSHOPT_USERDATA.3 make[3]: Leaving directory '/build/curl/src/build-curl/docs/libcurl/opts' make[3]: Entering directory '/build/curl/src/build-curl/docs/libcurl' RENDER curl_easy_cleanup.3 RENDER curl_easy_duphandle.3 RENDER curl_easy_escape.3 RENDER curl_easy_getinfo.3 RENDER curl_easy_header.3 RENDER curl_easy_init.3 RENDER curl_easy_nextheader.3 RENDER curl_easy_option_by_id.3 RENDER curl_easy_option_by_name.3 RENDER curl_easy_option_next.3 RENDER curl_easy_pause.3 RENDER curl_easy_perform.3 RENDER curl_easy_recv.3 RENDER curl_easy_reset.3 RENDER curl_easy_send.3 RENDER curl_easy_setopt.3 RENDER curl_easy_ssls_export.3 RENDER curl_easy_ssls_import.3 RENDER curl_easy_strerror.3 RENDER curl_easy_unescape.3 RENDER curl_easy_upkeep.3 RENDER curl_escape.3 RENDER curl_formadd.3 RENDER curl_formfree.3 RENDER curl_formget.3 RENDER curl_free.3 RENDER curl_getdate.3 RENDER curl_getenv.3 RENDER curl_global_cleanup.3 RENDER curl_global_init.3 RENDER curl_global_init_mem.3 RENDER curl_global_sslset.3 RENDER curl_global_trace.3 RENDER curl_mime_addpart.3 RENDER curl_mime_data.3 RENDER curl_mime_data_cb.3 RENDER curl_mime_encoder.3 RENDER curl_mime_filedata.3 RENDER curl_mime_filename.3 RENDER curl_mime_free.3 RENDER curl_mime_headers.3 RENDER curl_mime_init.3 RENDER curl_mime_name.3 RENDER curl_mime_subparts.3 RENDER curl_mime_type.3 RENDER curl_mprintf.3 RENDER curl_multi_add_handle.3 RENDER curl_multi_assign.3 RENDER curl_multi_cleanup.3 RENDER curl_multi_fdset.3 RENDER curl_multi_get_handles.3 RENDER curl_multi_get_offt.3 RENDER curl_multi_info_read.3 RENDER curl_multi_init.3 RENDER curl_multi_perform.3 RENDER curl_multi_poll.3 RENDER curl_multi_remove_handle.3 RENDER curl_multi_setopt.3 RENDER curl_multi_socket.3 RENDER curl_multi_socket_action.3 RENDER curl_multi_socket_all.3 RENDER curl_multi_strerror.3 RENDER curl_multi_timeout.3 RENDER curl_multi_wait.3 RENDER curl_multi_waitfds.3 RENDER curl_multi_wakeup.3 RENDER curl_pushheader_byname.3 RENDER curl_pushheader_bynum.3 RENDER curl_share_cleanup.3 RENDER curl_share_init.3 RENDER curl_share_setopt.3 RENDER curl_share_strerror.3 RENDER curl_slist_append.3 RENDER curl_slist_free_all.3 RENDER curl_strequal.3 RENDER curl_strnequal.3 RENDER curl_unescape.3 RENDER curl_url.3 RENDER curl_url_cleanup.3 RENDER curl_url_dup.3 RENDER curl_url_get.3 RENDER curl_url_set.3 RENDER curl_url_strerror.3 RENDER curl_version.3 RENDER curl_version_info.3 RENDER curl_ws_meta.3 RENDER curl_ws_recv.3 RENDER curl_ws_send.3 RENDER curl_ws_start_frame.3 RENDER libcurl-easy.3 RENDER libcurl-env-dbg.3 RENDER libcurl-env.3 RENDER libcurl-errors.3 RENDER libcurl-multi.3 RENDER libcurl-security.3 RENDER libcurl-share.3 RENDER libcurl-symbols.md RENDER libcurl-thread.3 RENDER libcurl-tutorial.3 RENDER libcurl-url.3 RENDER libcurl-ws.3 RENDER libcurl.3 RENDER libcurl-symbols.3 make[3]: Leaving directory '/build/curl/src/build-curl/docs/libcurl' make[2]: Leaving directory '/build/curl/src/build-curl/docs/libcurl' make[1]: Leaving directory '/build/curl/src/build-curl/docs' Making all in src make[1]: Entering directory '/build/curl/src/build-curl/src' CC curl-config2setopts.o CC curl-slist_wc.o CC curl-terminal.o CC curl-tool_bname.o CC curl-tool_cb_dbg.o CC curl-tool_cb_hdr.o CC curl-tool_cb_prg.o CC curl-tool_cb_rea.o CC curl-tool_cb_see.o CC curl-tool_cb_soc.o CC curl-tool_cb_wrt.o CC curl-tool_cfgable.o CC curl-tool_dirhie.o CC curl-tool_doswin.o CC curl-tool_easysrc.o CC curl-tool_filetime.o CC curl-tool_findfile.o CC curl-tool_formparse.o CC curl-tool_getparam.o CC curl-tool_getpass.o CC curl-tool_help.o CC curl-tool_helpers.o CC curl-tool_ipfs.o CC curl-tool_libinfo.o CC curl-tool_listhelp.o CC curl-tool_main.o CC curl-tool_msgs.o CC curl-tool_operate.o CC curl-tool_operhlp.o CC curl-tool_paramhlp.o CC curl-tool_parsecfg.o CC curl-tool_progress.o CC curl-tool_setopt.o CC curl-tool_ssls.o CC curl-tool_stderr.o CC curl-tool_strdup.o CC curl-tool_urlglob.o CC curl-tool_util.o CC curl-tool_vms.o CC curl-tool_writeout.o CC curl-tool_writeout_json.o CC curl-tool_xattr.o CC curl-var.o echo '/* !checksrc! disable COPYRIGHT all */' > tool_hugehelp.c; \ echo '#include "tool_hugehelp.h"' >> tool_hugehelp.c echo '/* !checksrc! disable COPYRIGHT all */' > tool_ca_embed.c echo 'extern const void *curl_ca_embed; const void *curl_ca_embed;' >> tool_ca_embed.c CC ../lib/curlx/curl-base64.o CC ../lib/curlx/curl-multibyte.o CC ../lib/curlx/curl-dynbuf.o CC ../lib/curlx/curl-nonblock.o CC ../lib/curlx/curl-strparse.o CC ../lib/curlx/curl-timediff.o CC ../lib/curlx/curl-timeval.o CC ../lib/curlx/curl-version_win32.o CC ../lib/curlx/curl-wait.o CC ../lib/curlx/curl-warnless.o CC curlinfo.o CC libcurltool_la-config2setopts.lo CC libcurltool_la-slist_wc.lo CC libcurltool_la-terminal.lo CC libcurltool_la-tool_bname.lo CC libcurltool_la-tool_cb_dbg.lo CC libcurltool_la-tool_cb_hdr.lo CC libcurltool_la-tool_cb_prg.lo CC libcurltool_la-tool_cb_rea.lo CC libcurltool_la-tool_cb_see.lo CC libcurltool_la-tool_cb_soc.lo CC libcurltool_la-tool_cb_wrt.lo CC libcurltool_la-tool_cfgable.lo CC libcurltool_la-tool_dirhie.lo CC libcurltool_la-tool_doswin.lo CC libcurltool_la-tool_easysrc.lo CC libcurltool_la-tool_filetime.lo CC libcurltool_la-tool_findfile.lo CC libcurltool_la-tool_formparse.lo CC libcurltool_la-tool_getparam.lo CC libcurltool_la-tool_getpass.lo CC libcurltool_la-tool_help.lo CC libcurltool_la-tool_helpers.lo CC libcurltool_la-tool_ipfs.lo CC libcurltool_la-tool_libinfo.lo CC libcurltool_la-tool_listhelp.lo CC libcurltool_la-tool_main.lo CC libcurltool_la-tool_msgs.lo CC libcurltool_la-tool_operate.lo CC libcurltool_la-tool_operhlp.lo CC libcurltool_la-tool_paramhlp.lo CC libcurltool_la-tool_parsecfg.lo CC libcurltool_la-tool_progress.lo CC libcurltool_la-tool_setopt.lo CC libcurltool_la-tool_ssls.lo CC libcurltool_la-tool_stderr.lo CC libcurltool_la-tool_strdup.lo CC libcurltool_la-tool_urlglob.lo CC libcurltool_la-tool_util.lo CC libcurltool_la-tool_vms.lo CC libcurltool_la-tool_writeout.lo CC libcurltool_la-tool_writeout_json.lo CC libcurltool_la-tool_xattr.lo CC libcurltool_la-var.lo CC ../lib/curlx/libcurltool_la-base64.lo CC ../lib/curlx/libcurltool_la-multibyte.lo CC ../lib/curlx/libcurltool_la-dynbuf.lo CC ../lib/curlx/libcurltool_la-nonblock.lo CC ../lib/curlx/libcurltool_la-strparse.lo CC ../lib/curlx/libcurltool_la-timediff.lo CC ../lib/curlx/libcurltool_la-timeval.lo CC ../lib/curlx/libcurltool_la-version_win32.lo CC ../lib/curlx/libcurltool_la-wait.lo CC ../lib/curlx/libcurltool_la-warnless.lo CC curl-tool_hugehelp.o CC curl-tool_ca_embed.o CCLD curlinfo CCLD curl CCLD libcurltool.la make[1]: Leaving directory '/build/curl/src/build-curl/src' Making all in scripts make[1]: Entering directory '/build/curl/src/build-curl/scripts' /usr/bin/perl /build/curl/src/curl/scripts/completion.pl --opts-dir /build/curl/src/curl/docs/cmdline-opts --shell zsh > _curl /usr/bin/perl /build/curl/src/curl/scripts/completion.pl --opts-dir /build/curl/src/curl/docs/cmdline-opts --shell fish > curl.fish make[1]: Leaving directory '/build/curl/src/build-curl/scripts' make[1]: Entering directory '/build/curl/src/build-curl' make[1]: Nothing to be done for 'all-am'. make[1]: Leaving directory '/build/curl/src/build-curl' checking whether to enable maintainer-specific portions of Makefiles... no checking whether make supports nested variables... yes checking whether to enable debug build options... no checking whether to enable compiler optimizer... (assumed) yes checking whether to enable strict compiler warnings... no checking whether to enable compiler warnings as errors... no checking whether to enable curl debug memory tracking... no checking whether to enable hiding of library internal symbols... yes checking whether to enable c-ares for DNS lookups... no checking whether to disable dependency on -lrt... (assumed no) checking whether to enable HTTPSRR support... no checking whether to enable ECH support... no checking whether to enable SSL session export support... no checking for path separator... : checking for sed... /usr/bin/sed checking for grep... /usr/bin/grep checking that grep -E works... yes checking for ar... /usr/bin/ar checking for a BSD-compatible install... /usr/bin/install -c checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking how to run the C preprocessor... gcc -E checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for stdatomic.h... yes checking if _Atomic is available... yes checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for code coverage support... no checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking xargs -n works... yes checking whether UID '1000' is supported by ustar format... yes checking whether GID '1000' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking dependency style of gcc... gcc3 checking curl version... 8.16.0 checking for perl... /usr/bin/perl checking for httpd... no checking for apache2... no checking for apxs... no configure: httpd/apache2 not in PATH, http tests disabled configure: apxs not in PATH, http tests disabled checking for danted... no checking for danted... no checking for nghttpx... no checking for caddy... no checking build system type... riscv64-unknown-linux-gnu checking host system type... riscv64-unknown-linux-gnu checking for egrep -e... /usr/bin/grep -E checking if OS is AIX (to define _ALL_SOURCE)... no checking if _THREAD_SAFE is already defined... no checking if _THREAD_SAFE is actually needed... no checking if _THREAD_SAFE is onwards defined... no checking if _REENTRANT is already defined... no checking if _REENTRANT is actually needed... no checking if _REENTRANT is onwards defined... no checking for gcc option to enable large file support... none needed checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert riscv64-unknown-linux-gnu file names to riscv64-unknown-linux-gnu format... func_convert_file_noop checking how to convert riscv64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ranlib... ranlib checking for archiver @FILE support... @ checking for strip... strip checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking which variant of shared library versioning to provide... (default) aix checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether to build shared libraries with -version-info... yes checking whether to build shared libraries with -no-undefined... no checking whether to build shared libraries with -mimpure-text... no checking whether to build shared libraries with PIC... yes checking whether to build static libraries with PIC... no checking whether to build shared libraries only... no checking whether to build static libraries only... no checking for windres... no checking if cpp -P is needed... yes checking if cpp -P works... yes checking if compiler is DEC/Compaq/HP C... no checking if compiler is HP-UX C... no checking if compiler is IBM C... no checking if compiler is Intel C... no checking if compiler is clang... no checking if compiler is GNU C... yes checking compiler version... gcc '1502' (raw: '15.2.1') checking if compiler is SunPro C... no checking if compiler is Tiny C... no checking whether build target is a native Windows one... no checking if compiler accepts some basic options... yes configure: compiler options added: -Werror-implicit-function-declaration checking if compiler optimizer assumed setting might be used... no checking if compiler accepts strict warning options... yes configure: compiler options added: -Wno-system-headers checking if compiler halts on compilation errors... yes checking if compiler halts on negative sized arrays... yes checking if compiler halts on function prototype mismatch... yes checking if compiler supports hiding library internal symbols... yes checking whether build target supports Win32 crypto API... no checking whether to build libcurl and curl in "unity" mode... no checking whether to support http... yes checking whether to support ftp... yes checking whether to support file... yes checking whether to support IPFS... yes checking whether to support ldap... no checking whether to support ldaps... no checking whether to support rtsp... yes checking whether to support proxies... yes checking whether to support dict... yes checking whether to support telnet... yes checking whether to support tftp... yes checking whether to support pop3... yes checking whether to support imap... yes checking whether to support smb... yes checking whether to support smtp... yes checking whether to support gopher... yes checking whether to support mqtt... no checking whether to provide built-in manual... no checking whether to build documentation... yes checking whether to enable generation of C code... yes checking whether to use libgcc... no checking if X/Open network library is required... no checking for gethostbyname... yes checking whether build target is a native Windows one... (cached) no checking for proto/bsdsocket.h... no checking for connect in libraries... yes checking for sys/types.h... (cached) yes checking for monotonic clock_gettime... yes checking for clock_gettime in libraries... no additional lib required checking if monotonic clock_gettime works... yes checking for sys/types.h... (cached) yes checking for raw monotonic clock_gettime... yes checking for pkg-config... /usr/bin/pkg-config checking for zlib options with pkg-config... found checking for zlib.h... yes configure: found both libz and libz.h header checking for BrotliDecoderDecompress in -lbrotlidec... yes checking for brotli/decode.h... yes checking for ZSTD_createDStream in -lzstd... yes checking for zstd.h... yes checking whether to enable IPv6... yes checking if struct sockaddr_in6 has sin6_scope_id member... yes checking if argv can be written to... yes checking if GSS-API support is requested... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking for gss.h... no checking for gssapi/gssapi.h... yes checking for gssapi/gssapi_generic.h... yes checking for gssapi/gssapi_krb5.h... yes checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking if we can link against GSS-API library... yes checking whether to enable Windows native SSL/TLS... no checking whether to enable Amiga native SSL/TLS (AmiSSL v5)... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for openssl options with pkg-config... found configure: pkg-config: SSL_LIBS: "-lssl -lcrypto" configure: pkg-config: SSL_LDFLAGS: "" configure: pkg-config: SSL_CPPFLAGS: "" checking for HMAC_Update in -lcrypto... yes checking for SSL_connect in -lssl... yes checking for openssl/x509.h... yes checking for openssl/rsa.h... yes checking for openssl/crypto.h... yes checking for openssl/pem.h... yes checking for openssl/ssl.h... yes checking for openssl/err.h... yes checking for BoringSSL... no checking for AWS-LC... no checking for LibreSSL... no checking for OpenSSL >= v3... yes checking for SSL_set_quic_use_legacy_codepoint... no checking for SSL_set_quic_tls_cbs... yes configure: OpenSSL with QUIC APIv2 checking for SRP support in OpenSSL... yes checking for QUIC support and OpenSSL >= 3.3... yes configure: built with one SSL backend checking default CA cert bundle/path... /etc/ssl/certs/ca-certificates.crt checking whether to use OpenSSL's built-in CA store... no checking CA cert bundle path to embed in the curl tool... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for libpsl options with pkg-config... found checking for psl_builtin in -lpsl... yes checking for libpsl.h... yes checking for library containing gsasl_init... no configure: WARNING: libgsasl was not found checking for pkg-config... (cached) /usr/bin/pkg-config checking for libssh2 options with pkg-config... found checking for libssh2_free in -lssh2... yes checking for libssh2.h... yes checking for RTMP_Init in -lrtmp... no checking whether versioned symbols are wanted... no checking whether to build with libidn2... (assumed) yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libidn2 options with pkg-config... found configure: pkg-config: IDN_LIBS: "-lidn2" configure: pkg-config: IDN_LDFLAGS: "" configure: pkg-config: IDN_CPPFLAGS: "" configure: pkg-config: IDN_DIR: "" checking if idn2_lookup_ul can be linked... yes checking for idn2.h... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp2 options with pkg-config... found configure: -l is -lnghttp2 configure: -I is configure: -L is checking for nghttp2_session_get_stream_local_window_size in -lnghttp2... yes checking for nghttp2/nghttp2.h... yes configure: Added to CURL_LIBRARY_PATH checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp3 options with pkg-config... found configure: -l is -lnghttp3 configure: -I is configure: -L is checking for nghttp3_conn_client_new_versioned in -lnghttp3... yes checking for nghttp3/nghttp3.h... yes configure: Added to CURL_LIBRARY_PATH configure: HTTP3 support is experimental checking for sys/types.h... (cached) yes checking for sys/select.h... yes checking for sys/ioctl.h... yes checking for unistd.h... (cached) yes checking for arpa/inet.h... yes checking for net/if.h... yes checking for netinet/in.h... yes checking for netinet/in6.h... no checking for sys/un.h... yes checking for linux/tcp.h... yes checking for netinet/tcp.h... yes checking for netinet/udp.h... yes checking for netdb.h... yes checking for sys/sockio.h... no checking for sys/param.h... yes checking for termios.h... yes checking for termio.h... yes checking for fcntl.h... yes checking for io.h... no checking for pwd.h... yes checking for utime.h... yes checking for sys/utime.h... no checking for sys/poll.h... yes checking for poll.h... yes checking for sys/resource.h... yes checking for libgen.h... yes checking for locale.h... yes checking for stdbool.h... yes checking for stdint.h... (cached) yes checking for sys/filio.h... no checking for sys/eventfd.h... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for sys/types.h... (cached) yes checking for struct timeval... yes checking run-time libs availability... fine checking size of size_t... 8 checking size of long... 8 checking size of int... 4 checking size of time_t... 8 checking size of off_t... 8 checking size of curl_off_t... 8 checking size of curl_socket_t... 4 checking for long long... yes checking for ssize_t... yes checking for bool... yes checking for sa_family_t... yes checking for suseconds_t... yes checking if time_t is unsigned... no checking for struct sockaddr_storage... yes checking for sys/select.h... (cached) yes checking for select... yes checking for sys/types.h... (cached) yes checking for recv... yes checking for sys/types.h... (cached) yes checking for send... yes checking for sys/types.h... (cached) yes checking for MSG_NOSIGNAL... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking if alarm can be linked... yes checking if alarm is prototyped... yes checking if alarm is compilable... yes checking if alarm usage allowed... yes checking if alarm might be used... yes checking for sys/types.h... (cached) yes checking for strings.h... (cached) yes checking for sys/types.h... (cached) yes checking for libgen.h... (cached) yes checking if basename can be linked... yes checking if basename is prototyped... yes checking if basename is compilable... yes checking if basename usage allowed... yes checking if basename might be used... yes checking if closesocket can be linked... no checking if closesocket might be used... no checking for sys/types.h... (cached) yes checking if CloseSocket can be linked... no checking if CloseSocket might be used... no checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for fcntl.h... (cached) yes checking if fcntl can be linked... yes checking if fcntl is prototyped... yes checking if fcntl is compilable... yes checking if fcntl usage allowed... yes checking if fcntl might be used... yes checking if fcntl O_NONBLOCK is compilable... yes checking if fcntl O_NONBLOCK usage allowed... yes checking if fcntl O_NONBLOCK might be used... yes checking whether build target is a native Windows one... (cached) no checking for sys/types.h... (cached) yes checking for netdb.h... (cached) yes checking if freeaddrinfo can be linked... yes checking if freeaddrinfo is prototyped... yes checking if freeaddrinfo is compilable... yes checking if freeaddrinfo usage allowed... yes checking if freeaddrinfo might be used... yes checking for sys/types.h... (cached) yes checking for sys/xattr.h... yes checking if fsetxattr can be linked... yes checking if fsetxattr is prototyped... yes checking if fsetxattr takes 5 args.... yes checking if fsetxattr is compilable... yes checking if fsetxattr usage allowed... yes checking if fsetxattr might be used... yes checking if ftruncate can be linked... yes checking if ftruncate is prototyped... yes checking if ftruncate is compilable... yes checking if ftruncate usage allowed... yes checking if ftruncate might be used... yes checking for sys/types.h... (cached) yes checking if getaddrinfo can be linked... yes checking if getaddrinfo is prototyped... yes checking if getaddrinfo is compilable... yes checking if getaddrinfo seems to work... yes checking if getaddrinfo usage allowed... yes checking if getaddrinfo might be used... yes checking if getaddrinfo is threadsafe... yes checking if gethostbyname_r can be linked... yes checking if gethostbyname_r is prototyped... yes checking if gethostbyname_r takes 3 args.... no checking if gethostbyname_r takes 5 args.... no checking if gethostbyname_r takes 6 args.... yes checking if gethostbyname_r is compilable... yes checking if gethostbyname_r usage allowed... yes checking if gethostbyname_r might be used... yes checking if gethostname can be linked... yes checking if gethostname is prototyped... yes checking if gethostname is compilable... yes checking for gethostname arg 2 data type... size_t checking if gethostname usage allowed... yes checking if gethostname might be used... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for ifaddrs.h... yes checking if getifaddrs can be linked... yes checking if getifaddrs is prototyped... yes checking if getifaddrs is compilable... yes checking if getifaddrs seems to work... yes checking if getifaddrs usage allowed... yes checking if getifaddrs might be used... yes checking if getpeername can be linked... yes checking if getpeername is prototyped... yes checking if getpeername is compilable... yes checking if getpeername usage allowed... yes checking if getpeername might be used... yes checking if getsockname can be linked... yes checking if getsockname is prototyped... yes checking if getsockname is compilable... yes checking if getsockname usage allowed... yes checking if getsockname might be used... yes checking for sys/types.h... (cached) yes checking if gmtime_r can be linked... yes checking if gmtime_r is prototyped... yes checking if gmtime_r is compilable... yes checking if gmtime_r seems to work... yes checking if gmtime_r usage allowed... yes checking if gmtime_r might be used... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for sys/ioctl.h... (cached) yes checking for stropts.h... no checking if ioctl can be linked... yes checking if ioctl is prototyped... yes checking if ioctl is compilable... yes checking if ioctl usage allowed... yes checking if ioctl might be used... yes checking if ioctl FIONBIO is compilable... yes checking if ioctl FIONBIO usage allowed... yes checking if ioctl FIONBIO might be used... yes checking if ioctl SIOCGIFADDR is compilable... yes checking if ioctl SIOCGIFADDR usage allowed... yes checking if ioctl SIOCGIFADDR might be used... yes checking if ioctlsocket can be linked... no checking if ioctlsocket might be used... no checking if IoctlSocket can be linked... no checking if IoctlSocket might be used... no checking if memrchr can be linked... yes checking if memrchr is prototyped... yes checking if memrchr is compilable... yes checking if memrchr usage allowed... yes checking if memrchr might be used... yes checking for sys/types.h... (cached) yes checking if sigaction can be linked... yes checking if sigaction is prototyped... yes checking if sigaction is compilable... yes checking if sigaction usage allowed... yes checking if sigaction might be used... yes checking if siginterrupt can be linked... yes checking if siginterrupt is prototyped... yes checking if siginterrupt is compilable... yes checking if siginterrupt usage allowed... yes checking if siginterrupt might be used... yes checking if signal can be linked... yes checking if signal is prototyped... yes checking if signal is compilable... yes checking if signal usage allowed... yes checking if signal might be used... yes checking for sys/types.h... (cached) yes checking if sigsetjmp can be linked... no checking if sigsetjmp seems a macro... yes checking if sigsetjmp is compilable... yes checking if sigsetjmp usage allowed... yes checking if sigsetjmp might be used... yes checking if socket can be linked... yes checking if socket is prototyped... yes checking if socket is compilable... yes checking if socket usage allowed... yes checking if socket might be used... yes checking if socketpair can be linked... yes checking if socketpair is prototyped... yes checking if socketpair is compilable... yes checking if socketpair usage allowed... yes checking if socketpair might be used... yes checking if strdup can be linked... yes checking if strdup is prototyped... yes checking if strdup is compilable... yes checking if strdup usage allowed... yes checking if strdup might be used... yes checking if strerror_r can be linked... yes checking if strerror_r is prototyped... yes checking if strerror_r is compilable... yes checking if strerror_r is glibc like... yes checking if strerror_r seems to work... yes checking if strerror_r usage allowed... yes checking if strerror_r might be used... yes checking for accept4... yes checking for eventfd... yes checking for fnmatch... yes checking for geteuid... yes checking for getpass_r... no checking for getppid... yes checking for getpwuid... yes checking for getpwuid_r... yes checking for getrlimit... yes checking for gettimeofday... yes checking for mach_absolute_time... no checking for pipe... yes checking for pipe2... yes checking for poll... yes checking for sendmmsg... yes checking for sendmsg... yes checking for setlocale... yes checking for setrlimit... yes checking for snprintf... yes checking for utime... yes checking for utimes... yes checking for if_nametoindex... yes checking for realpath... yes checking for sched_yield... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for arpa/inet.h... (cached) yes checking if inet_ntop can be linked... yes checking if inet_ntop is prototyped... yes checking if inet_ntop is compilable... yes checking if inet_ntop seems to work... yes checking if inet_ntop usage allowed... yes checking if inet_ntop might be used... yes checking if inet_pton can be linked... yes checking if inet_pton is prototyped... yes checking if inet_pton is compilable... yes checking if inet_pton seems to work... yes checking if inet_pton usage allowed... yes checking if inet_pton might be used... yes checking if strcasecmp can be linked... yes checking if strcasecmp is prototyped... yes checking if strcasecmp is compilable... yes checking if strcasecmp usage allowed... yes checking if strcasecmp might be used... yes checking if strcmpi can be linked... no checking if strcmpi might be used... no checking if stricmp can be linked... no checking if stricmp might be used... no checking for setmode... no checking for fseeko... yes checking for gcc options needed to detect all undeclared functions... none needed checking whether fseeko is declared... yes checking how to set a socket into non-blocking mode... fcntl O_NONBLOCK checking whether to enable the threaded resolver... yes checking for pthread.h... yes checking for pthread_create... yes checking for dirent.h... yes checking for opendir... yes checking convert -I options to -isystem... yes checking whether to enable verbose strings... yes checking whether to enable SSPI support (Windows native builds only)... no checking whether to enable basic authentication method... yes checking whether to enable bearer authentication method... yes checking whether to enable digest authentication method... yes checking whether to enable kerberos authentication method... yes checking whether to enable negotiate authentication method... yes checking whether to enable aws sig methods... yes checking whether to support NTLM... yes checking whether to enable TLS-SRP authentication... yes checking whether to enable Unix domain sockets... auto checking for struct sockaddr_un.sun_path... yes checking whether to support cookies... yes checking whether to support socketpair... yes checking whether to support HTTP authentication... yes checking whether to support DoH... yes checking whether to support the MIME API... yes checking whether to support binding connections locally... yes checking whether to support the form API... yes checking whether to support date parsing... yes checking whether to support netrc parsing... yes checking whether to support progress-meter... yes checking whether to support the SHA-512/256 hash algorithm... yes checking whether to support DNS shuffling... yes checking whether to support curl_easy_option*... yes checking whether to support alt-svc... yes checking whether to support headers-api... yes checking whether to support HSTS... yes checking whether to enable HTTPS-RR support... no checking for SSL_set0_wbio... yes checking whether to support WebSockets... yes checking whether hiding of library internal symbols will actually happen... yes checking if this build supports HTTPS-proxy... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating docs/Makefile config.status: creating docs/examples/Makefile config.status: creating docs/libcurl/Makefile config.status: creating docs/libcurl/opts/Makefile config.status: creating docs/cmdline-opts/Makefile config.status: creating include/Makefile config.status: creating include/curl/Makefile config.status: creating src/Makefile config.status: creating lib/Makefile config.status: creating scripts/Makefile config.status: creating lib/libcurl.vers config.status: creating tests/Makefile config.status: creating tests/config config.status: creating tests/configurehelp.pm config.status: creating tests/certs/Makefile config.status: creating tests/data/Makefile config.status: creating tests/server/Makefile config.status: creating tests/libtest/Makefile config.status: creating tests/unit/Makefile config.status: creating tests/tunit/Makefile config.status: creating tests/http/config.ini config.status: creating tests/http/Makefile config.status: creating packages/Makefile config.status: creating packages/vms/Makefile config.status: creating libcurl.pc config.status: creating curl-config config.status: creating lib/curl_config.h config.status: executing depfiles commands config.status: executing libtool commands configure: Configured to build curl/libcurl: Host setup: riscv64-unknown-linux-gnu Install prefix: /usr Compiler: gcc CFLAGS: -march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -g -ffile-prefix-map=/build/curl/src=/usr/src/debug/curl -flto=auto -Werror-implicit-function-declaration -Wno-system-headers CFLAGS extras: CPPFLAGS: -D_GNU_SOURCE LDFLAGS: -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -flto=auto curl-config: LIBS: -lnghttp3 -lnghttp2 -lidn2 -lssh2 -lssh2 -lpsl -lssl -lcrypto -lssl -lcrypto -lgssapi_krb5 -lzstd -lbrotlidec -lz curl version: 8.16.0 SSL: enabled (OpenSSL v3+) SSH: enabled (libssh2) zlib: enabled brotli: enabled (libbrotlidec) zstd: enabled (libzstd) GSS-API: enabled (MIT Kerberos/Heimdal) GSASL: no (libgsasl not found) TLS-SRP: enabled resolver: POSIX threaded IPv6: enabled Unix sockets: enabled IDN: enabled (libidn2) Build docs: enabled (--disable-docs) Build libcurl: Shared=yes, Static=yes Built-in manual: no (--enable-manual) --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI: no (--enable-sspi) ca cert bundle: /etc/ssl/certs/ca-certificates.crt ca cert path: no ca cert embed: no ca fallback: no LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: no (--enable-ldaps) IPFS/IPNS: enabled RTSP: enabled RTMP: no (--with-librtmp) PSL: enabled Alt-svc: enabled (--disable-alt-svc) Headers API: enabled (--disable-headers-api) HSTS: enabled (--disable-hsts) HTTP1: enabled (internal) HTTP2: enabled (nghttp2) HTTP3: enabled (openssl + nghttp3) ECH: no (--enable-ech) HTTPS RR: no (--enable-httpsrr) SSLS-EXPORT: no (--enable-ssls-export) Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd configure: WARNING: HTTP3 is enabled but marked EXPERIMENTAL. Use with caution! make: Entering directory '/build/curl/src/build-curl-compat/lib' make all-am make[1]: Entering directory '/build/curl/src/build-curl-compat/lib' CC libcurl_la-altsvc.lo CC libcurl_la-amigaos.lo CC libcurl_la-asyn-ares.lo CC libcurl_la-asyn-base.lo CC libcurl_la-bufq.lo CC libcurl_la-asyn-thrdd.lo CC libcurl_la-bufref.lo CC libcurl_la-cf-h1-proxy.lo CC libcurl_la-cf-h2-proxy.lo CC libcurl_la-cf-haproxy.lo CC libcurl_la-cf-https-connect.lo CC libcurl_la-cf-ip-happy.lo CC libcurl_la-cf-socket.lo CC libcurl_la-cfilters.lo CC libcurl_la-conncache.lo CC libcurl_la-connect.lo CC libcurl_la-content_encoding.lo CC libcurl_la-cookie.lo CC libcurl_la-cshutdn.lo CC libcurl_la-curl_addrinfo.lo CC libcurl_la-curl_des.lo CC libcurl_la-curl_endian.lo CC libcurl_la-curl_fnmatch.lo CC libcurl_la-curl_get_line.lo CC libcurl_la-curl_gethostname.lo CC libcurl_la-curl_gssapi.lo CC libcurl_la-curl_memrchr.lo CC libcurl_la-curl_ntlm_core.lo CC libcurl_la-curl_range.lo CC libcurl_la-curl_rtmp.lo CC libcurl_la-curl_sasl.lo CC libcurl_la-curl_sha512_256.lo CC libcurl_la-curl_sspi.lo CC libcurl_la-curl_threads.lo CC libcurl_la-curl_trc.lo CC libcurl_la-cw-out.lo CC libcurl_la-cw-pause.lo CC libcurl_la-dict.lo CC libcurl_la-doh.lo CC libcurl_la-dynhds.lo CC libcurl_la-easy.lo CC libcurl_la-easygetopt.lo CC libcurl_la-easyoptions.lo CC libcurl_la-escape.lo CC libcurl_la-fake_addrinfo.lo CC libcurl_la-file.lo CC libcurl_la-fileinfo.lo CC libcurl_la-fopen.lo CC libcurl_la-formdata.lo CC libcurl_la-ftp.lo CC libcurl_la-ftplistparser.lo CC libcurl_la-getenv.lo CC libcurl_la-getinfo.lo CC libcurl_la-gopher.lo CC libcurl_la-hash.lo CC libcurl_la-headers.lo CC libcurl_la-hmac.lo CC libcurl_la-hostip.lo CC libcurl_la-hostip4.lo CC libcurl_la-hostip6.lo CC libcurl_la-hsts.lo CC libcurl_la-http.lo CC libcurl_la-http1.lo CC libcurl_la-http2.lo CC libcurl_la-http_aws_sigv4.lo CC libcurl_la-http_chunks.lo CC libcurl_la-http_digest.lo CC libcurl_la-http_negotiate.lo CC libcurl_la-http_ntlm.lo CC libcurl_la-http_proxy.lo CC libcurl_la-httpsrr.lo CC libcurl_la-idn.lo CC libcurl_la-if2ip.lo CC libcurl_la-imap.lo CC libcurl_la-krb5.lo CC libcurl_la-ldap.lo CC libcurl_la-llist.lo CC libcurl_la-macos.lo CC libcurl_la-md4.lo CC libcurl_la-md5.lo CC libcurl_la-memdebug.lo CC libcurl_la-mime.lo CC libcurl_la-mprintf.lo CC libcurl_la-mqtt.lo CC libcurl_la-multi.lo CC libcurl_la-multi_ev.lo CC libcurl_la-netrc.lo CC libcurl_la-noproxy.lo CC libcurl_la-openldap.lo CC libcurl_la-parsedate.lo CC libcurl_la-pingpong.lo CC libcurl_la-pop3.lo CC libcurl_la-progress.lo CC libcurl_la-psl.lo CC libcurl_la-rand.lo CC libcurl_la-rename.lo CC libcurl_la-request.lo CC libcurl_la-rtsp.lo CC libcurl_la-select.lo CC libcurl_la-sendf.lo CC libcurl_la-setopt.lo CC libcurl_la-sha256.lo CC libcurl_la-share.lo CC libcurl_la-slist.lo CC libcurl_la-smb.lo CC libcurl_la-smtp.lo CC libcurl_la-socketpair.lo CC libcurl_la-socks.lo CC libcurl_la-socks_gssapi.lo CC libcurl_la-socks_sspi.lo CC libcurl_la-speedcheck.lo CC libcurl_la-splay.lo CC libcurl_la-strcase.lo CC libcurl_la-strdup.lo CC libcurl_la-strequal.lo CC libcurl_la-strerror.lo CC libcurl_la-system_win32.lo CC libcurl_la-telnet.lo CC libcurl_la-tftp.lo CC libcurl_la-transfer.lo CC libcurl_la-uint-bset.lo CC libcurl_la-uint-hash.lo CC libcurl_la-uint-spbset.lo CC libcurl_la-uint-table.lo CC libcurl_la-url.lo CC libcurl_la-urlapi.lo CC libcurl_la-version.lo CC libcurl_la-ws.lo CC libcurlu_la-altsvc.lo CC libcurlu_la-amigaos.lo CC libcurlu_la-asyn-ares.lo CC libcurlu_la-asyn-base.lo CC libcurlu_la-asyn-thrdd.lo CC libcurlu_la-bufq.lo CC libcurlu_la-bufref.lo CC libcurlu_la-cf-h1-proxy.lo CC libcurlu_la-cf-h2-proxy.lo CC libcurlu_la-cf-haproxy.lo CC libcurlu_la-cf-https-connect.lo CC libcurlu_la-cf-ip-happy.lo CC libcurlu_la-cf-socket.lo CC libcurlu_la-cfilters.lo CC libcurlu_la-conncache.lo CC libcurlu_la-connect.lo CC libcurlu_la-content_encoding.lo CC libcurlu_la-cookie.lo CC libcurlu_la-cshutdn.lo CC libcurlu_la-curl_addrinfo.lo CC libcurlu_la-curl_des.lo CC libcurlu_la-curl_endian.lo CC libcurlu_la-curl_fnmatch.lo CC libcurlu_la-curl_get_line.lo CC libcurlu_la-curl_gethostname.lo CC libcurlu_la-curl_gssapi.lo CC libcurlu_la-curl_memrchr.lo CC libcurlu_la-curl_ntlm_core.lo CC libcurlu_la-curl_range.lo CC libcurlu_la-curl_rtmp.lo CC libcurlu_la-curl_sasl.lo CC libcurlu_la-curl_sha512_256.lo CC libcurlu_la-curl_sspi.lo CC libcurlu_la-curl_threads.lo CC libcurlu_la-curl_trc.lo CC libcurlu_la-cw-out.lo CC libcurlu_la-cw-pause.lo CC libcurlu_la-dict.lo CC libcurlu_la-doh.lo CC libcurlu_la-dynhds.lo CC libcurlu_la-easy.lo CC libcurlu_la-easygetopt.lo CC libcurlu_la-easyoptions.lo CC libcurlu_la-escape.lo CC libcurlu_la-fake_addrinfo.lo CC libcurlu_la-file.lo CC libcurlu_la-fileinfo.lo CC libcurlu_la-fopen.lo CC libcurlu_la-formdata.lo CC libcurlu_la-ftp.lo CC libcurlu_la-ftplistparser.lo CC libcurlu_la-getenv.lo CC libcurlu_la-getinfo.lo CC libcurlu_la-gopher.lo CC libcurlu_la-hash.lo CC libcurlu_la-headers.lo CC libcurlu_la-hmac.lo CC libcurlu_la-hostip.lo CC libcurlu_la-hostip4.lo CC libcurlu_la-hostip6.lo CC libcurlu_la-hsts.lo CC libcurlu_la-http.lo CC libcurlu_la-http1.lo CC libcurlu_la-http2.lo CC libcurlu_la-http_aws_sigv4.lo CC libcurlu_la-http_chunks.lo CC libcurlu_la-http_digest.lo CC libcurlu_la-http_negotiate.lo CC libcurlu_la-http_ntlm.lo CC libcurlu_la-http_proxy.lo CC libcurlu_la-httpsrr.lo CC libcurlu_la-idn.lo CC libcurlu_la-if2ip.lo CC libcurlu_la-imap.lo CC libcurlu_la-krb5.lo CC libcurlu_la-ldap.lo CC libcurlu_la-llist.lo CC libcurlu_la-macos.lo CC libcurlu_la-md4.lo CC libcurlu_la-md5.lo CC libcurlu_la-memdebug.lo CC libcurlu_la-mime.lo CC libcurlu_la-mprintf.lo CC libcurlu_la-mqtt.lo CC libcurlu_la-multi.lo CC libcurlu_la-multi_ev.lo CC libcurlu_la-netrc.lo CC libcurlu_la-noproxy.lo CC libcurlu_la-openldap.lo CC libcurlu_la-parsedate.lo CC libcurlu_la-pingpong.lo CC libcurlu_la-pop3.lo CC libcurlu_la-progress.lo CC libcurlu_la-psl.lo CC libcurlu_la-rand.lo CC libcurlu_la-rename.lo CC libcurlu_la-request.lo CC libcurlu_la-rtsp.lo CC libcurlu_la-select.lo CC libcurlu_la-sendf.lo CC libcurlu_la-setopt.lo CC libcurlu_la-sha256.lo CC libcurlu_la-share.lo CC libcurlu_la-slist.lo CC libcurlu_la-smb.lo CC libcurlu_la-smtp.lo CC libcurlu_la-socketpair.lo CC libcurlu_la-socks.lo CC libcurlu_la-socks_gssapi.lo CC libcurlu_la-socks_sspi.lo CC libcurlu_la-speedcheck.lo CC libcurlu_la-splay.lo CC libcurlu_la-strcase.lo CC libcurlu_la-strdup.lo CC libcurlu_la-strequal.lo CC libcurlu_la-strerror.lo CC libcurlu_la-system_win32.lo CC libcurlu_la-telnet.lo CC libcurlu_la-tftp.lo CC libcurlu_la-transfer.lo CC libcurlu_la-uint-bset.lo CC libcurlu_la-uint-hash.lo CC libcurlu_la-uint-spbset.lo CC libcurlu_la-uint-table.lo CC libcurlu_la-url.lo CC libcurlu_la-urlapi.lo CC libcurlu_la-version.lo CC libcurlu_la-ws.lo CC vauth/libcurlu_la-cleartext.lo CC vauth/libcurlu_la-cram.lo CC vauth/libcurlu_la-digest.lo CC vauth/libcurlu_la-digest_sspi.lo CC vauth/libcurlu_la-gsasl.lo CC vauth/libcurlu_la-krb5_gssapi.lo CC vauth/libcurlu_la-krb5_sspi.lo CC vauth/libcurlu_la-ntlm.lo CC vauth/libcurlu_la-ntlm_sspi.lo CC vauth/libcurlu_la-oauth2.lo CC vauth/libcurlu_la-spnego_gssapi.lo CC vauth/libcurlu_la-spnego_sspi.lo CC vauth/libcurlu_la-vauth.lo CC vtls/libcurlu_la-cipher_suite.lo CC vtls/libcurlu_la-gtls.lo CC vtls/libcurlu_la-hostcheck.lo CC vtls/libcurlu_la-keylog.lo CC vtls/libcurlu_la-mbedtls.lo CC vtls/libcurlu_la-mbedtls_threadlock.lo CC vtls/libcurlu_la-openssl.lo CC vtls/libcurlu_la-rustls.lo CC vtls/libcurlu_la-schannel.lo CC vtls/libcurlu_la-schannel_verify.lo CC vtls/libcurlu_la-vtls.lo CC vtls/libcurlu_la-vtls_scache.lo CC vtls/libcurlu_la-vtls_spack.lo CC vtls/libcurlu_la-wolfssl.lo CC vtls/libcurlu_la-x509asn1.lo CC vquic/libcurlu_la-curl_ngtcp2.lo CC vquic/libcurlu_la-curl_osslq.lo CC vquic/libcurlu_la-curl_quiche.lo CC vquic/libcurlu_la-vquic.lo CC vquic/libcurlu_la-vquic-tls.lo CC vssh/libcurlu_la-libssh.lo CC vssh/libcurlu_la-libssh2.lo CC vssh/libcurlu_la-curl_path.lo CC vssh/libcurlu_la-wolfssh.lo CC curlx/libcurlu_la-base64.lo CC curlx/libcurlu_la-dynbuf.lo CC curlx/libcurlu_la-inet_ntop.lo CC curlx/libcurlu_la-inet_pton.lo CC curlx/libcurlu_la-multibyte.lo CC curlx/libcurlu_la-nonblock.lo CC curlx/libcurlu_la-strparse.lo CC curlx/libcurlu_la-timediff.lo CC curlx/libcurlu_la-timeval.lo CC curlx/libcurlu_la-version_win32.lo CC curlx/libcurlu_la-wait.lo CC curlx/libcurlu_la-warnless.lo CC curlx/libcurlu_la-winapi.lo CC vauth/libcurl_la-cleartext.lo CC vauth/libcurl_la-cram.lo CC vauth/libcurl_la-digest.lo CC vauth/libcurl_la-digest_sspi.lo CC vauth/libcurl_la-gsasl.lo CC vauth/libcurl_la-krb5_gssapi.lo CC vauth/libcurl_la-krb5_sspi.lo CC vauth/libcurl_la-ntlm.lo CC vauth/libcurl_la-ntlm_sspi.lo CC vauth/libcurl_la-oauth2.lo CC vauth/libcurl_la-spnego_gssapi.lo CC vauth/libcurl_la-spnego_sspi.lo CC vauth/libcurl_la-vauth.lo CC vtls/libcurl_la-cipher_suite.lo CC vtls/libcurl_la-gtls.lo CC vtls/libcurl_la-hostcheck.lo CC vtls/libcurl_la-keylog.lo CC vtls/libcurl_la-mbedtls.lo CC vtls/libcurl_la-mbedtls_threadlock.lo CC vtls/libcurl_la-openssl.lo CC vtls/libcurl_la-rustls.lo CC vtls/libcurl_la-schannel.lo CC vtls/libcurl_la-schannel_verify.lo CC vtls/libcurl_la-vtls.lo CC vtls/libcurl_la-vtls_scache.lo CC vtls/libcurl_la-vtls_spack.lo CC vtls/libcurl_la-wolfssl.lo CC vtls/libcurl_la-x509asn1.lo CC vquic/libcurl_la-curl_ngtcp2.lo CC vquic/libcurl_la-curl_osslq.lo CC vquic/libcurl_la-curl_quiche.lo CC vquic/libcurl_la-vquic.lo CC vquic/libcurl_la-vquic-tls.lo CC vssh/libcurl_la-libssh.lo CC vssh/libcurl_la-libssh2.lo CC vssh/libcurl_la-curl_path.lo CC vssh/libcurl_la-wolfssh.lo CC curlx/libcurl_la-base64.lo CC curlx/libcurl_la-dynbuf.lo CC curlx/libcurl_la-inet_ntop.lo CC curlx/libcurl_la-inet_pton.lo CC curlx/libcurl_la-multibyte.lo CC curlx/libcurl_la-nonblock.lo CC curlx/libcurl_la-strparse.lo CC curlx/libcurl_la-timediff.lo CC curlx/libcurl_la-timeval.lo CC curlx/libcurl_la-version_win32.lo CC curlx/libcurl_la-wait.lo CC curlx/libcurl_la-warnless.lo CC curlx/libcurl_la-winapi.lo CCLD libcurlu.la CCLD libcurl.la /usr/bin/nm: .libs/libcurl_la-amigaos.o: no symbols /usr/bin/nm: .libs/libcurl_la-asyn-ares.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_des.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_memrchr.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_rtmp.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_sspi.o: no symbols /usr/bin/nm: .libs/libcurl_la-fake_addrinfo.o: no symbols /usr/bin/nm: .libs/libcurl_la-hostip4.o: no symbols /usr/bin/nm: .libs/libcurl_la-hostip6.o: no symbols /usr/bin/nm: .libs/libcurl_la-httpsrr.o: no symbols /usr/bin/nm: .libs/libcurl_la-ldap.o: no symbols /usr/bin/nm: .libs/libcurl_la-macos.o: no symbols /usr/bin/nm: .libs/libcurl_la-memdebug.o: no symbols /usr/bin/nm: .libs/libcurl_la-openldap.o: no symbols /usr/bin/nm: .libs/libcurl_la-socks_sspi.o: no symbols /usr/bin/nm: .libs/libcurl_la-system_win32.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-digest_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-gsasl.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-krb5_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-ntlm_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-spnego_sspi.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-cipher_suite.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-gtls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-mbedtls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-mbedtls_threadlock.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-rustls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-schannel.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-schannel_verify.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-vtls_spack.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-wolfssl.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-x509asn1.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_ngtcp2.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_quiche.o: no symbols /usr/bin/nm: vssh/.libs/libcurl_la-libssh.o: no symbols /usr/bin/nm: vssh/.libs/libcurl_la-wolfssh.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-inet_ntop.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-inet_pton.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-multibyte.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-version_win32.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-winapi.o: no symbols make[1]: Leaving directory '/build/curl/src/build-curl-compat/lib' make: Leaving directory '/build/curl/src/build-curl-compat/lib' checking whether to enable maintainer-specific portions of Makefiles... no checking whether make supports nested variables... yes checking whether to enable debug build options... no checking whether to enable compiler optimizer... (assumed) yes checking whether to enable strict compiler warnings... no checking whether to enable compiler warnings as errors... no checking whether to enable curl debug memory tracking... no checking whether to enable hiding of library internal symbols... yes checking whether to enable c-ares for DNS lookups... no checking whether to disable dependency on -lrt... (assumed no) checking whether to enable HTTPSRR support... no checking whether to enable ECH support... no checking whether to enable SSL session export support... no checking for path separator... : checking for sed... /usr/bin/sed checking for grep... /usr/bin/grep checking that grep -E works... yes checking for ar... /usr/bin/ar checking for a BSD-compatible install... /usr/bin/install -c checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking how to run the C preprocessor... gcc -E checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for stdatomic.h... yes checking if _Atomic is available... yes checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for code coverage support... no checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking xargs -n works... yes checking whether UID '1000' is supported by ustar format... yes checking whether GID '1000' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking dependency style of gcc... gcc3 checking curl version... 8.16.0 checking for perl... /usr/bin/perl checking for httpd... no checking for apache2... no checking for apxs... no configure: httpd/apache2 not in PATH, http tests disabled configure: apxs not in PATH, http tests disabled checking for danted... no checking for danted... no checking for nghttpx... no checking for caddy... no checking build system type... riscv64-unknown-linux-gnu checking host system type... riscv64-unknown-linux-gnu checking for egrep -e... /usr/bin/grep -E checking if OS is AIX (to define _ALL_SOURCE)... no checking if _THREAD_SAFE is already defined... no checking if _THREAD_SAFE is actually needed... no checking if _THREAD_SAFE is onwards defined... no checking if _REENTRANT is already defined... no checking if _REENTRANT is actually needed... no checking if _REENTRANT is onwards defined... no checking for gcc option to enable large file support... none needed checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert riscv64-unknown-linux-gnu file names to riscv64-unknown-linux-gnu format... func_convert_file_noop checking how to convert riscv64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ranlib... ranlib checking for archiver @FILE support... @ checking for strip... strip checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking which variant of shared library versioning to provide... (default) aix checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether to build shared libraries with -version-info... yes checking whether to build shared libraries with -no-undefined... no checking whether to build shared libraries with -mimpure-text... no checking whether to build shared libraries with PIC... yes checking whether to build static libraries with PIC... no checking whether to build shared libraries only... no checking whether to build static libraries only... no checking for windres... no checking if cpp -P is needed... yes checking if cpp -P works... yes checking if compiler is DEC/Compaq/HP C... no checking if compiler is HP-UX C... no checking if compiler is IBM C... no checking if compiler is Intel C... no checking if compiler is clang... no checking if compiler is GNU C... yes checking compiler version... gcc '1502' (raw: '15.2.1') checking if compiler is SunPro C... no checking if compiler is Tiny C... no checking whether build target is a native Windows one... no checking if compiler accepts some basic options... yes configure: compiler options added: -Werror-implicit-function-declaration checking if compiler optimizer assumed setting might be used... no checking if compiler accepts strict warning options... yes configure: compiler options added: -Wno-system-headers checking if compiler halts on compilation errors... yes checking if compiler halts on negative sized arrays... yes checking if compiler halts on function prototype mismatch... yes checking if compiler supports hiding library internal symbols... yes checking whether build target supports Win32 crypto API... no checking whether to build libcurl and curl in "unity" mode... no checking whether to support http... yes checking whether to support ftp... yes checking whether to support file... yes checking whether to support IPFS... yes checking whether to support ldap... no checking whether to support ldaps... no checking whether to support rtsp... yes checking whether to support proxies... yes checking whether to support dict... yes checking whether to support telnet... yes checking whether to support tftp... yes checking whether to support pop3... yes checking whether to support imap... yes checking whether to support smb... yes checking whether to support smtp... yes checking whether to support gopher... yes checking whether to support mqtt... no checking whether to provide built-in manual... no checking whether to build documentation... yes checking whether to enable generation of C code... yes checking whether to use libgcc... no checking if X/Open network library is required... no checking for gethostbyname... yes checking whether build target is a native Windows one... (cached) no checking for proto/bsdsocket.h... no checking for connect in libraries... yes checking for sys/types.h... (cached) yes checking for monotonic clock_gettime... yes checking for clock_gettime in libraries... no additional lib required checking if monotonic clock_gettime works... yes checking for sys/types.h... (cached) yes checking for raw monotonic clock_gettime... yes checking for pkg-config... /usr/bin/pkg-config checking for zlib options with pkg-config... found checking for zlib.h... yes configure: found both libz and libz.h header checking for BrotliDecoderDecompress in -lbrotlidec... yes checking for brotli/decode.h... yes checking for ZSTD_createDStream in -lzstd... yes checking for zstd.h... yes checking whether to enable IPv6... yes checking if struct sockaddr_in6 has sin6_scope_id member... yes checking if argv can be written to... yes checking if GSS-API support is requested... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking for gss.h... no checking for gssapi/gssapi.h... yes checking for gssapi/gssapi_generic.h... yes checking for gssapi/gssapi_krb5.h... yes checking if GSS-API headers declare GSS_C_NT_HOSTBASED_SERVICE... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for mit-krb5-gssapi options with pkg-config... found checking if we can link against GSS-API library... yes checking whether to enable Windows native SSL/TLS... no checking whether to enable Amiga native SSL/TLS (AmiSSL v5)... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for gnutls options with pkg-config... found checking for gnutls_x509_crt_get_dn2 in -lgnutls... yes configure: detected GnuTLS version 3.8.10 checking for nettle_MD5Init in -lgnutls... no checking for nettle_MD5Init in -lnettle... yes checking for gnutls_srp_verifier in -lgnutls... yes configure: built with one SSL backend checking default CA cert bundle/path... /etc/ssl/certs/ca-certificates.crt checking whether to use OpenSSL's built-in CA store... no checking CA cert bundle path to embed in the curl tool... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for libpsl options with pkg-config... found checking for psl_builtin in -lpsl... yes checking for libpsl.h... yes checking for library containing gsasl_init... no configure: WARNING: libgsasl was not found checking for pkg-config... (cached) /usr/bin/pkg-config checking for libssh2 options with pkg-config... found checking for libssh2_free in -lssh2... yes checking for libssh2.h... yes checking for RTMP_Init in -lrtmp... no checking whether versioned symbols are wanted... no checking whether to build with libidn2... (assumed) yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libidn2 options with pkg-config... found configure: pkg-config: IDN_LIBS: "-lidn2" configure: pkg-config: IDN_LDFLAGS: "" configure: pkg-config: IDN_CPPFLAGS: "" configure: pkg-config: IDN_DIR: "" checking if idn2_lookup_ul can be linked... yes checking for idn2.h... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libnghttp2 options with pkg-config... found configure: -l is -lnghttp2 configure: -I is configure: -L is checking for nghttp2_session_get_stream_local_window_size in -lnghttp2... yes checking for nghttp2/nghttp2.h... yes configure: Added to CURL_LIBRARY_PATH checking for sys/types.h... (cached) yes checking for sys/select.h... yes checking for sys/ioctl.h... yes checking for unistd.h... (cached) yes checking for arpa/inet.h... yes checking for net/if.h... yes checking for netinet/in.h... yes checking for netinet/in6.h... no checking for sys/un.h... yes checking for linux/tcp.h... yes checking for netinet/tcp.h... yes checking for netinet/udp.h... yes checking for netdb.h... yes checking for sys/sockio.h... no checking for sys/param.h... yes checking for termios.h... yes checking for termio.h... yes checking for fcntl.h... yes checking for io.h... no checking for pwd.h... yes checking for utime.h... yes checking for sys/utime.h... no checking for sys/poll.h... yes checking for poll.h... yes checking for sys/resource.h... yes checking for libgen.h... yes checking for locale.h... yes checking for stdbool.h... yes checking for stdint.h... (cached) yes checking for sys/filio.h... no checking for sys/eventfd.h... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for sys/types.h... (cached) yes checking for struct timeval... yes checking run-time libs availability... fine checking size of size_t... 8 checking size of long... 8 checking size of int... 4 checking size of time_t... 8 checking size of off_t... 8 checking size of curl_off_t... 8 checking size of curl_socket_t... 4 checking for long long... yes checking for ssize_t... yes checking for bool... yes checking for sa_family_t... yes checking for suseconds_t... yes checking if time_t is unsigned... no checking for struct sockaddr_storage... yes checking for sys/select.h... (cached) yes checking for select... yes checking for sys/types.h... (cached) yes checking for recv... yes checking for sys/types.h... (cached) yes checking for send... yes checking for sys/types.h... (cached) yes checking for MSG_NOSIGNAL... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking if alarm can be linked... yes checking if alarm is prototyped... yes checking if alarm is compilable... yes checking if alarm usage allowed... yes checking if alarm might be used... yes checking for sys/types.h... (cached) yes checking for strings.h... (cached) yes checking for sys/types.h... (cached) yes checking for libgen.h... (cached) yes checking if basename can be linked... yes checking if basename is prototyped... yes checking if basename is compilable... yes checking if basename usage allowed... yes checking if basename might be used... yes checking if closesocket can be linked... no checking if closesocket might be used... no checking for sys/types.h... (cached) yes checking if CloseSocket can be linked... no checking if CloseSocket might be used... no checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for fcntl.h... (cached) yes checking if fcntl can be linked... yes checking if fcntl is prototyped... yes checking if fcntl is compilable... yes checking if fcntl usage allowed... yes checking if fcntl might be used... yes checking if fcntl O_NONBLOCK is compilable... yes checking if fcntl O_NONBLOCK usage allowed... yes checking if fcntl O_NONBLOCK might be used... yes checking whether build target is a native Windows one... (cached) no checking for sys/types.h... (cached) yes checking for netdb.h... (cached) yes checking if freeaddrinfo can be linked... yes checking if freeaddrinfo is prototyped... yes checking if freeaddrinfo is compilable... yes checking if freeaddrinfo usage allowed... yes checking if freeaddrinfo might be used... yes checking for sys/types.h... (cached) yes checking for sys/xattr.h... yes checking if fsetxattr can be linked... yes checking if fsetxattr is prototyped... yes checking if fsetxattr takes 5 args.... yes checking if fsetxattr is compilable... yes checking if fsetxattr usage allowed... yes checking if fsetxattr might be used... yes checking if ftruncate can be linked... yes checking if ftruncate is prototyped... yes checking if ftruncate is compilable... yes checking if ftruncate usage allowed... yes checking if ftruncate might be used... yes checking for sys/types.h... (cached) yes checking if getaddrinfo can be linked... yes checking if getaddrinfo is prototyped... yes checking if getaddrinfo is compilable... yes checking if getaddrinfo seems to work... yes checking if getaddrinfo usage allowed... yes checking if getaddrinfo might be used... yes checking if getaddrinfo is threadsafe... yes checking if gethostbyname_r can be linked... yes checking if gethostbyname_r is prototyped... yes checking if gethostbyname_r takes 3 args.... no checking if gethostbyname_r takes 5 args.... no checking if gethostbyname_r takes 6 args.... yes checking if gethostbyname_r is compilable... yes checking if gethostbyname_r usage allowed... yes checking if gethostbyname_r might be used... yes checking if gethostname can be linked... yes checking if gethostname is prototyped... yes checking if gethostname is compilable... yes checking for gethostname arg 2 data type... size_t checking if gethostname usage allowed... yes checking if gethostname might be used... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for ifaddrs.h... yes checking if getifaddrs can be linked... yes checking if getifaddrs is prototyped... yes checking if getifaddrs is compilable... yes checking if getifaddrs seems to work... yes checking if getifaddrs usage allowed... yes checking if getifaddrs might be used... yes checking if getpeername can be linked... yes checking if getpeername is prototyped... yes checking if getpeername is compilable... yes checking if getpeername usage allowed... yes checking if getpeername might be used... yes checking if getsockname can be linked... yes checking if getsockname is prototyped... yes checking if getsockname is compilable... yes checking if getsockname usage allowed... yes checking if getsockname might be used... yes checking for sys/types.h... (cached) yes checking if gmtime_r can be linked... yes checking if gmtime_r is prototyped... yes checking if gmtime_r is compilable... yes checking if gmtime_r seems to work... yes checking if gmtime_r usage allowed... yes checking if gmtime_r might be used... yes checking for sys/types.h... (cached) yes checking for unistd.h... (cached) yes checking for sys/ioctl.h... (cached) yes checking for stropts.h... no checking if ioctl can be linked... yes checking if ioctl is prototyped... yes checking if ioctl is compilable... yes checking if ioctl usage allowed... yes checking if ioctl might be used... yes checking if ioctl FIONBIO is compilable... yes checking if ioctl FIONBIO usage allowed... yes checking if ioctl FIONBIO might be used... yes checking if ioctl SIOCGIFADDR is compilable... yes checking if ioctl SIOCGIFADDR usage allowed... yes checking if ioctl SIOCGIFADDR might be used... yes checking if ioctlsocket can be linked... no checking if ioctlsocket might be used... no checking if IoctlSocket can be linked... no checking if IoctlSocket might be used... no checking if memrchr can be linked... yes checking if memrchr is prototyped... yes checking if memrchr is compilable... yes checking if memrchr usage allowed... yes checking if memrchr might be used... yes checking for sys/types.h... (cached) yes checking if sigaction can be linked... yes checking if sigaction is prototyped... yes checking if sigaction is compilable... yes checking if sigaction usage allowed... yes checking if sigaction might be used... yes checking if siginterrupt can be linked... yes checking if siginterrupt is prototyped... yes checking if siginterrupt is compilable... yes checking if siginterrupt usage allowed... yes checking if siginterrupt might be used... yes checking if signal can be linked... yes checking if signal is prototyped... yes checking if signal is compilable... yes checking if signal usage allowed... yes checking if signal might be used... yes checking for sys/types.h... (cached) yes checking if sigsetjmp can be linked... no checking if sigsetjmp seems a macro... yes checking if sigsetjmp is compilable... yes checking if sigsetjmp usage allowed... yes checking if sigsetjmp might be used... yes checking if socket can be linked... yes checking if socket is prototyped... yes checking if socket is compilable... yes checking if socket usage allowed... yes checking if socket might be used... yes checking if socketpair can be linked... yes checking if socketpair is prototyped... yes checking if socketpair is compilable... yes checking if socketpair usage allowed... yes checking if socketpair might be used... yes checking if strdup can be linked... yes checking if strdup is prototyped... yes checking if strdup is compilable... yes checking if strdup usage allowed... yes checking if strdup might be used... yes checking if strerror_r can be linked... yes checking if strerror_r is prototyped... yes checking if strerror_r is compilable... yes checking if strerror_r is glibc like... yes checking if strerror_r seems to work... yes checking if strerror_r usage allowed... yes checking if strerror_r might be used... yes checking for accept4... yes checking for eventfd... yes checking for fnmatch... yes checking for geteuid... yes checking for getpass_r... no checking for getppid... yes checking for getpwuid... yes checking for getpwuid_r... yes checking for getrlimit... yes checking for gettimeofday... yes checking for mach_absolute_time... no checking for pipe... yes checking for pipe2... yes checking for poll... yes checking for sendmmsg... yes checking for sendmsg... yes checking for setlocale... yes checking for setrlimit... yes checking for snprintf... yes checking for utime... yes checking for utimes... yes checking for if_nametoindex... yes checking for realpath... yes checking for sched_yield... yes checking for sys/types.h... (cached) yes checking for netinet/in.h... (cached) yes checking for arpa/inet.h... (cached) yes checking if inet_ntop can be linked... yes checking if inet_ntop is prototyped... yes checking if inet_ntop is compilable... yes checking if inet_ntop seems to work... yes checking if inet_ntop usage allowed... yes checking if inet_ntop might be used... yes checking if inet_pton can be linked... yes checking if inet_pton is prototyped... yes checking if inet_pton is compilable... yes checking if inet_pton seems to work... yes checking if inet_pton usage allowed... yes checking if inet_pton might be used... yes checking if strcasecmp can be linked... yes checking if strcasecmp is prototyped... yes checking if strcasecmp is compilable... yes checking if strcasecmp usage allowed... yes checking if strcasecmp might be used... yes checking if strcmpi can be linked... no checking if strcmpi might be used... no checking if stricmp can be linked... no checking if stricmp might be used... no checking for setmode... no checking for fseeko... yes checking for gcc options needed to detect all undeclared functions... none needed checking whether fseeko is declared... yes checking how to set a socket into non-blocking mode... fcntl O_NONBLOCK checking whether to enable the threaded resolver... yes checking for pthread.h... yes checking for pthread_create... yes checking for dirent.h... yes checking for opendir... yes checking convert -I options to -isystem... yes checking whether to enable verbose strings... yes checking whether to enable SSPI support (Windows native builds only)... no checking whether to enable basic authentication method... yes checking whether to enable bearer authentication method... yes checking whether to enable digest authentication method... yes checking whether to enable kerberos authentication method... yes checking whether to enable negotiate authentication method... yes checking whether to enable aws sig methods... yes checking whether to support NTLM... yes checking whether to enable TLS-SRP authentication... yes checking whether to enable Unix domain sockets... auto checking for struct sockaddr_un.sun_path... yes checking whether to support cookies... yes checking whether to support socketpair... yes checking whether to support HTTP authentication... yes checking whether to support DoH... yes checking whether to support the MIME API... yes checking whether to support binding connections locally... yes checking whether to support the form API... yes checking whether to support date parsing... yes checking whether to support netrc parsing... yes checking whether to support progress-meter... yes checking whether to support the SHA-512/256 hash algorithm... yes checking whether to support DNS shuffling... yes checking whether to support curl_easy_option*... yes checking whether to support alt-svc... yes checking whether to support headers-api... yes checking whether to support HSTS... yes checking whether to enable HTTPS-RR support... no checking whether to support WebSockets... yes checking whether hiding of library internal symbols will actually happen... yes checking if this build supports HTTPS-proxy... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating docs/Makefile config.status: creating docs/examples/Makefile config.status: creating docs/libcurl/Makefile config.status: creating docs/libcurl/opts/Makefile config.status: creating docs/cmdline-opts/Makefile config.status: creating include/Makefile config.status: creating include/curl/Makefile config.status: creating src/Makefile config.status: creating lib/Makefile config.status: creating scripts/Makefile config.status: creating lib/libcurl.vers config.status: creating tests/Makefile config.status: creating tests/config config.status: creating tests/configurehelp.pm config.status: creating tests/certs/Makefile config.status: creating tests/data/Makefile config.status: creating tests/server/Makefile config.status: creating tests/libtest/Makefile config.status: creating tests/unit/Makefile config.status: creating tests/tunit/Makefile config.status: creating tests/http/config.ini config.status: creating tests/http/Makefile config.status: creating packages/Makefile config.status: creating packages/vms/Makefile config.status: creating libcurl.pc config.status: creating curl-config config.status: creating lib/curl_config.h config.status: executing depfiles commands config.status: executing libtool commands configure: Configured to build curl/libcurl: Host setup: riscv64-unknown-linux-gnu Install prefix: /usr Compiler: gcc CFLAGS: -march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -g -ffile-prefix-map=/build/curl/src=/usr/src/debug/curl -flto=auto -Werror-implicit-function-declaration -Wno-system-headers CFLAGS extras: CPPFLAGS: -D_GNU_SOURCE -isystem /usr/include/p11-kit-1 LDFLAGS: -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -flto=auto curl-config: LIBS: -lnghttp2 -lidn2 -lssh2 -lssh2 -lpsl -lnettle -lgnutls -lgssapi_krb5 -lzstd -lbrotlidec -lz curl version: 8.16.0 SSL: enabled (GnuTLS) SSH: enabled (libssh2) zlib: enabled brotli: enabled (libbrotlidec) zstd: enabled (libzstd) GSS-API: enabled (MIT Kerberos/Heimdal) GSASL: no (libgsasl not found) TLS-SRP: enabled resolver: POSIX threaded IPv6: enabled Unix sockets: enabled IDN: enabled (libidn2) Build docs: enabled (--disable-docs) Build libcurl: Shared=yes, Static=yes Built-in manual: no (--enable-manual) --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI: no (--enable-sspi) ca cert bundle: /etc/ssl/certs/ca-certificates.crt ca cert path: no ca cert embed: no ca fallback: no LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: no (--enable-ldaps) IPFS/IPNS: enabled RTSP: enabled RTMP: no (--with-librtmp) PSL: enabled Alt-svc: enabled (--disable-alt-svc) Headers API: enabled (--disable-headers-api) HSTS: enabled (--disable-hsts) HTTP1: enabled (internal) HTTP2: enabled (nghttp2) HTTP3: no (--with-ngtcp2 --with-nghttp3, --with-quiche, --with-openssl-quic) ECH: no (--enable-ech) HTTPS RR: no (--enable-httpsrr) SSLS-EXPORT: no (--enable-ssls-export) Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd make: Entering directory '/build/curl/src/build-curl-gnutls/lib' make all-am make[1]: Entering directory '/build/curl/src/build-curl-gnutls/lib' CC libcurl_la-altsvc.lo CC libcurl_la-amigaos.lo CC libcurl_la-asyn-ares.lo CC libcurl_la-asyn-base.lo CC libcurl_la-asyn-thrdd.lo CC libcurl_la-bufq.lo CC libcurl_la-bufref.lo CC libcurl_la-cf-h1-proxy.lo CC libcurl_la-cf-h2-proxy.lo CC libcurl_la-cf-haproxy.lo CC libcurl_la-cf-https-connect.lo CC libcurl_la-cf-ip-happy.lo CC libcurl_la-cf-socket.lo CC libcurl_la-cfilters.lo CC libcurl_la-conncache.lo CC libcurl_la-connect.lo CC libcurl_la-content_encoding.lo CC libcurl_la-cookie.lo CC libcurl_la-cshutdn.lo CC libcurl_la-curl_addrinfo.lo CC libcurl_la-curl_des.lo CC libcurl_la-curl_endian.lo CC libcurl_la-curl_fnmatch.lo CC libcurl_la-curl_get_line.lo CC libcurl_la-curl_gethostname.lo CC libcurl_la-curl_gssapi.lo CC libcurl_la-curl_memrchr.lo CC libcurl_la-curl_ntlm_core.lo CC libcurl_la-curl_range.lo CC libcurl_la-curl_rtmp.lo CC libcurl_la-curl_sasl.lo CC libcurl_la-curl_sha512_256.lo CC libcurl_la-curl_sspi.lo CC libcurl_la-curl_threads.lo CC libcurl_la-curl_trc.lo CC libcurl_la-cw-out.lo CC libcurl_la-cw-pause.lo CC libcurl_la-dict.lo CC libcurl_la-doh.lo CC libcurl_la-dynhds.lo CC libcurl_la-easy.lo CC libcurl_la-easygetopt.lo CC libcurl_la-easyoptions.lo CC libcurl_la-escape.lo CC libcurl_la-fake_addrinfo.lo CC libcurl_la-file.lo CC libcurl_la-fileinfo.lo CC libcurl_la-fopen.lo CC libcurl_la-formdata.lo CC libcurl_la-ftp.lo CC libcurl_la-ftplistparser.lo CC libcurl_la-getenv.lo CC libcurl_la-getinfo.lo CC libcurl_la-gopher.lo CC libcurl_la-hash.lo CC libcurl_la-headers.lo CC libcurl_la-hmac.lo CC libcurl_la-hostip.lo CC libcurl_la-hostip4.lo CC libcurl_la-hostip6.lo CC libcurl_la-hsts.lo CC libcurl_la-http.lo CC libcurl_la-http1.lo CC libcurl_la-http2.lo CC libcurl_la-http_aws_sigv4.lo CC libcurl_la-http_chunks.lo CC libcurl_la-http_digest.lo CC libcurl_la-http_negotiate.lo CC libcurl_la-http_ntlm.lo CC libcurl_la-http_proxy.lo CC libcurl_la-httpsrr.lo CC libcurl_la-idn.lo CC libcurl_la-if2ip.lo CC libcurl_la-imap.lo CC libcurl_la-krb5.lo CC libcurl_la-ldap.lo CC libcurl_la-llist.lo CC libcurl_la-macos.lo CC libcurl_la-md4.lo CC libcurl_la-md5.lo CC libcurl_la-memdebug.lo CC libcurl_la-mime.lo CC libcurl_la-mprintf.lo CC libcurl_la-mqtt.lo CC libcurl_la-multi.lo CC libcurl_la-multi_ev.lo CC libcurl_la-netrc.lo CC libcurl_la-noproxy.lo CC libcurl_la-openldap.lo CC libcurl_la-parsedate.lo CC libcurl_la-pingpong.lo CC libcurl_la-pop3.lo CC libcurl_la-progress.lo CC libcurl_la-psl.lo CC libcurl_la-rand.lo CC libcurl_la-rename.lo CC libcurl_la-request.lo CC libcurl_la-rtsp.lo CC libcurl_la-select.lo CC libcurl_la-sendf.lo CC libcurl_la-setopt.lo CC libcurl_la-sha256.lo CC libcurl_la-share.lo CC libcurl_la-slist.lo CC libcurl_la-smb.lo CC libcurl_la-smtp.lo CC libcurl_la-socketpair.lo CC libcurl_la-socks.lo CC libcurl_la-socks_gssapi.lo CC libcurl_la-socks_sspi.lo CC libcurl_la-speedcheck.lo CC libcurl_la-splay.lo CC libcurl_la-strcase.lo CC libcurl_la-strdup.lo CC libcurl_la-strequal.lo CC libcurl_la-strerror.lo CC libcurl_la-system_win32.lo CC libcurl_la-telnet.lo CC libcurl_la-tftp.lo CC libcurl_la-transfer.lo CC libcurl_la-uint-bset.lo CC libcurl_la-uint-hash.lo CC libcurl_la-uint-spbset.lo CC libcurl_la-uint-table.lo CC libcurl_la-url.lo CC libcurl_la-urlapi.lo CC libcurl_la-version.lo CC libcurl_la-ws.lo CC libcurlu_la-altsvc.lo CC libcurlu_la-amigaos.lo CC libcurlu_la-asyn-ares.lo CC libcurlu_la-asyn-base.lo CC libcurlu_la-asyn-thrdd.lo CC libcurlu_la-bufq.lo CC libcurlu_la-bufref.lo CC libcurlu_la-cf-h1-proxy.lo CC libcurlu_la-cf-h2-proxy.lo CC libcurlu_la-cf-haproxy.lo CC libcurlu_la-cf-https-connect.lo CC libcurlu_la-cf-ip-happy.lo CC libcurlu_la-cf-socket.lo CC libcurlu_la-cfilters.lo CC libcurlu_la-conncache.lo CC libcurlu_la-connect.lo CC libcurlu_la-content_encoding.lo CC libcurlu_la-cookie.lo CC libcurlu_la-cshutdn.lo CC libcurlu_la-curl_addrinfo.lo CC libcurlu_la-curl_des.lo CC libcurlu_la-curl_endian.lo CC libcurlu_la-curl_fnmatch.lo CC libcurlu_la-curl_get_line.lo CC libcurlu_la-curl_gethostname.lo CC libcurlu_la-curl_gssapi.lo CC libcurlu_la-curl_memrchr.lo CC libcurlu_la-curl_ntlm_core.lo CC libcurlu_la-curl_range.lo CC libcurlu_la-curl_rtmp.lo CC libcurlu_la-curl_sasl.lo CC libcurlu_la-curl_sha512_256.lo CC libcurlu_la-curl_sspi.lo CC libcurlu_la-curl_threads.lo CC libcurlu_la-curl_trc.lo CC libcurlu_la-cw-out.lo CC libcurlu_la-cw-pause.lo CC libcurlu_la-dict.lo CC libcurlu_la-doh.lo CC libcurlu_la-dynhds.lo CC libcurlu_la-easy.lo CC libcurlu_la-easygetopt.lo CC libcurlu_la-easyoptions.lo CC libcurlu_la-escape.lo CC libcurlu_la-fake_addrinfo.lo CC libcurlu_la-file.lo CC libcurlu_la-fileinfo.lo CC libcurlu_la-fopen.lo CC libcurlu_la-formdata.lo CC libcurlu_la-ftp.lo CC libcurlu_la-ftplistparser.lo CC libcurlu_la-getenv.lo CC libcurlu_la-getinfo.lo CC libcurlu_la-gopher.lo CC libcurlu_la-hash.lo CC libcurlu_la-headers.lo CC libcurlu_la-hmac.lo CC libcurlu_la-hostip.lo CC libcurlu_la-hostip4.lo CC libcurlu_la-hostip6.lo CC libcurlu_la-hsts.lo CC libcurlu_la-http.lo CC libcurlu_la-http1.lo CC libcurlu_la-http2.lo CC libcurlu_la-http_aws_sigv4.lo CC libcurlu_la-http_chunks.lo CC libcurlu_la-http_digest.lo CC libcurlu_la-http_negotiate.lo CC libcurlu_la-http_ntlm.lo CC libcurlu_la-http_proxy.lo CC libcurlu_la-httpsrr.lo CC libcurlu_la-idn.lo CC libcurlu_la-if2ip.lo CC libcurlu_la-imap.lo CC libcurlu_la-krb5.lo CC libcurlu_la-ldap.lo CC libcurlu_la-llist.lo CC libcurlu_la-macos.lo CC libcurlu_la-md4.lo CC libcurlu_la-md5.lo CC libcurlu_la-memdebug.lo CC libcurlu_la-mime.lo CC libcurlu_la-mprintf.lo CC libcurlu_la-mqtt.lo CC libcurlu_la-multi.lo CC libcurlu_la-multi_ev.lo CC libcurlu_la-netrc.lo CC libcurlu_la-noproxy.lo CC libcurlu_la-openldap.lo CC libcurlu_la-parsedate.lo CC libcurlu_la-pingpong.lo CC libcurlu_la-pop3.lo CC libcurlu_la-progress.lo CC libcurlu_la-psl.lo CC libcurlu_la-rand.lo CC libcurlu_la-rename.lo CC libcurlu_la-request.lo CC libcurlu_la-rtsp.lo CC libcurlu_la-select.lo CC libcurlu_la-sendf.lo CC libcurlu_la-setopt.lo CC libcurlu_la-sha256.lo CC libcurlu_la-share.lo CC libcurlu_la-slist.lo CC libcurlu_la-smb.lo CC libcurlu_la-smtp.lo CC libcurlu_la-socketpair.lo CC libcurlu_la-socks.lo CC libcurlu_la-socks_gssapi.lo CC libcurlu_la-socks_sspi.lo CC libcurlu_la-speedcheck.lo CC libcurlu_la-splay.lo CC libcurlu_la-strcase.lo CC libcurlu_la-strdup.lo CC libcurlu_la-strequal.lo CC libcurlu_la-strerror.lo CC libcurlu_la-system_win32.lo CC libcurlu_la-telnet.lo CC libcurlu_la-tftp.lo CC libcurlu_la-transfer.lo CC libcurlu_la-uint-bset.lo CC libcurlu_la-uint-hash.lo CC libcurlu_la-uint-spbset.lo CC libcurlu_la-uint-table.lo CC libcurlu_la-url.lo CC libcurlu_la-urlapi.lo CC libcurlu_la-version.lo CC libcurlu_la-ws.lo CC vauth/libcurlu_la-cleartext.lo CC vauth/libcurlu_la-cram.lo CC vauth/libcurlu_la-digest.lo CC vauth/libcurlu_la-digest_sspi.lo CC vauth/libcurlu_la-gsasl.lo CC vauth/libcurlu_la-krb5_gssapi.lo CC vauth/libcurlu_la-krb5_sspi.lo CC vauth/libcurlu_la-ntlm.lo CC vauth/libcurlu_la-ntlm_sspi.lo CC vauth/libcurlu_la-oauth2.lo CC vauth/libcurlu_la-spnego_gssapi.lo CC vauth/libcurlu_la-spnego_sspi.lo CC vauth/libcurlu_la-vauth.lo CC vtls/libcurlu_la-cipher_suite.lo CC vtls/libcurlu_la-gtls.lo CC vtls/libcurlu_la-hostcheck.lo CC vtls/libcurlu_la-keylog.lo CC vtls/libcurlu_la-mbedtls.lo CC vtls/libcurlu_la-mbedtls_threadlock.lo CC vtls/libcurlu_la-openssl.lo CC vtls/libcurlu_la-rustls.lo CC vtls/libcurlu_la-schannel.lo CC vtls/libcurlu_la-schannel_verify.lo CC vtls/libcurlu_la-vtls.lo CC vtls/libcurlu_la-vtls_scache.lo CC vtls/libcurlu_la-vtls_spack.lo CC vtls/libcurlu_la-wolfssl.lo CC vtls/libcurlu_la-x509asn1.lo CC vquic/libcurlu_la-curl_ngtcp2.lo CC vquic/libcurlu_la-curl_osslq.lo CC vquic/libcurlu_la-curl_quiche.lo CC vquic/libcurlu_la-vquic.lo CC vquic/libcurlu_la-vquic-tls.lo CC vssh/libcurlu_la-libssh.lo CC vssh/libcurlu_la-libssh2.lo CC vssh/libcurlu_la-curl_path.lo CC vssh/libcurlu_la-wolfssh.lo CC curlx/libcurlu_la-base64.lo CC curlx/libcurlu_la-dynbuf.lo CC curlx/libcurlu_la-inet_ntop.lo CC curlx/libcurlu_la-inet_pton.lo CC curlx/libcurlu_la-multibyte.lo CC curlx/libcurlu_la-nonblock.lo CC curlx/libcurlu_la-strparse.lo CC curlx/libcurlu_la-timediff.lo CC curlx/libcurlu_la-timeval.lo CC curlx/libcurlu_la-version_win32.lo CC curlx/libcurlu_la-wait.lo CC curlx/libcurlu_la-warnless.lo CC curlx/libcurlu_la-winapi.lo CC vauth/libcurl_la-cleartext.lo CC vauth/libcurl_la-cram.lo CC vauth/libcurl_la-digest.lo CC vauth/libcurl_la-digest_sspi.lo CC vauth/libcurl_la-gsasl.lo CC vauth/libcurl_la-krb5_gssapi.lo CC vauth/libcurl_la-krb5_sspi.lo CC vauth/libcurl_la-ntlm.lo CC vauth/libcurl_la-ntlm_sspi.lo CC vauth/libcurl_la-oauth2.lo CC vauth/libcurl_la-spnego_gssapi.lo CC vauth/libcurl_la-spnego_sspi.lo CC vauth/libcurl_la-vauth.lo CC vtls/libcurl_la-cipher_suite.lo CC vtls/libcurl_la-gtls.lo CC vtls/libcurl_la-hostcheck.lo CC vtls/libcurl_la-keylog.lo CC vtls/libcurl_la-mbedtls.lo CC vtls/libcurl_la-mbedtls_threadlock.lo CC vtls/libcurl_la-openssl.lo CC vtls/libcurl_la-rustls.lo CC vtls/libcurl_la-schannel.lo CC vtls/libcurl_la-schannel_verify.lo CC vtls/libcurl_la-vtls.lo CC vtls/libcurl_la-vtls_scache.lo CC vtls/libcurl_la-vtls_spack.lo CC vtls/libcurl_la-wolfssl.lo CC vtls/libcurl_la-x509asn1.lo CC vquic/libcurl_la-curl_ngtcp2.lo CC vquic/libcurl_la-curl_osslq.lo CC vquic/libcurl_la-curl_quiche.lo CC vquic/libcurl_la-vquic.lo CC vquic/libcurl_la-vquic-tls.lo CC vssh/libcurl_la-libssh.lo CC vssh/libcurl_la-libssh2.lo CC vssh/libcurl_la-curl_path.lo CC vssh/libcurl_la-wolfssh.lo CC curlx/libcurl_la-base64.lo CC curlx/libcurl_la-dynbuf.lo CC curlx/libcurl_la-inet_ntop.lo CC curlx/libcurl_la-inet_pton.lo CC curlx/libcurl_la-multibyte.lo CC curlx/libcurl_la-nonblock.lo CC curlx/libcurl_la-strparse.lo CC curlx/libcurl_la-timediff.lo CC curlx/libcurl_la-timeval.lo CC curlx/libcurl_la-version_win32.lo CC curlx/libcurl_la-wait.lo CC curlx/libcurl_la-warnless.lo CC curlx/libcurl_la-winapi.lo CCLD libcurlu.la CCLD libcurl.la /usr/bin/nm: .libs/libcurl_la-amigaos.o: no symbols /usr/bin/nm: .libs/libcurl_la-asyn-ares.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_memrchr.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_rtmp.o: no symbols /usr/bin/nm: .libs/libcurl_la-curl_sspi.o: no symbols /usr/bin/nm: .libs/libcurl_la-fake_addrinfo.o: no symbols /usr/bin/nm: .libs/libcurl_la-hostip4.o: no symbols /usr/bin/nm: .libs/libcurl_la-hostip6.o: no symbols /usr/bin/nm: .libs/libcurl_la-httpsrr.o: no symbols /usr/bin/nm: .libs/libcurl_la-ldap.o: no symbols /usr/bin/nm: .libs/libcurl_la-macos.o: no symbols /usr/bin/nm: .libs/libcurl_la-memdebug.o: no symbols /usr/bin/nm: .libs/libcurl_la-openldap.o: no symbols /usr/bin/nm: .libs/libcurl_la-socks_sspi.o: no symbols /usr/bin/nm: .libs/libcurl_la-system_win32.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-digest_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-gsasl.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-krb5_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-ntlm_sspi.o: no symbols /usr/bin/nm: vauth/.libs/libcurl_la-spnego_sspi.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-cipher_suite.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-hostcheck.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-mbedtls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-mbedtls_threadlock.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-openssl.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-rustls.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-schannel.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-schannel_verify.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-vtls_spack.o: no symbols /usr/bin/nm: vtls/.libs/libcurl_la-wolfssl.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_ngtcp2.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_osslq.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-curl_quiche.o: no symbols /usr/bin/nm: vquic/.libs/libcurl_la-vquic-tls.o: no symbols /usr/bin/nm: vssh/.libs/libcurl_la-libssh.o: no symbols /usr/bin/nm: vssh/.libs/libcurl_la-wolfssh.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-inet_ntop.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-inet_pton.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-multibyte.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-version_win32.o: no symbols /usr/bin/nm: curlx/.libs/libcurl_la-winapi.o: no symbols make[1]: Leaving directory '/build/curl/src/build-curl-gnutls/lib' make: Leaving directory '/build/curl/src/build-curl-gnutls/lib' ==> Starting check()... make[1]: Entering directory '/build/curl/src/build-curl/tests' Making all in certs make[2]: Entering directory '/build/curl/src/build-curl/tests/certs' /usr/bin/perl /build/curl/src/curl/tests/certs/genserv.pl test test-localhost.prm test-localhost.nn.prm test-localhost0h.prm test-localhost-san-first.prm test-localhost-san-last.prm test-client-cert.prm test-client-eku-only.prm /usr/bin/openssl OpenSSL 3.5.2 5 Aug 2025 (Library: OpenSSL 3.5.2 5 Aug 2025) Certificate request self-signature ok subject=C=NN, O=Edel Curl Arctic Illudium Research Cloud, CN=Northern Nowhere Trust Anchor CA root generated: test 6000 days prime256v1 Certificate generated: CA=test 300days prime256v1 test-localhost Certificate generated: CA=test 300days prime256v1 test-localhost.nn Certificate generated: CA=test 300days prime256v1 test-localhost0h Certificate generated: CA=test 300days prime256v1 test-localhost-san-first Certificate generated: CA=test 300days prime256v1 test-localhost-san-last Certificate generated: CA=test 300days prime256v1 test-client-cert Certificate generated: CA=test 300days prime256v1 test-client-eku-only make[2]: Leaving directory '/build/curl/src/build-curl/tests/certs' Making all in data make[2]: Entering directory '/build/curl/src/build-curl/tests/data' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/curl/src/build-curl/tests/data' Making all in server make[2]: Entering directory '/build/curl/src/build-curl/tests/server' /usr/bin/perl /build/curl/src/curl/scripts/mk-unity.pl --include memptr.c getpart.c util.c ../../lib/curlx/base64.c ../../lib/curlx/inet_pton.c ../../lib/curlx/inet_ntop.c ../../lib/curlx/multibyte.c ../../lib/curlx/nonblock.c ../../lib/curlx/strparse.c ../../lib/curlx/timediff.c ../../lib/curlx/timeval.c ../../lib/curlx/version_win32.c ../../lib/curlx/wait.c ../../lib/curlx/warnless.c ../../lib/curlx/winapi.c --test dnsd.c mqttd.c resolve.c rtspd.c sockfilt.c socksd.c sws.c tftpd.c > servers.c RUN checksrc CC servers.o CCLD servers make[2]: Leaving directory '/build/curl/src/build-curl/tests/server' Making all in libtest make[2]: Entering directory '/build/curl/src/build-curl/tests/libtest' /usr/bin/perl /build/curl/src/curl/tests/libtest/mk-lib1521.pl < /build/curl/src/curl/include/curl/curl.h lib1521.c /usr/bin/perl /build/curl/src/curl/scripts/mk-unity.pl --include memptr.c testutil.c testtrace.c ../../lib/curlx/warnless.c ../../lib/curlx/multibyte.c ../../lib/curlx/timediff.c ../../lib/curlx/timeval.c ../../lib/curl_threads.c ../../lib/curlx/version_win32.c ../../lib/curlx/wait.c --test cli_h2_pausing.c cli_h2_serverpush.c cli_h2_upgrade_extreme.c cli_hx_download.c cli_hx_upload.c cli_tls_session_reuse.c cli_upload_pausing.c cli_ws_data.c cli_ws_pingpong.c lib500.c lib501.c lib502.c lib503.c lib504.c lib505.c lib506.c lib507.c lib508.c lib509.c lib510.c lib511.c lib512.c lib513.c lib514.c lib515.c lib516.c lib517.c lib518.c lib519.c lib520.c lib521.c lib523.c lib524.c lib525.c lib526.c lib530.c lib533.c lib536.c lib537.c lib539.c lib540.c lib541.c lib542.c lib543.c lib544.c lib547.c lib549.c lib552.c lib553.c lib554.c lib555.c lib556.c lib557.c lib558.c lib559.c lib560.c lib562.c lib564.c lib566.c lib567.c lib568.c lib569.c lib570.c lib571.c lib572.c lib573.c lib574.c lib575.c lib576.c lib578.c lib579.c lib582.c lib583.c lib586.c lib589.c lib590.c lib591.c lib597.c lib598.c lib599.c lib643.c lib650.c lib651.c lib652.c lib653.c lib654.c lib655.c lib658.c lib659.c lib661.c lib666.c lib667.c lib668.c lib670.c lib674.c lib676.c lib677.c lib678.c lib694.c lib695.c lib751.c lib753.c lib758.c lib757.c lib1156.c lib1301.c lib1308.c lib1485.c lib1500.c lib1501.c lib1502.c lib1506.c lib1507.c lib1508.c lib1509.c lib1510.c lib1511.c lib1512.c lib1513.c lib1514.c lib1515.c lib1517.c lib1518.c lib1520.c lib1522.c lib1523.c lib1525.c lib1526.c lib1527.c lib1528.c lib1529.c lib1530.c lib1531.c lib1532.c lib1533.c lib1534.c lib1535.c lib1536.c lib1537.c lib1538.c lib1540.c lib1541.c lib1542.c lib1545.c lib1549.c lib1550.c lib1551.c lib1552.c lib1553.c lib1554.c lib1555.c lib1556.c lib1557.c lib1558.c lib1559.c lib1560.c lib1564.c lib1565.c lib1567.c lib1568.c lib1569.c lib1571.c lib1576.c lib1591.c lib1592.c lib1593.c lib1594.c lib1597.c lib1598.c lib1599.c lib1662.c lib1900.c lib1901.c lib1903.c lib1905.c lib1906.c lib1907.c lib1908.c lib1910.c lib1911.c lib1912.c lib1913.c lib1915.c lib1916.c lib1918.c lib1919.c lib1933.c lib1934.c lib1935.c lib1936.c lib1937.c lib1938.c lib1939.c lib1940.c lib1945.c lib1947.c lib1948.c lib1955.c lib1956.c lib1957.c lib1958.c lib1959.c lib1960.c lib1964.c lib1970.c lib1971.c lib1972.c lib1973.c lib1974.c lib1975.c lib1977.c lib1978.c lib2023.c lib2032.c lib2082.c lib2301.c lib2302.c lib2304.c lib2306.c lib2308.c lib2309.c lib2402.c lib2404.c lib2405.c lib2502.c lib2700.c lib3010.c lib3025.c lib3026.c lib3027.c lib3033.c lib3034.c lib3100.c lib3101.c lib3102.c lib3103.c lib3104.c lib3105.c lib3207.c lib3208.c lib1521.c > libtests.c RUN checksrc CC libtests.o CCLD libtests make[2]: Leaving directory '/build/curl/src/build-curl/tests/libtest' Making all in http make[2]: Entering directory '/build/curl/src/build-curl/tests/http' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/curl/src/build-curl/tests/http' Making all in unit make[2]: Entering directory '/build/curl/src/build-curl/tests/unit' (cd ../../lib && make unitprotos.h) RUN checksrc make[3]: Entering directory '/build/curl/src/build-curl/lib' UNITPR unitprotos.h make[3]: Leaving directory '/build/curl/src/build-curl/lib' /usr/bin/perl /build/curl/src/curl/scripts/mk-unity.pl --test unit1300.c unit1302.c unit1303.c unit1304.c unit1305.c unit1307.c unit1309.c unit1323.c unit1330.c unit1395.c unit1396.c unit1397.c unit1398.c unit1399.c unit1600.c unit1601.c unit1602.c unit1603.c unit1605.c unit1606.c unit1607.c unit1608.c unit1609.c unit1610.c unit1611.c unit1612.c unit1614.c unit1615.c unit1616.c unit1620.c unit1650.c unit1651.c unit1652.c unit1653.c unit1654.c unit1655.c unit1656.c unit1657.c unit1658.c unit1660.c unit1661.c unit1663.c unit1664.c unit1979.c unit1980.c unit2600.c unit2601.c unit2602.c unit2603.c unit2604.c unit3200.c unit3205.c unit3211.c unit3212.c unit3213.c unit3214.c > units.c CC units.o CCLD units make[2]: Leaving directory '/build/curl/src/build-curl/tests/unit' Making all in tunit make[2]: Entering directory '/build/curl/src/build-curl/tests/tunit' /usr/bin/perl /build/curl/src/curl/scripts/mk-unity.pl --test tool1394.c tool1604.c tool1621.c > tunits.c RUN checksrc CC tunits.o CCLD tunits make[2]: Leaving directory '/build/curl/src/build-curl/tests/tunit' make[2]: Entering directory '/build/curl/src/build-curl/tests' (cd certs && make) make[3]: Entering directory '/build/curl/src/build-curl/tests/certs' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/curl/src/build-curl/tests/certs' make[2]: Leaving directory '/build/curl/src/build-curl/tests' srcdir=/build/curl/src/curl/tests /usr/bin/perl -I/build/curl/src/curl/tests /build/curl/src/curl/tests/runtests.pl -a -p ~flaky ~timing-dependent -v -a -k -p -j8 !433 Using curl: ../src/curl CMD (256): valgrind >/dev/null 2>&1 CMD (0): valgrind --help 2>&1 | grep -- --tool >/dev/null 2>&1 CMD (0): ../src/curl --version 1>log/curlverout.log 2>log/curlvererr.log ********* System characteristics ******** * curl 8.16.0 (riscv64-unknown-linux-gnu) * libcurl/8.16.0 OpenSSL/3.5.2 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.67.0 nghttp3/1.11.0 * Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss * Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd * Disabled: win32-ca-searchpath, win32-ca-search-safe, override-dns * Host: * System: Linux arch-nspawn-2469186 6.6.63 #2.1.0.2 SMP PREEMPT Fri Jan 24 03:39:48 UTC 2025 riscv64 GNU/Linux * OS: linux * Perl: v5.42.0 (/usr/bin/perl) * Args: -a -p ~flaky ~timing-dependent -v -a -k -p -j8 !433 * Jobs: 8 * Env: Valgrind * Seed: 237250 * Servers: HTTP-IPv6 HTTP-unix FTP-IPv6 ***************************************** DISABLED: test 323 DISABLED: test 594 DISABLED: test 836 DISABLED: test 882 DISABLED: test 938 DISABLED: test 1182 DISABLED: test 1184 DISABLED: test 1209 DISABLED: test 1211 DISABLED: test 1307 DISABLED: test 1316 DISABLED: test 1512 DISABLED: test 1801 DISABLED: test 2043 test 0096 SKIPPED: curl lacks TrackMemory support test 0159 SKIPPED: curl lacks Debug support test 0356 SKIPPED: curl lacks Debug support test 0358 SKIPPED: curl lacks Debug support test 0375 SKIPPED: curl has proxy support test 0445 SKIPPED: curl lacks ldap support test 0506 SKIPPED: curl has threaded-resolver support test 0558 SKIPPED: curl lacks TrackMemory support Warning: test573 result is ignored due to flaky Warning: test587 result is ignored due to flaky test 0959 SKIPPED: curl has IDN support test 0960 SKIPPED: curl has IDN support test 0961 SKIPPED: curl has IDN support test 1026 SKIPPED: curl lacks manual support Warning: test1086 result is ignored due to flaky Warning: test1086 result is ignored due to timing-dependent Warning: test1112 result is ignored due to timing-dependent Warning: test1113 result is ignored due to flaky Warning: test1162 result is ignored due to flaky Warning: test1163 result is ignored due to flaky test 1179 SKIPPED: curl lacks manual support Warning: test1208 result is ignored due to flaky Warning: test1208 result is ignored due to timing-dependent test 1330 SKIPPED: curl lacks TrackMemory support test 1454 SKIPPED: curl has IPv6 support test 1461 SKIPPED: curl lacks manual support Warning: test1510 result is ignored due to flaky test 1560 SKIPPED: curl lacks ldap support Warning: test1592 result is ignored due to flaky Warning: test1592 result is ignored due to timing-dependent Warning: test1631 result is ignored due to flaky Warning: test1632 result is ignored due to flaky test 1703 SKIPPED: curl lacks Unicode support Warning: test2032 result is ignored due to flaky Warning: test2032 result is ignored due to timing-dependent test 2033 SKIPPED: curl lacks Schannel support test 2070 SKIPPED: curl lacks Schannel support test 2079 SKIPPED: curl lacks Schannel support test 2102 SKIPPED: curl lacks override-dns support test 2103 SKIPPED: curl lacks override-dns support test 2104 SKIPPED: curl lacks override-dns support test 2500 SKIPPED: curl lacks nghttpx-h3 support test 2503 SKIPPED: curl lacks nghttpx-h3 support test 4000 SKIPPED: curl lacks ECH support test 4001 SKIPPED: curl lacks ECH support Runner 73515 starting Runner 73514 starting Runner 73513 starting Runner 73512 starting Runner 73511 starting Runner 73510 starting Runner 73509 starting Runner 73508 starting CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1 ../src/curl -q --output log/8/curl1.out --include --trace-ascii log/8/trace1 --trace-time http://127.0.0.1:36007/1 > log/8/stdout1 2> log/8/stderr1 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind7 ../src/curl -q --output log/2/curl7.out --include --trace-ascii log/2/trace7 --trace-time http://127.0.0.1:43789/we/want/7 -b none -D log/2/heads7.txt > log/2/stdout7 2> log/2/stderr7 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2 ../src/curl -q --output log/7/curl2.out --include --trace-ascii log/7/trace2 --trace-time -u fake:user http://127.0.0.1:40129/2 > log/7/stdout2 2> log/7/stderr2 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/8/server/http_server.pid" --logfile "log/8/http_server.log" --logdir "log/8" --portfile log/8/server/http_server.port --config log/8/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73516 port 36007 * pid http => 73516 73516 test 0001...[HTTP GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1 ../src/curl -q --output log/8/curl1.out --include --trace-ascii log/8/trace1 --trace-time http://127.0.0.1:36007/1 > log/8/stdout1 2> log/8/stderr1 1: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1 ../src/curl -q --output log/8/curl1.out --include --trace-ascii log/8/trace1 --trace-time http://127.0.0.1:36007/1 > log/8/stdout1 2> log/8/stderr1 === End of file commands.log === Start of file http_server.log 10:30:38.572406 Running HTTP IPv4 version on port 36007 10:30:38.573327 Wrote pid 73516 to log/8/server/http_server.pid 10:30:38.573542 Wrote port 36007 to log/8/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 1 === End of file server.cmd === Start of file valgrind1 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/2/server/http_server.pid" --logfile "log/2/http_server.log" --logdir "log/2" --portfile log/2/server/http_server.port --config log/2/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73522 port 43789 * pid http => 73522 73522 test 0007...[HTTP with cookie parser and header recording] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind7 ../src/curl -q --output log/2/curl7.out --include --trace-ascii log/2/trace7 --trace-time http://127.0.0.1:43789/we/want/7 -b none -D log/2/heads7.txt > log/2/stdout7 2> log/2/stderr7 7: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 7 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind7 ../src/curl -q --output log/2/curl7.out --include --trace-ascii log/2/trace7 --trace-time http://127.0.0.1:43789/we/want/7 -b none -D log/2/heads7.txt > log/2/stdout7 2> log/2/stderr7 === End of file commands.log === Start of file http_server.log 10:30:39.186601 Running HTTP IPv4 version on port 43789 10:30:39.187311 Wrote pid 73522 to log/2/server/http_server.pid 10:30:39.187609 Wrote port 43789 to log/2/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 7 === End of file server.cmd === Start of file valgrind7 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind7 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/7/server/http_server.pid" --logfile "log/7/http_server.log" --logdir "log/7" --portfile log/7/server/http_server.port --config log/7/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73517 port 40129 * pid http => 73517 73517 test 0002...[HTTP GET with user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2 ../src/curl -q --output log/7/curl2.out --include --trace-ascii log/7/trace2 --trace-time -u fake:user http://127.0.0.1:40129/2 > log/7/stdout2 2> log/7/stderr2 2: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 2 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2 ../src/curl -q --output log/7/curl2.out --include --trace-ascii log/7/trace2 --trace-time -u fake:user http://127.0.0.1:40129/2 > log/7/stdout2 2> log/7/stderr2 === End of file commands.log === Start of file http_server.log 10:30:38.658402 Running HTTP IPv4 version on port 40129 10:30:38.659109 Wrote pid 73517 to log/7/server/http_server.pid 10:30:38.659370 Wrote port 40129 to log/7/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 2 === End of file server.cmd === Start of file valgrind2 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind8 ../src/curl -q --output log/1/curl8.out --include --trace-ascii log/1/trace8 --trace-time http://127.0.0.1:36129/we/want/8 -b log/1/heads8.txt > log/1/stdout8 2> log/1/stderr8 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3 ../src/curl -q --output log/6/curl3.out --include --trace-ascii log/6/trace3 --trace-time -d "fooo=mooo&pooo=clue&doo=%20%20%20++++" -u "fake:-user" http://127.0.0.1:45505/3 > log/6/stdout3 2> log/6/stderr3 f the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/1/server/http_server.pid" --logfile "log/1/http_server.log" --logdir "log/1" --portfile log/1/server/http_server.port --config log/1/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73523 port 36129 * pid http => 73523 73523 prechecked /usr/bin/perl -e 'if("127.0.0.1" !~ /\.0\.0\.1$/) {print "Test only works for HOSTIPs ending with .0.0.1"; exit(1)}' test 0008...[HTTP with cookie parsing from header file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind8 ../src/curl -q --output log/1/curl8.out --include --trace-ascii log/1/trace8 --trace-time http://127.0.0.1:36129/we/want/8 -b log/1/heads8.txt > log/1/stdout8 2> log/1/stderr8 8: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 8 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind8 ../src/curl -q --output log/1/curl8.out --include --trace-ascii log/1/trace8 --trace-time http://127.0.0.1:36129/we/want/8 -b log/1/heads8.txt > log/1/stdout8 2> log/1/stderr8 === End of file commands.log === Start of file heads8.txt HTTP/1.1 200 OK Date: Tue, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Content-Type: text/html Funny-head: yesyes Set-Cookie: foobar=name; domain=127.0.0.1; path=/; Set-Cookie: mismatch=this; domain=127.0.0.1; path="/silly/"; Set-Cookie: partmatch=present; domain=.0.0.1; path=/w; Set-Cookie: duplicate=test; domain=.0.0.1; domain=.0.0.1; path=/donkey; Set-Cookie: cookie=yes; path=/we; Set-Cookie: cookie=perhaps; path=/we/want; Set-Cookie: name with space=is weird but; path=/we/want; Set-Cookie: trailingspace = removed; path=/we/want; Set-Cookie: nocookie=yes; path=/WE; Set-Cookie: blexp=yesyes; domain=127.0.0.1; domain=127.0.0.1; expiry=totally bad; Set-Cookie: partialip=nono; domain=.0.0.1; Set-Cookie: cookie1=-junk Set-Cookie: cookie2=-junk Set-Cookie: cookie3=-junk Set-Cookie: cookie4=-junk Set-Cookie: cookie5=-junk Set-Cookie: cookie6=-junk Set-Cookie: cookie7=-junk Set-Cookie: cookie8=-junk Set-Cookie: cookie9=junk-- Set-Cookie: cookie11= -junk Set-Cookie: cookie12= -junk Set-Cookie: cookie14=-junk Set-Cookie: cookie15=-junk Set-Cookie: cookie16=-junk Set-Cookie: cookie17=-junk Set-Cookie: cookie18=-junk Set-Cookie: cookie19=-junk Set-Cookie: cookie20=-junk Set-Cookie: cookie21=-junk Set-Cookie: cookie22=-junk Set-Cookie: cookie23=-junk Set-Cookie: cookie24=-junk Set-Cookie: cookie25=-junk Set-Cookie: cookie26= -junk Set-Cookie: cookie27=-junk Set-Cookie: cookie28=-junk Set-Cookie: cookie29=-junk Set-Cookie: cookie30=-junk Set-Cookie: cookie31=-junk Set-Cookie: cookie31=-junk === End of file heads8.txt === Start of file http_server.log 10:30:39.274275 Running HTTP IPv4 version on port 36129 10:30:39.274956 Wrote pid 73523 to log/1/server/http_server.pid 10:30:39.275151 Wrote port 36129 to log/1/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 8 === End of file server.cmd === Start of file valgrind8 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind8 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/6/server/http_server.pid" --logfile "log/6/http_server.log" --logdir "log/6" --portfile log/6/server/http_server.port --config log/6/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73518 port 45505 * pid http => 73518 73518 test 0003...[HTTP POST with auth and contents but with content-length set to 0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3 ../src/curl -q --output log/6/curl3.out --include --trace-ascii log/6/trace3 --trace-time -d "fooo=mooo&pooo=clue&doo=%20%20%20++++" -u "fake:-user" http://127.0.0.1:45505/3 > log/6/stdout3 2> log/6/stderr3 3: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 3 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3 ../src/curl -q --output log/6/curl3.out --include --trace-ascii log/6/trace3 --trace-time -d "fooo=mooo&pooo=clue&doo=%20%20%20++++" -u "fake:-user" http://127.0.0.1:45505/3 > log/6/stdout3 2> log/6/stderr3 === End of file commands.log === Start of file http_server.log 10:30:39.770201 Running HTTP IPv4 version on port 45505 10:30:39.770929 Wrote pid 73518 to log/6/server/http_server.pid 10:30:39.771214 Wrote port 45505 to log/6/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 3 === End of file server.cmd === Start of file valgrind3 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind4 ../src/curl -q --output log/5/curl4.out --include --trace-ascii log/5/trace4 --trace-time -H "extra-header: here" -H "Accept: replaced" -H "X-Custom-Header;" -H "X-Test: foo; " -H "X-Test:" -H "X-Test2: foo;" -H "X-Test3: " -H "X-Test4; " -H "X-Test5;ignored" http://127.0.0.1:41733/4 http://127.0.0.1:41733/4 > log/5/stdout4 2> log/5/stderr4 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind5 ../src/curl -q --output log/4/curl5.out --include --trace-ascii log/4/trace5 --trace-time http://127.0.0.1:36757/we/want/that/page/5#5 -x 127.0.0.1:36757 > log/4/stdout5 2> log/4/stderr5 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind6 ../src/curl -q --output log/3/curl6.out --include --trace-ascii log/3/trace6 --trace-time http://127.0.0.1:36933/we/want/that/page/6 -b "name=contents;name2=content2" -b name3=content3 > log/3/stdout6 2> log/3/stderr6 nd: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/5/server/http_server.pid" --logfile "log/5/http_server.log" --logdir "log/5" --portfile log/5/server/http_server.port --config log/5/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73519 port 41733 * pid http => 73519 73519 test 0004...[Replaced internal and added custom HTTP headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind4 ../src/curl -q --output log/5/curl4.out --include --trace-ascii log/5/trace4 --trace-time -H "extra-header: here" -H "Accept: replaced" -H "X-Custom-Header;" -H "X-Test: foo; " -H "X-Test:" -H "X-Test2: foo;" -H "X-Test3: " -H "X-Test4; " -H "X-Test5;ignored" http://127.0.0.1:41733/4 http://127.0.0.1:41733/4 > log/5/stdout4 2> log/5/stderr4 4: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 4 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind4 ../src/curl -q --output log/5/curl4.out --include --trace-ascii log/5/trace4 --trace-time -H "extra-header: here" -H "Accept: replaced" -H "X-Custom-Header;" -H "X-Test: foo; " -H "X-Test:" -H "X-Test2: foo;" -H "X-Test3: " -H "X-Test4; " -H "X-Test5;ignored" http://127.0.0.1:41733/4 http://127.0.0.1:41733/4 > log/5/stdout4 2> log/5/stderr4 === End of file commands.log === Start of file http_server.log 10:30:39.865384 Running HTTP IPv4 version on port 41733 10:30:39.866707 Wrote pid 73519 to log/5/server/http_server.pid 10:30:39.866988 Wrote port 41733 to log/5/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 4 === End of file server.cmd === Start of file valgrind4 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind4 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/4/server/http_server.pid" --logfile "log/4/http_server.log" --logdir "log/4" --portfile log/4/server/http_server.port --config log/4/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73520 port 36757 * pid http => 73520 73520 test 0005...[HTTP over proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind5 ../src/curl -q --output log/4/curl5.out --include --trace-ascii log/4/trace5 --trace-time http://127.0.0.1:36757/we/want/that/page/5#5 -x 127.0.0.1:36757 > log/4/stdout5 2> log/4/stderr5 5: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 5 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind5 ../src/curl -q --output log/4/curl5.out --include --trace-ascii log/4/trace5 --trace-time http://127.0.0.1:36757/we/want/that/page/5#5 -x 127.0.0.1:36757 > log/4/stdout5 2> log/4/stderr5 === End of file commands.log === Start of file http_server.log 10:30:39.966482 Running HTTP IPv4 version on port 36757 10:30:39.967109 Wrote pid 73520 to log/4/server/http_server.pid 10:30:39.967314 Wrote port 36757 to log/4/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 5 === End of file server.cmd === Start of file valgrind5 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind5 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/3/server/http_server.pid" --logfile "log/3/http_server.log" --logdir "log/3" -CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind9 ../src/curl -q --output log/8/curl9.out --include --trace-ascii log/8/trace9 --trace-time http://127.0.0.1:36007/we/want/9 -F name=daniel -F tool=curl -F file=@log/8/test9.txt > log/8/stdout9 2> log/8/stderr9 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind10 ../src/curl -q --output log/2/curl10.out --include --trace-ascii log/2/trace10 --trace-time http://127.0.0.1:43789/we/want/10 -T log/2/test10.txt > log/2/stdout10 2> log/2/stderr10 -portfile log/3/server/http_server.port --config log/3/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 73521 port 36933 * pid http => 73521 73521 test 0006...[HTTP with simple cookie send] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind6 ../src/curl -q --output log/3/curl6.out --include --trace-ascii log/3/trace6 --trace-time http://127.0.0.1:36933/we/want/that/page/6 -b "name=contents;name2=content2" -b name3=content3 > log/3/stdout6 2> log/3/stderr6 6: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 6 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind6 ../src/curl -q --output log/3/curl6.out --include --trace-ascii log/3/trace6 --trace-time http://127.0.0.1:36933/we/want/that/page/6 -b "name=contents;name2=content2" -b name3=content3 > log/3/stdout6 2> log/3/stderr6 === End of file commands.log === Start of file http_server.log 10:30:39.068512 Running HTTP IPv4 version on port 36933 10:30:39.069399 Wrote pid 73521 to log/3/server/http_server.pid 10:30:39.069720 Wrote port 36933 to log/3/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 6 === End of file server.cmd === Start of file valgrind6 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind6 test 0009...[HTTP RFC1867-type formposting] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind9 ../src/curl -q --output log/8/curl9.out --include --trace-ascii log/8/trace9 --trace-time http://127.0.0.1:36007/we/want/9 -F name=daniel -F tool=curl -F file=@log/8/test9.txt > log/8/stdout9 2> log/8/stderr9 9: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 9 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind9 ../src/curl -q --output log/8/curl9.out --include --trace-ascii log/8/trace9 --trace-time http://127.0.0.1:36007/we/want/9 -F name=daniel -F tool=curl -F file=@log/8/test9.txt > log/8/stdout9 2> log/8/stderr9 === End of file commands.log === Start of file http_server.log 10:30:40.770189 ====> Client connect 10:30:40.770485 accept_connection 3 returned 4 10:30:40.770654 accept_connection 3 returned 0 10:30:40.770776 Read 93 bytes 10:30:40.770858 Process 93 bytes request 10:30:40.770949 Got request: GET /verifiedserver HTTP/1.1 10:30:40.771014 Are-we-friendly question received 10:30:40.771249 Wrote request (93 bytes) input to log/8/server.input 10:30:40.771470 Identifying ourselves as friends 10:30:40.772383 Response sent (56 bytes) and written to log/8/server.response 10:30:40.772539 special request received, no persistency 10:30:40.772764 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35782 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 9 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file test9.txt foo- This is a moo- bar === End of file test9.txt === Start of file valgrind9 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind9 test 0010...[simple HTTP PUT from file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind10 ../src/curl -q --output log/2/curl10.out --include --trace-ascii log/2/trace10 --trace-time http://127.0.0.1:43789/we/want/10 -T log/2/test10.txt > log/2/stdout10 2> log/2/stderr10 10: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 10 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind10 ../src/curl -q --output log/2/curl10.out --include --trace-ascii log/2/trace10 --trace-time http://127.0.0.1:43789/we/want/10 -T log/2/test10.txt > log/2/stdout10 2> log/2/stderr10 === End of file commands.log === Start of file http_server.log 10:30:40.821480 ====> Client connect 10:30:40.821826 accept_connection 3 returned 4CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind11 ../src/curl -q --output log/7/curl11.out --include --trace-ascii log/7/trace11 --trace-time http://127.0.0.1:40129/want/11 -L > log/7/stdout11 2> log/7/stderr11 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind12 ../src/curl -q --output log/1/curl12.out --include --trace-ascii log/1/trace12 --trace-time http://127.0.0.1:36129/want/12 -r 100-200 > log/1/stdout12 2> log/1/stderr12 10:30:40.822025 accept_connection 3 returned 0 10:30:40.822181 Read 93 bytes 10:30:40.822285 Process 93 bytes request 10:30:40.822398 Got request: GET /verifiedserver HTTP/1.1 10:30:40.822545 Are-we-friendly question received 10:30:40.822804 Wrote request (93 bytes) input to log/2/server.input 10:30:40.823038 Identifying ourselves as friends 10:30:40.823759 Response sent (56 bytes) and written to log/2/server.response 10:30:40.823882 special request received, no persistency 10:30:40.823963 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36296 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 10 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file test10.txt Weird file to upload for testing the PUT feature === End of file test10.txt === Start of file valgrind10 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind10 test 0011...[simple HTTP Location: following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind11 ../src/curl -q --output log/7/curl11.out --include --trace-ascii log/7/trace11 --trace-time http://127.0.0.1:40129/want/11 -L > log/7/stdout11 2> log/7/stderr11 11: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 11 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind11 ../src/curl -q --output log/7/curl11.out --include --trace-ascii log/7/trace11 --trace-time http://127.0.0.1:40129/want/11 -L > log/7/stdout11 2> log/7/stderr11 === End of file commands.log === Start of file http_server.log 10:30:40.881675 ====> Client connect 10:30:40.882005 accept_connection 3 returned 4 10:30:40.882207 accept_connection 3 returned 0 10:30:40.882346 Read 93 bytes 10:30:40.882428 Process 93 bytes request 10:30:40.882513 Got request: GET /verifiedserver HTTP/1.1 10:30:40.882583 Are-we-friendly question received 10:30:40.882816 Wrote request (93 bytes) input to log/7/server.input 10:30:40.883031 Identifying ourselves as friends 10:30:40.883715 Response sent (56 bytes) and written to log/7/server.response 10:30:40.883858 special request received, no persistency 10:30:40.883928 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46654 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 11 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind11 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind11 test 0012...[HTTP range support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind12 ../src/curl -q --output log/1/curl12.out --include --trace-ascii log/1/trace12 --trace-time http://127.0.0.1:36129/want/12 -r 100-200 > log/1/stdout12 2> log/1/stderr12 12: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 12 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind12 ../src/curl -q --output log/1/curl12.out --include --trace-ascii log/1/trace12 --trace-time http://127.0.0.1:36129/want/12 -r 100-200 > log/1/stdout12 2> log/1/stderr12 === End of file commands.log === Start of file http_server.log 10:30:41.018790 ====> Client connect 10:30:41.019082 accept_connection 3 returned 4 10:30:41.019246 accept_connection 3 returned 0 10:30:41.019363 Read 93 bytes 10:30:41.019442 Process 93 bytes request 10:30:41.019573 Got request: GET /verifiedserver HTTP/1.1 10:30:41.019669 Are-we-friendly question received 10:30:41.019923 Wrote request (93 bytes) input to log/1/server.input 10:30:41.020123 Identifying ourselves as friends 10:30:41.020807 RCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind13 ../src/curl -q --output log/6/curl13.out --include --trace-ascii log/6/trace13 --trace-time http://127.0.0.1:45505/want/13 -X DELETE > log/6/stdout13 2> log/6/stderr13 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind14 ../src/curl -q --output log/5/curl14.out --include --trace-ascii log/5/trace14 --trace-time http://127.0.0.1:41733/want/14 -i --head > log/5/stdout14 2> log/5/stderr14 esponse sent (56 bytes) and written to log/1/server.response 10:30:41.021011 special request received, no persistency 10:30:41.021097 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42100 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 12 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind12 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind12 test 0013...[HTTP custom request 'DELETE'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind13 ../src/curl -q --output log/6/curl13.out --include --trace-ascii log/6/trace13 --trace-time http://127.0.0.1:45505/want/13 -X DELETE > log/6/stdout13 2> log/6/stderr13 13: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 13 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind13 ../src/curl -q --output log/6/curl13.out --include --trace-ascii log/6/trace13 --trace-time http://127.0.0.1:45505/want/13 -X DELETE > log/6/stdout13 2> log/6/stderr13 === End of file commands.log === Start of file http_server.log 10:30:42.152133 ====> Client connect 10:30:42.152467 accept_connection 3 returned 4 10:30:42.152660 accept_connection 3 returned 0 10:30:42.152803 Read 93 bytes 10:30:42.152886 Process 93 bytes request 10:30:42.153187 Got request: GET /verifiedserver HTTP/1.1 10:30:42.153287 Are-we-friendly question received 10:30:42.153609 Wrote request (93 bytes) input to log/6/server.input 10:30:42.153865 Identifying ourselves as friends 10:30:42.154708 Response sent (56 bytes) and written to log/6/server.response 10:30:42.154881 special request received, no persistency 10:30:42.154972 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45505... * Established connection to 127.0.0.1 (127.0.0.1 port 45505) from 127.0.0.1 port 54622 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45505 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:45505 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73518 === End of file http_verify.out === Start of file server.cmd Testnum 13 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73518 === End of file server.response === Start of file valgrind13 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind13 test 0014...[HTTP HEAD with Connection: close] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind14 ../src/curl -q --output log/5/curl14.out --include --trace-ascii log/5/trace14 --trace-time http://127.0.0.1:41733/want/14 -i --head > log/5/stdout14 2> log/5/stderr14 14: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 14 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind14 ../src/curl -q --output log/5/curl14.out --include --trace-ascii log/5/trace14 --trace-time http://127.0.0.1:41733/want/14 -i --head > log/5/stdout14 2> log/5/stderr14 === End of file commands.log === Start of file http_server.log 10:30:42.274940 ====> Client connect 10:30:42.275391 accept_connection 3 returned 4 10:30:42.275652 accept_connection 3 returned 0 10:30:42.275823 Read 93 bytes 10:30:42.275917 Process 93 bytes request 10:30:42.276010 Got request: GET /verifiedserver HTTP/1.1 10:30:42.276086 Are-we-friendly question received 10:30:42.276362 Wrote request (93 bytes) input to log/5/server.input 10:30:42.276644 Identifying ourselves as friends 10:30:42.277907 Response sent (56 bytes) and written to log/5/server.response 10:30:42.278117 special request received, no persistency 10:30:42.278205 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 54860 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind15 ../src/curl -q --include --trace-ascii log/4/trace15 --trace-time http://127.0.0.1:36757/want/15 --write-out "%{url_effective} %{http_code} %{size_download}\n" > log/4/stdout15 2> log/4/stderr15 sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 14 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind14 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind14 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind16 ../src/curl -q --output log/3/curl16.out --include --trace-ascii log/3/trace16 --trace-time -U fake@user:loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong -x 127.0.0.1:36933 http://we.want.that.site.com/16 > log/3/stdout16 2> log/3/stderr16 test 0015...[--write-out test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind15 ../src/curl -q --include --trace-ascii log/4/trace15 --trace-time http://127.0.0.1:36757/want/15 --write-out "%{url_effective} %{http_code} %{size_download}\n" > log/4/stdout15 2> log/4/stderr15 15: stdout FAILED: --- log/4/check-expected 2025-09-11 10:30:42.490909723 +0000 +++ log/4/check-generated 2025-09-11 10:30:42.490909723 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Fake: yes[CR][LF] -Fake: yes[CR][LF] -Fake: yes[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -Repeated nonsense-headers[LF] -http://127.0.0.1:36757/want/15 200 26[LF] == Contents of files in the log/4/ dir after test 15 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Fake: yes[CR][LF] Fake: yes[CR][LF] Fake: yes[CR][LF] Content-Length: 26[CR][LF] [CR][LF] Repeated nonsense-headers[LF] http://127.0.0.1:36757/want/15 200 26[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind15 ../src/curl -q --include --trace-ascii log/4/trace15 --trace-time http://127.0.0.1:36757/want/15 --write-out "%{url_effective} %{http_code} %{size_download}\n" > log/4/stdout15 2> log/4/stderr15 === End of file commands.log === Start of file http_server.log 10:30:42.337098 ====> Client connect 10:30:42.337482 accept_connection 3 returned 4 10:30:42.337686 accept_connection 3 returned 0 10:30:42.337840 Read 93 bytes 10:30:42.337938 Process 93 bytes request 10:30:42.338036 Got request: GET /verifiedserver HTTP/1.1 10:30:42.338122 Are-we-friendly question received 10:30:42.338373 Wrote request (93 bytes) input to log/4/server.input 10:30:42.338610 Identifying ourselves as friends 10:30:42.339440 Response sent (56 bytes) and written to log/4/server.response 10:30:42.339591 special request received, no persistency 10:30:42.339702 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35586 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 15 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind15 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind15 test 0016...[HTTP with proxy authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind16 ../src/curl -q --output log/3/curl16.out --include --trace-ascii log/3/trace16 --trace-time -U fake@user:loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong -x 127.0.0.1:36933 http://we.want.that.site.com/16 > log/3/stdout16 2> log/3/stderr16 16: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 16 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind16 ../src/curl -q --output log/3/curl16.out --include --trace-ascii log/3/trace16 --trace-time -U fake@user:loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong -x 127.0.0.1:36933 http://we.want.that.site.com/16 > log/3/stdout16 2> log/3/stderr16 === End of file commands.log === Start of file http_server.log 10:30:41.453926 ====> Client connect 10:30:41.454399 accept_connection 3 returned 4 10:30:41.454686 accept_connection 3 returned 0 10:30:41.454908 Read 93 bytes 10:30:41.455053 Process 93 bytes request 10:30:41.455176 Got request: GET /verifiedserver HTTP/1.1 10:30:41.455275 Are-we-friendly question received 10:30:41.455712 Wrote request (93 bytes) input to log/3/server.input 10:30:41.456166 Identifying ourselves as friends 10:30:41.457531 Response sent (56 bytes) and written to log/3/server.response 10:30:41.457705 special request received, no persistency 10:30:41.457792 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42812 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 16 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind16 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind19 ../src/curl -q --output log/7/curl19.out --include --trace-ascii log/7/trace19 --trace-time --trace-config all 127.0.0.1:47 > log/7/stdout19 2> log/7/stderr19 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind17 ../src/curl -q --output log/8/curl17.out --include --trace-ascii log/8/trace17 --trace-time -K - 127.0.0.1:36007/that.site.com/17 log/8/stdout17 2> log/8/stderr17 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind20 ../src/curl -q --output log/1/curl20.out --include --trace-ascii log/1/trace20 --trace-time --ipv4 non-existing-host.haxx.se. > log/1/stdout20 2> log/1/stderr20 rind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind16 test 0019...[attempt connect to non-listening socket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind19 ../src/curl -q --output log/7/curl19.out --include --trace-ascii log/7/trace19 --trace-time --trace-config all 127.0.0.1:47 > log/7/stdout19 2> log/7/stderr19 curl returned 1, when expecting 7 19: exit FAILED == Contents of files in the log/7/ dir after test 19 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind19 ../src/curl -q --output log/7/curl19.out --include --trace-ascii log/7/trace19 --trace-time --trace-config all 127.0.0.1:47 > log/7/stdout19 2> log/7/stderr19 === End of file commands.log === Start of file server.cmd Testnum 19 === End of file server.cmd === Start of file valgrind19 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind19 test 0017...[HTTP with config file on stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind17 ../src/curl -q --output log/8/curl17.out --include --trace-ascii log/8/trace17 --trace-time -K - 127.0.0.1:36007/that.site.com/17 log/8/stdout17 2> log/8/stderr17 17: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 17 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind17 ../src/curl -q --output log/8/curl17.out --include --trace-ascii log/8/trace17 --trace-time -K - 127.0.0.1:36007/that.site.com/17 log/8/stdout17 2> log/8/stderr17 === End of file commands.log === Start of file http_server.log 10:30:41.732557 ====> Client connect 10:30:41.732970 accept_connection 3 returned 4 10:30:41.733195 accept_connection 3 returned 0 10:30:41.733337 Read 93 bytes 10:30:41.733443 Process 93 bytes request 10:30:41.733543 Got request: GET /verifiedserver HTTP/1.1 10:30:41.733629 Are-we-friendly question received 10:30:41.733908 Wrote request (93 bytes) input to log/8/server.input 10:30:41.734174 Identifying ourselves as friends 10:30:41.735100 Response sent (56 bytes) and written to log/8/server.response 10:30:41.735294 special request received, no persistency 10:30:41.735383 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35792 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 17 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file stdin-for-17 # # Use a silly request without '--': request MOOO # # Set the user-agent using a short-option: -A "agent007 license to drill\t" # # long option *with* '--': --max-time 180 === End of file stdin-for-17 === Start of file valgrind17 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind17 test 0020...[attempt connect to non-existing host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind20 ../src/curl -q --output log/1/curl20.out --include --trace-ascii log/1/trace20 --trace-time --ipv4 non-existing-host.haxx.se. > log/1/stdout20 2> log/1/stderr20 curl returned 1, when expecting 6 20: exit FAILED == Contents of files in the log/1/ dir after test 20 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind20 ../src/curl -q --output log/1/curl20.out --include --trace-ascii log/1/trace20 --trace-time --ipv4 non-existing-host.haxx.se. > log/1/stdout20 2> log/1/stderr20 === End of file commands.log === Start of file server.cmd Testnum 20 === End of file server.cmd === Start of file valgrind20 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind18 ../src/curl -q --include --trace-ascii log/2/trace18 --trace-time "127.0.0.1:43789/{18,180002,180003}" > log/2/stdout18 2> log/2/stderr18 : A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind20 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind21 ../src/curl -q --output log/6/curl21.out --include --trace-ascii log/6/trace21 --trace-time -I -d FOOO -F moo=moo localhost > log/6/stdout21 2> log/6/stderr21 test 0018...[multiple requests using {} in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind18 ../src/curl -q --include --trace-ascii log/2/trace18 --trace-time "127.0.0.1:43789/{18,180002,180003}" > log/2/stdout18 2> log/2/stderr18 18: stdout FAILED: --- log/2/check-expected 2025-09-11 10:30:42.938918641 +0000 +++ log/2/check-generated 2025-09-11 10:30:42.934918562 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 4[CR][LF] -[CR][LF] -moo[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 4[CR][LF] -[CR][LF] -foo[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 4[CR][LF] -[CR][LF] -hoo[LF] == Contents of files in the log/2/ dir after test 18 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 4[CR][LF] [CR][LF] moo[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 4[CR][LF] [CR][LF] foo[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 4[CR][LF] [CR][LF] hoo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind18 ../src/curl -q --include --trace-ascii log/2/trace18 --trace-time "127.0.0.1:43789/{18,180002,180003}" > log/2/stdout18 2> log/2/stderr18 === End of file commands.log === Start of file http_server.log 10:30:41.756266 ====> Client connect 10:30:41.756611 accept_connection 3 returned 4 10:30:41.756825 accept_connection 3 returned 0 10:30:41.757108 Read 93 bytes 10:30:41.757226 Process 93 bytes request 10:30:41.757320 Got request: GET /verifiedserver HTTP/1.1 10:30:41.757406 Are-we-friendly question received 10:30:41.757675 Wrote request (93 bytes) input to log/2/server.input 10:30:41.757897 Identifying ourselves as friends 10:30:41.758750 Response sent (56 bytes) and written to log/2/server.response 10:30:41.758903 special request received, no persistency 10:30:41.758982 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36312 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 18 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind18 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind18 test 0021...[use curl with multiple request methods] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind21 ../src/curl -q --output log/6/curl21.out --include --trace-ascii log/6/trace21 --trace-time -I -d FOOO -F moo=moo localhost > log/6/stdout21 2> log/6/stderr21 curl returned 1, when expecting 2 21: exit FAILED == Contents of files in the log/6/ dir after test 21 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind21 ../src/curl -q --output log/6/curl21.out --include --trace-ascii log/6/trace21 --trace-time -I -d FOOO -F moo=moo localhost > log/6/stdout21 2> log/6/stderr21 === End of file commands.log === Start of file http_server.log 10:30:43.100009 ====> Client connect 10:30:43.100399 accept_connection 3 returned 4 10:30:43.100613 accept_connection 3 returned 0 10:30:43.100783 Read 93 bytes 10:30:43.100951 Process 93 bytes request 10:30:43.101083 Got request: GET /verifiedserver HTTP/1.1 10:30:43.101179 Are-we-friendly question received 10:30:43.101538 Wrote request (93 bytes) input to log/6/server.input 10:30:43.101767 Identifying ourselves as friends 10:30:43.102592 Response sent (56 bytes) and written to log/6/server.response 10:30:43.102778 special request received, no persistency 10:30:43.102862 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45505... * Established connection to 127.0.0.1 (127.0.0.1 port 45505) from 127.0.0.1 port 54628 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45505 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:45505 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73518 === End of file http_verify.out === Start of file server.cmd Testnum 21 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73518 === End of file server.response === Start of file valgrind21 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind22 ../src/curl -q --output log/5/curl22.out --include --trace-ascii log/5/trace22 --trace-time 127.0.0.1:41733/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/22 > log/5/stdout22 2> log/5/stderr22 exiting now. Sorry. === End of file valgrind21 test 0022...[get HTTP with URL > 10000 bytes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind22 ../src/curl -q --output log/5/curl22.out --include --trace-ascii log/5/trace22 --trace-time 127.0.0.1:41733/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/22 > log/5/stdout22 2> log/5/stderr22 22: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 22 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind22 ../src/curl -q --output log/5/curl22.out --include --trace-ascii log/5/trace22 --trace-time 127.0.0.1:41733/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind23 ../src/curl -q --output log/4/curl23.out --include --trace-ascii log/4/trace23 --trace-time htfp://127.0.0.1:36757/none.htfml > log/4/stdout23 2> log/4/stderr23 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/22 > log/5/stdout22 2> log/5/stderr22 === End of file commands.log === Start of file http_server.log 10:30:43.192434 ====> Client connect 10:30:43.192705 accept_connection 3 returned 4 10:30:43.192865 accept_connection 3 returned 0 10:30:43.193125 Read 93 bytes 10:30:43.193226 Process 93 bytes request 10:30:43.193329 Got request: GET /verifiedserver HTTP/1.1 10:30:43.193409 Are-we-friendly question received 10:30:43.193650 Wrote request (93 bytes) input to log/5/server.input 10:30:43.193863 Identifying ourselves as friends 10:30:43.194702 Response sent (56 bytes) and written to log/5/server.response 10:30:43.194856 special request received, no persistency 10:30:43.194939 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 54866 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 22 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind22 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind22 test 0023...[unsupported protocol:// URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind23 ../src/curl -q --output log/4/curl23.out --include --trace-ascii log/4/trace23 --trace-time htfp://127.0.0.1:36757/none.htfml > log/4/stdout23 2> log/4/stderr23 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind24 ../src/curl -q --output log/3/curl24.out --include --trace-ascii log/3/trace24 --trace-time http://127.0.0.1:36933/24 --fail --silent --show-error > log/3/stdout24 2> log/3/stderr24 bject with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/4/ dir after test 23 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind23 ../src/curl -q --output log/4/curl23.out --include --trace-ascii log/4/trace23 --trace-time htfp://127.0.0.1:36757/none.htfml > log/4/stdout23 2> log/4/stderr23 === End of file commands.log === Start of file http_server.log 10:30:43.399654 ====> Client connect 10:30:43.400028 accept_connection 3 returned 4 10:30:43.400236 accept_connection 3 returned 0 10:30:43.400418 Read 93 bytes 10:30:43.400540 Process 93 bytes request 10:30:43.400647 Got request: GET /verifiedserver HTTP/1.1 10:30:43.400736 Are-we-friendly question received 10:30:43.401098 Wrote request (93 bytes) input to log/4/server.input 10:30:43.401490 Identifying ourselves as friends 10:30:43.402410 Response sent (56 bytes) and written to log/4/server.response 10:30:43.402574 special request received, no persistency 10:30:43.402671 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35588 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 23 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind23 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind23 test 0024...[HTTP GET fail silently on HTTP error return] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind24 ../src/curl -q --output log/3/curl24.out --include --trace-ascii log/3/trace24 --trace-time http://127.0.0.1:36933/24 --fail --silent --show-error > log/3/stdout24 2> log/3/stderr24 24: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 24 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind24 ../src/curl -q --output log/3/curl24.out --include --trace-ascii log/3/trace24 --trace-time http://127.0.0.1:36933/24 --fail --silent --show-error > log/3/stdout24 2> log/3/stderr24 === End of file commands.log === Start of file http_server.log 10:30:42.485841 ====> Client connect 10:30:42.486351 accept_connection 3 returned 4 10:30:42.486672 accept_connection 3 returned 0 10:30:42.487798 Read 93 bytes 10:30:42.488102 Process 93 bytes request 10:30:42.488231 Got request: GET /verifiedserver HTTP/1.1 10:30:42.488350 Are-we-friendly question received 10:30:42.488732 Wrote request (93 bytes) input to log/3/server.input 10:30:42.489136 Identifying ourselves as friends 10:30:42.489901 Response sent (56 bytes) and written to log/3/server.response 10:30:42.490097 special request received, no persistency 10:30:42.490210 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42824 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 24 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind24 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. SorrCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind26 ../src/curl -q --output log/8/curl26.out --include --trace-ascii log/8/trace26 --trace-time http://127.0.0.1:36007/want/26 -o - -o - > log/8/stdout26 2> log/8/stderr26 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind27 ../src/curl -q --output log/1/curl27.out --include --trace-ascii log/1/trace27 --trace-time "http://127.0.0.1:36129/want/{27,27,27}" -b none > log/1/stdout27 2> log/1/stderr27 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind25 ../src/curl -q --output log/7/curl25.out --include --trace-ascii log/7/trace25 --trace-time http://127.0.0.1:40129/want/25 -L --max-redirs 5 > log/7/stdout25 2> log/7/stderr25 y. === End of file valgrind24 test 0026...[specify more -o than URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind26 ../src/curl -q --output log/8/curl26.out --include --trace-ascii log/8/trace26 --trace-time http://127.0.0.1:36007/want/26 -o - -o - > log/8/stdout26 2> log/8/stderr26 26: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 26 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind26 ../src/curl -q --output log/8/curl26.out --include --trace-ascii log/8/trace26 --trace-time http://127.0.0.1:36007/want/26 -o - -o - > log/8/stdout26 2> log/8/stderr26 === End of file commands.log === Start of file http_server.log 10:30:42.684605 ====> Client connect 10:30:42.685355 accept_connection 3 returned 4 10:30:42.685674 accept_connection 3 returned 0 10:30:42.687165 Read 93 bytes 10:30:42.687429 Process 93 bytes request 10:30:42.687562 Got request: GET /verifiedserver HTTP/1.1 10:30:42.687644 Are-we-friendly question received 10:30:42.687962 Wrote request (93 bytes) input to log/8/server.input 10:30:42.688239 Identifying ourselves as friends 10:30:42.689226 Response sent (56 bytes) and written to log/8/server.response 10:30:42.689386 special request received, no persistency 10:30:42.689459 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35794 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 26 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind26 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind26 test 0027...[Get same cookie page several times] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind27 ../src/curl -q --output log/1/curl27.out --include --trace-ascii log/1/trace27 --trace-time "http://127.0.0.1:36129/want/{27,27,27}" -b none > log/1/stdout27 2> log/1/stderr27 27: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 27 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind27 ../src/curl -q --output log/1/curl27.out --include --trace-ascii log/1/trace27 --trace-time "http://127.0.0.1:36129/want/{27,27,27}" -b none > log/1/stdout27 2> log/1/stderr27 === End of file commands.log === Start of file http_server.log 10:30:42.701315 ====> Client connect 10:30:42.701800 accept_connection 3 returned 4 10:30:42.702052 accept_connection 3 returned 0 10:30:42.704170 Read 93 bytes 10:30:42.704407 Process 93 bytes request 10:30:42.704540 Got request: GET /verifiedserver HTTP/1.1 10:30:42.704645 Are-we-friendly question received 10:30:42.705077 Wrote request (93 bytes) input to log/1/server.input 10:30:42.705363 Identifying ourselves as friends 10:30:42.706101 Response sent (56 bytes) and written to log/1/server.response 10:30:42.706253 special request received, no persistency 10:30:42.706316 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42106 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 27 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind27 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind27 test 0025...[looping HTTP Location: following with --max-redirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind25 ../src/curl -q --output log/7/curl25.out --include --trace-ascii log/7/trace25 --trace-time http://127.0.0.1:40129/want/25 -L --max-redirs 5 > log/7/stdout25 2> log/7/stderr25 25: protocol FAILED! There was no content at CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind28 ../src/curl -q --output log/2/curl28.out --include --trace-ascii log/2/trace28 --trace-time http://127.0.0.1:43789/want/28 -L > log/2/stdout28 2> log/2/stderr28 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind29 ../src/curl -q --output log/6/curl29.out --include --trace-ascii log/6/trace29 --trace-time http://127.0.0.1:45505/want/29 -m 2 > log/6/stdout29 2> log/6/stderr29 RUN: Process with pid 73518 signalled to die RUN: Process with pid 73518 gracefully died all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 25 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind25 ../src/curl -q --output log/7/curl25.out --include --trace-ascii log/7/trace25 --trace-time http://127.0.0.1:40129/want/25 -L --max-redirs 5 > log/7/stdout25 2> log/7/stderr25 === End of file commands.log === Start of file http_server.log 10:30:42.618095 ====> Client connect 10:30:42.618418 accept_connection 3 returned 4 10:30:42.618645 accept_connection 3 returned 0 10:30:42.623526 Read 93 bytes 10:30:42.623804 Process 93 bytes request 10:30:42.623953 Got request: GET /verifiedserver HTTP/1.1 10:30:42.624065 Are-we-friendly question received 10:30:42.624385 Wrote request (93 bytes) input to log/7/server.input 10:30:42.624630 Identifying ourselves as friends 10:30:42.625667 Response sent (56 bytes) and written to log/7/server.response 10:30:42.625836 special request received, no persistency 10:30:42.625907 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46656 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 25 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind25 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind25 test 0028...[HTTP Location: following with extra spaces in header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind28 ../src/curl -q --output log/2/curl28.out --include --trace-ascii log/2/trace28 --trace-time http://127.0.0.1:43789/want/28 -L > log/2/stdout28 2> log/2/stderr28 28: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 28 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind28 ../src/curl -q --output log/2/curl28.out --include --trace-ascii log/2/trace28 --trace-time http://127.0.0.1:43789/want/28 -L > log/2/stdout28 2> log/2/stderr28 === End of file commands.log === Start of file http_server.log 10:30:42.839582 ====> Client connect 10:30:42.839943 accept_connection 3 returned 4 10:30:42.840186 accept_connection 3 returned 0 10:30:42.840357 Read 93 bytes 10:30:42.840491 Process 93 bytes request 10:30:42.840593 Got request: GET /verifiedserver HTTP/1.1 10:30:42.840678 Are-we-friendly question received 10:30:42.841109 Wrote request (93 bytes) input to log/2/server.input 10:30:42.841405 Identifying ourselves as friends 10:30:42.842333 Response sent (56 bytes) and written to log/2/server.response 10:30:42.842508 special request received, no persistency 10:30:42.842605 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36316 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 28 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind28 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind28 test 0029...[HTTP with 2 secs timeout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind29 ../src/curl -q --output log/6/curl29.out --include --trace-ascii log/6/trace29 --trace-time http://127.0.0.1:45505/want/29 -m 2 > log/6/stdout29 2> log/6/stderr29 29: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 29 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind29 ../src/curl -q --output log/6/curl29.out --include --trace-ascii log/6/trace29 --trace-time http://127.0.0.1:45505/want/29 -m 2 >CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind30 ../src/curl -q --output log/5/curl30.out --include --trace-ascii log/5/trace30 --trace-time http://127.0.0.1:41733/want/30 > log/5/stdout30 2> log/5/stderr30 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind32 ../src/curl -q --output log/3/curl32.out --include --trace-ascii log/3/trace32 --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:36933/32 -G > log/3/stdout32 2> log/3/stderr32 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind31 ../src/curl -q --output log/4/curl31.out --include --trace-ascii log/4/trace31 --trace-time http://test31.curl:36757/we/want/31 -b none -c log/4/jar31.txt --resolve test31.curl:36757:127.0.0.1 > log/4/stdout31 2> log/4/stderr31 log/6/stdout29 2> log/6/stderr29 === End of file commands.log === Start of file http_server.log 10:30:44.055895 ====> Client connect 10:30:44.056249 accept_connection 3 returned 4 10:30:44.056437 accept_connection 3 returned 0 10:30:44.056591 Read 93 bytes 10:30:44.056695 Process 93 bytes request 10:30:44.056789 Got request: GET /verifiedserver HTTP/1.1 10:30:44.056923 Are-we-friendly question received 10:30:44.057219 Wrote request (93 bytes) input to log/6/server.input 10:30:44.057424 Identifying ourselves as friends 10:30:44.058160 Response sent (56 bytes) and written to log/6/server.response 10:30:44.058321 special request received, no persistency 10:30:44.058393 ====> Client disconnect 0 exit_signal_handler: called 10:30:44.859856 signalled to die 10:30:44.860631 ========> IPv4 sws (port 45505 pid: 73518) exits with signal (15) 10:30:44.860906 ========> sws quits === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:45505... * Established connection to 127.0.0.1 (127.0.0.1 port 45505) from 127.0.0.1 port 54636 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:45505 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:45505 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73518 === End of file http_verify.out === Start of file server.cmd Testnum 29 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73518 === End of file server.response === Start of file valgrind29 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind29 test 0030...[HTTP with no data in server reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind30 ../src/curl -q --output log/5/curl30.out --include --trace-ascii log/5/trace30 --trace-time http://127.0.0.1:41733/want/30 > log/5/stdout30 2> log/5/stderr30 30: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 30 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind30 ../src/curl -q --output log/5/curl30.out --include --trace-ascii log/5/trace30 --trace-time http://127.0.0.1:41733/want/30 > log/5/stdout30 2> log/5/stderr30 === End of file commands.log === Start of file http_server.log 10:30:44.251474 ====> Client connect 10:30:44.251921 accept_connection 3 returned 4 10:30:44.252159 accept_connection 3 returned 0 10:30:44.252306 Read 93 bytes 10:30:44.252406 Process 93 bytes request 10:30:44.252497 Got request: GET /verifiedserver HTTP/1.1 10:30:44.252566 Are-we-friendly question received 10:30:44.252795 Wrote request (93 bytes) input to log/5/server.input 10:30:44.253088 Identifying ourselves as friends 10:30:44.253896 Response sent (56 bytes) and written to log/5/server.response 10:30:44.254057 special request received, no persistency 10:30:44.254144 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 54880 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 30 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind30 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind30 test 0032...[HTTP with -d and -G] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind32 ../src/curl -q --output log/3/curl32.out --include --trace-ascii log/3/trace32 --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:36933/32 -G > log/3/stdout32 2> log/3/stderr32 32: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 32 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind32 ../src/curl -q --output log/3/curl32.out --include --trace-ascii log/3/trace32 --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:36933/32 -G > log/3/stdout32 2> log/3/stderr32 === End of file commands.log === Start of file http_server.log 10:30:43.421473 ====> Client connect 10:30:43.421816 accept_connection 3 returned 4 10:30:43.422034 accept_connection 3 returned 0 10:30:43.422205 Read 93 bytes 10:30:43.422313 Process 93 bytes request 10:30:43.422CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind33 ../src/curl -q --output log/8/curl33.out --include --trace-ascii log/8/trace33 --trace-time http://127.0.0.1:36007/33 -Tlog/8/test33.txt -C 50 > log/8/stdout33 2> log/8/stderr33 421 Got request: GET /verifiedserver HTTP/1.1 10:30:43.422496 Are-we-friendly question received 10:30:43.422835 Wrote request (93 bytes) input to log/3/server.input 10:30:43.423159 Identifying ourselves as friends 10:30:43.424101 Response sent (56 bytes) and written to log/3/server.response 10:30:43.424277 special request received, no persistency 10:30:43.424364 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42834 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 32 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind32 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind32 setenv TZ = GMT test 0031...[HTTP with weirdly formatted cookies and cookiejar storage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind31 ../src/curl -q --output log/4/curl31.out --include --trace-ascii log/4/trace31 --trace-time http://test31.curl:36757/we/want/31 -b none -c log/4/jar31.txt --resolve test31.curl:36757:127.0.0.1 > log/4/stdout31 2> log/4/stderr31 31: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 31 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind31 ../src/curl -q --output log/4/curl31.out --include --trace-ascii log/4/trace31 --trace-time http://test31.curl:36757/we/want/31 -b none -c log/4/jar31.txt --resolve test31.curl:36757:127.0.0.1 > log/4/stdout31 2> log/4/stderr31 === End of file commands.log === Start of file http_server.log 10:30:44.322702 ====> Client connect 10:30:44.323093 accept_connection 3 returned 4 10:30:44.323303 accept_connection 3 returned 0 10:30:44.324486 Read 93 bytes 10:30:44.324681 Process 93 bytes request 10:30:44.324788 Got request: GET /verifiedserver HTTP/1.1 10:30:44.324970 Are-we-friendly question received 10:30:44.325335 Wrote request (93 bytes) input to log/4/server.input 10:30:44.325651 Identifying ourselves as friends 10:30:44.327224 Response sent (56 bytes) and written to log/4/server.response 10:30:44.327432 special request received, no persistency 10:30:44.327517 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35590 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 31 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind31 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind31 test 0033...[HTTP PUT with resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind33 ../src/curl -q --output log/8/curl33.out --include --trace-ascii log/8/trace33 --trace-time http://127.0.0.1:36007/33 -Tlog/8/test33.txt -C 50 > log/8/stdout33 2> log/8/stderr33 33: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 33 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind33 ../src/curl -q --output log/8/curl33.out --include --trace-ascii log/8/trace33 --trace-time http://127.0.0.1:36007/33 -Tlog/8/test33.txt -C 50 > log/8/stdout33 2> log/8/stderr33 === End of file commands.log === Start of file http_server.log 10:30:43.639722 ====> Client connect 10:30:43.640083 accept_connection 3 returned 4 10:30:43.640335 accept_connection 3 returned 0 10:30:43.640548 Read 93 bytes 10:30:43.640710 Process 93 bytes request 10:30:43.640933 Got request: GET /verifiedserver HTTP/1.1 10:30:43.641089 Are-we-friendly question received 10:30:43.641424 Wrote request (93 bytes) input to log/8/server.input 10:30:43.641700 Identifying ourselves as friends 10:30:43.642643 Response sent (56 bytes) and written to log/8/server.response 10:30:43.642823 specCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind34 ../src/curl -q --output log/1/curl34.out --include --trace-ascii log/1/trace34 --trace-time http://127.0.0.1:36129/34 > log/1/stdout34 2> log/1/stderr34 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind35 ../src/curl -q --output log/7/curl35.out --include --trace-ascii log/7/trace35 --trace-time http://127.0.0.1:40129/we/want/35 --data-binary @log/7/test35.txt > log/7/stdout35 2> log/7/stderr35 ial request received, no persistency 10:30:43.642903 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35802 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 33 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file test33.txt 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file test33.txt === Start of file valgrind33 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind33 test 0034...[HTTP GET with chunked Transfer-Encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind34 ../src/curl -q --output log/1/curl34.out --include --trace-ascii log/1/trace34 --trace-time http://127.0.0.1:36129/34 > log/1/stdout34 2> log/1/stderr34 34: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 34 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind34 ../src/curl -q --output log/1/curl34.out --include --trace-ascii log/1/trace34 --trace-time http://127.0.0.1:36129/34 > log/1/stdout34 2> log/1/stderr34 === End of file commands.log === Start of file http_server.log 10:30:43.673512 ====> Client connect 10:30:43.673877 accept_connection 3 returned 4 10:30:43.674044 accept_connection 3 returned 0 10:30:43.674169 Read 93 bytes 10:30:43.674251 Process 93 bytes request 10:30:43.674344 Got request: GET /verifiedserver HTTP/1.1 10:30:43.674423 Are-we-friendly question received 10:30:43.674741 Wrote request (93 bytes) input to log/1/server.input 10:30:43.674974 Identifying ourselves as friends 10:30:43.675748 Response sent (56 bytes) and written to log/1/server.response 10:30:43.675932 special request received, no persistency 10:30:43.676056 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42120 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 34 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind34 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind34 test 0035...[HTTP POST binary data with embedded NUL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind35 ../src/curl -q --output log/7/curl35.out --include --trace-ascii log/7/trace35 --trace-time http://127.0.0.1:40129/we/want/35 --data-binary @log/7/test35.txt > log/7/stdout35 2> log/7/stderr35 35: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 35 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind35 ../src/curl -q --output log/7/curl35.out --include --trace-ascii log/7/trace35 --trace-time http://127.0.0.1:40129/we/want/35 --data-binary @log/7/test35.txt > log/7/stdout35 2> log/7/stderr35 === End of file commands.log === Start of file http_server.log 10:30:43.779110 ====> Client connect 10:30:43.779524 accept_connection 3 returned 4 10:30:43.779794 accept_connection 3 returned 0 10:30:43.779975 Read 93 bytes 10:30:43.780081 Process 93 bytes request 10:30:43.780167 Got request: GET /verifiedserver HTTP/1.1 10:30:43.780246 Are-we-friendly question received 10:30:43.780516 Wrote request (93 bytes) input to log/7/server.input 10:30:43.780733 Identifying ourselves as friends 10:30:43.781617 Response sent (56 bytes) and written to log/7/server.response 10:30:43.781772 special request received, no persistency 10:30:43.781854 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46672 * using HTTP/1.x >CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind36 ../src/curl -q --output log/2/curl36.out --include --trace-ascii log/2/trace36 --trace-time http://127.0.0.1:43789/36 > log/2/stdout36 2> log/2/stderr36 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind38 ../src/curl -q --include --trace-ascii log/5/trace38 --trace-time http://127.0.0.1:41733/want/38 -C - --no-include -o log/5/fewl38.txt > log/5/stdout38 2> log/5/stderr38 GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 35 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file test35.txt This is binary data with an embedded NUL byte === End of file test35.txt === Start of file valgrind35 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind35 test 0036...[HTTP GET with bad chunked Transfer-Encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind36 ../src/curl -q --output log/2/curl36.out --include --trace-ascii log/2/trace36 --trace-time http://127.0.0.1:43789/36 > log/2/stdout36 2> log/2/stderr36 36: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 36 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind36 ../src/curl -q --output log/2/curl36.out --include --trace-ascii log/2/trace36 --trace-time http://127.0.0.1:43789/36 > log/2/stdout36 2> log/2/stderr36 === End of file commands.log === Start of file http_server.log 10:30:43.931111 ====> Client connect 10:30:43.931513 accept_connection 3 returned 4 10:30:43.931739 accept_connection 3 returned 0 10:30:43.931901 Read 93 bytes 10:30:43.931993 Process 93 bytes request 10:30:43.932088 Got request: GET /verifiedserver HTTP/1.1 10:30:43.932187 Are-we-friendly question received 10:30:43.932504 Wrote request (93 bytes) input to log/2/server.input 10:30:43.932737 Identifying ourselves as friends 10:30:43.933592 Response sent (56 bytes) and written to log/2/server.response 10:30:43.933766 special request received, no persistency 10:30:43.933861 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36330 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 36 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind36 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind36 test 0038...[HTTP resume request without server supporting it] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind38 ../src/curl -q --include --trace-ascii log/5/trace38 --trace-time http://127.0.0.1:41733/want/38 -C - --no-include -o log/5/fewl38.txt > log/5/stdout38 2> log/5/stderr38 38: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 38 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind38 ../src/curl -q --include --trace-ascii log/5/trace38 --trace-time http://127.0.0.1:41733/want/38 -C - --no-include -o log/5/fewl38.txt > log/5/stdout38 2> log/5/stderr38 === End of file commands.log === Start of file fewl38.txt This text is here to simulate a partly downloaded file to resume download on. === End of file fewl38.txt === Start of file http_server.log 10:30:45.187952 ====> Client connect 10:30:45.188312 accept_connection 3 returned 4 10:30:45.188533 accept_connection 3 returned 0 10:30:45.188687 Read 93 bytes 10:30:45.188782 Process 93 bytes request 10:30:45.188977 Got request: GET /verifiedserver HTTP/1.1 10:30:45.189104 Are-we-friendly question received 10:30:45.189449 Wrote request (93 bytes) input to log/5/server.input 10:30:45.189701 Identifying ourselves as friends 10:30:45.190506 Response sent (56 bytes) and written to log/5/server.response 10:30:45.190625 special request received, no persistency 10:30:45.190701 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 54888 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intacCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind40 ../src/curl -q --output log/4/curl40.out --include --trace-ascii log/4/trace40 --trace-time http://127.0.0.1:36757/we/are/all/twits/40 -L > log/4/stdout40 2> log/4/stderr40 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind41 ../src/curl -q --output log/8/curl41.out --include --trace-ascii log/8/trace41 --trace-time http://127.0.0.1:36007/want/41 -F moo=@boo > log/8/stdout41 2> log/8/stderr41 t === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 38 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind38 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind38 test 0040...[HTTP redirect with whitespace after ? (and conversion)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind40 ../src/curl -q --output log/4/curl40.out --include --trace-ascii log/4/trace40 --trace-time http://127.0.0.1:36757/we/are/all/twits/40 -L > log/4/stdout40 2> log/4/stderr40 40: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 40 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind40 ../src/curl -q --output log/4/curl40.out --include --trace-ascii log/4/trace40 --trace-time http://127.0.0.1:36757/we/are/all/twits/40 -L > log/4/stdout40 2> log/4/stderr40 === End of file commands.log === Start of file http_server.log 10:30:45.452114 ====> Client connect 10:30:45.452628 accept_connection 3 returned 4 10:30:45.453085 accept_connection 3 returned 0 10:30:45.458187 Read 93 bytes 10:30:45.458436 Process 93 bytes request 10:30:45.458543 Got request: GET /verifiedserver HTTP/1.1 10:30:45.458616 Are-we-friendly question received 10:30:45.458938 Wrote request (93 bytes) input to log/4/server.input 10:30:45.459188 Identifying ourselves as friends 10:30:45.461419 Response sent (56 bytes) and written to log/4/server.response 10:30:45.461626 special request received, no persistency 10:30:45.461872 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35592 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 40 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind40 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind40 test 0041...[HTTP formpost with missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind41 ../src/curl -q --output log/8/curl41.out --include --trace-ascii log/8/trace41 --trace-time http://127.0.0.1:36007/want/41 -F moo=@boo > log/8/stdout41 2> log/8/stderr41 curl returned 1, when expecting 26 41: exit FAILED == Contents of files in the log/8/ dir after test 41 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind41 ../src/curl -q --output log/8/curl41.out --include --trace-ascii log/8/trace41 --trace-time http://127.0.0.1:36007/want/41 -F moo=@boo > log/8/stdout41 2> log/8/stderr41 === End of file commands.log === Start of file http_server.log 10:30:44.631572 ====> Client connect 10:30:44.631929 accept_connection 3 returned 4 10:30:44.632185 accept_connection 3 returned 0 10:30:44.632339 Read 93 bytes 10:30:44.632424 Process 93 bytes request 10:30:44.632511 Got request: GET /verifiedserver HTTP/1.1 10:30:44.632575 Are-we-friendly question received 10:30:44.632815 Wrote request (93 bytes) input to log/8/server.input 10:30:44.633132 Identifying ourselves as friends 10:30:44.633876 Response sent (56 bytes) and written to log/8/server.response 10:30:44.633999 special request received, no persistency 10:30:44.634067 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35810 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 41 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind41 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind42 ../src/curl -q --output log/1/curl42.out --include --trace-ascii log/1/trace42 --trace-time http://127.0.0.1:36129/we/are/all/twits/42 -L > log/1/stdout42 2> log/1/stderr42 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind39 ../src/curl -q --output log/3/curl39.out --include --trace-ascii log/3/trace39 --trace-time http://127.0.0.1:36933/we/want/39 -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/3/stdout39 2> log/3/stderr39 d: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind41 test 0042...[HTTP redirect with whitespace in path (and conversion)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind42 ../src/curl -q --output log/1/curl42.out --include --trace-ascii log/1/trace42 --trace-time http://127.0.0.1:36129/we/are/all/twits/42 -L > log/1/stdout42 2> log/1/stderr42 42: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 42 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind42 ../src/curl -q --output log/1/curl42.out --include --trace-ascii log/1/trace42 --trace-time http://127.0.0.1:36129/we/are/all/twits/42 -L > log/1/stdout42 2> log/1/stderr42 === End of file commands.log === Start of file http_server.log 10:30:44.665568 ====> Client connect 10:30:44.665911 accept_connection 3 returned 4 10:30:44.666174 accept_connection 3 returned 0 10:30:44.666317 Read 93 bytes 10:30:44.666387 Process 93 bytes request 10:30:44.666464 Got request: GET /verifiedserver HTTP/1.1 10:30:44.666528 Are-we-friendly question received 10:30:44.666737 Wrote request (93 bytes) input to log/1/server.input 10:30:44.666878 Identifying ourselves as friends 10:30:44.667490 Response sent (56 bytes) and written to log/1/server.response 10:30:44.667615 special request received, no persistency 10:30:44.667678 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42128 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 42 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind42 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind42 test 0039...[HTTP RFC1867-type formposting with filename= and type=] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind39 ../src/curl -q --output log/3/curl39.out --include --trace-ascii log/3/trace39 --trace-time http://127.0.0.1:36933/we/want/39 -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/3/stdout39 2> log/3/stderr39 39: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 39 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind39 ../src/curl -q --output log/3/curl39.out --include --trace-ascii log/3/trace39 --trace-time http://127.0.0.1:36933/we/want/39 -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/3/stdout39 2> log/3/stderr39 === End of file commands.log === Start of file http_server.log 10:30:44.436422 ====> Client connect 10:30:44.436773 accept_connection 3 returned 4 10:30:44.437087 accept_connection 3 returned 0 10:30:44.437277 Read 93 bytes 10:30:44.437422 Process 93 bytes request 10:30:44.437529 Got request: GET /verifiedserver HTTP/1.1 10:30:44.437614 Are-we-friendly question received 10:30:44.437862 Wrote request (93 bytes) input to log/3/server.input 10:30:44.438032 Identifying ourselves as friends 10:30:44.438694 Response sent (56 bytes) and written to log/3/server.response 10:30:44.438832 special request received, no persistency 10:30:44.438907 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42838 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 39 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === EndCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind43 ../src/curl -q --output log/7/curl43.out --include --trace-ascii log/7/trace43 --trace-time http://127.0.0.1:40129/want/43 -L -x 127.0.0.1:40129 > log/7/stdout43 2> log/7/stderr43 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind44 ../src/curl -q --output log/2/curl44.out --include --trace-ascii log/2/trace44 --trace-time http://127.0.0.1:43789/we/want/44 -F name=daniel -F tool=curl -F file=@log/2/test44.txt -H "Expect:" > log/2/stdout44 2> log/2/stderr44 of file server.response === Start of file test39.txt foo bar This is a bar foo bar foo === End of file test39.txt === Start of file valgrind39 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind39 test 0043...[HTTP Location: following over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind43 ../src/curl -q --output log/7/curl43.out --include --trace-ascii log/7/trace43 --trace-time http://127.0.0.1:40129/want/43 -L -x 127.0.0.1:40129 > log/7/stdout43 2> log/7/stderr43 43: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 43 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind43 ../src/curl -q --output log/7/curl43.out --include --trace-ascii log/7/trace43 --trace-time http://127.0.0.1:40129/want/43 -L -x 127.0.0.1:40129 > log/7/stdout43 2> log/7/stderr43 === End of file commands.log === Start of file http_server.log 10:30:44.729696 ====> Client connect 10:30:44.730067 accept_connection 3 returned 4 10:30:44.730256 accept_connection 3 returned 0 10:30:44.731008 Read 93 bytes 10:30:44.731227 Process 93 bytes request 10:30:44.731347 Got request: GET /verifiedserver HTTP/1.1 10:30:44.731418 Are-we-friendly question received 10:30:44.731686 Wrote request (93 bytes) input to log/7/server.input 10:30:44.731864 Identifying ourselves as friends 10:30:44.732356 Response sent (56 bytes) and written to log/7/server.response 10:30:44.732453 special request received, no persistency 10:30:44.732514 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46686 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 43 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind43 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind43 test 0044...[HTTP RFC1867-type formposting without Expect: header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind44 ../src/curl -q --output log/2/curl44.out --include --trace-ascii log/2/trace44 --trace-time http://127.0.0.1:43789/we/want/44 -F name=daniel -F tool=curl -F file=@log/2/test44.txt -H "Expect:" > log/2/stdout44 2> log/2/stderr44 44: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 44 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind44 ../src/curl -q --output log/2/curl44.out --include --trace-ascii log/2/trace44 --trace-time http://127.0.0.1:43789/we/want/44 -F name=daniel -F tool=curl -F file=@log/2/test44.txt -H "Expect:" > log/2/stdout44 2> log/2/stderr44 === End of file commands.log === Start of file http_server.log 10:30:44.849246 ====> Client connect 10:30:44.849640 accept_connection 3 returned 4 10:30:44.849845 accept_connection 3 returned 0 10:30:44.849994 Read 93 bytes 10:30:44.850110 Process 93 bytes request 10:30:44.850221 Got request: GET /verifiedserver HTTP/1.1 10:30:44.850308 Are-we-friendly question received 10:30:44.850593 Wrote request (93 bytes) input to log/2/server.input 10:30:44.850782 Identifying ourselves as friends 10:30:44.851518 Response sent (56 bytes) and written to log/2/server.response 10:30:44.851675 special request received, no persistency 10:30:44.851753 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36332 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 44 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file test44.txt foo- This is a moo- bar === End of file test44.txt === Start of file valgrind44 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool cCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind37 ../src/curl -q --output log/6/curl37.out --include --trace-ascii log/6/trace37 --trace-time http://127.0.0.1:33363/37 > log/6/stdout37 2> log/6/stderr37 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind45 ../src/curl -q --output log/5/curl45.out --include --trace-ascii log/5/trace45 --trace-time 127.0.0.1:41733/want/45 -L > log/5/stdout45 2> log/5/stderr45 ombination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind44 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/6/server/http_server.pid" --logfile "log/6/http_server.log" --logdir "log/6" --portfile log/6/server/http_server.port --config log/6/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 75518 port 33363 * pid http => 75518 75518 test 0037...[HTTP GET with nothing returned from server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind37 ../src/curl -q --output log/6/curl37.out --include --trace-ascii log/6/trace37 --trace-time http://127.0.0.1:33363/37 > log/6/stdout37 2> log/6/stderr37 37: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 37 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind37 ../src/curl -q --output log/6/curl37.out --include --trace-ascii log/6/trace37 --trace-time http://127.0.0.1:33363/37 > log/6/stdout37 2> log/6/stderr37 === End of file commands.log === Start of file http_server.log 10:30:44.291141 Running HTTP IPv4 version on port 33363 10:30:44.292056 Wrote pid 75518 to log/6/server/http_server.pid 10:30:44.292498 Wrote port 33363 to log/6/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 37 === End of file server.cmd === Start of file valgrind37 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind37 test 0045...[simple HTTP Location: without protocol in initial URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind45 ../src/curl -q --output log/5/curl45.out --include --trace-ascii log/5/trace45 --trace-time 127.0.0.1:41733/want/45 -L > log/5/stdout45 2> log/5/stderr45 45: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 45 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind45 ../src/curl -q --output log/5/curl45.out --include --trace-ascii log/5/trace45 --trace-time 127.0.0.1:41733/want/45 -L > log/5/stdout45 2> log/5/stderr45 === End of file commands.log === Start of file http_server.log 10:30:46.089457 ====> Client connect 10:30:46.089961 accept_connection 3 returned 4 10:30:46.090245 accept_connection 3 returned 0 10:30:46.090443 Read 93 bytes 10:30:46.090577 Process 93 bytes request 10:30:46.090701 Got request: GET /verifiedserver HTTP/1.1 10:30:46.090801 Are-we-friendly question received 10:30:46.091128 Wrote request (93 bytes) input to log/5/server.input 10:30:46.091395 Identifying ourselves as friends 10:30:46.092258 Response sent (56 bytes) and written to log/5/server.response 10:30:46.092437 special request received, no persistency 10:30:46.092516 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 54904 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 45 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind45 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i38CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind46 ../src/curl -q --output log/4/curl46.out --include --trace-ascii log/4/trace46 --trace-time domain..tld:36757/want/46 --resolve domain..tld:36757:127.0.0.1 -c log/4/jar46 -b log/4/injar46 > log/4/stdout46 2> log/4/stderr46 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind47 ../src/curl -q --output log/8/curl47.out --include --trace-ascii log/8/trace47 --trace-time http://127.0.0.1:36007/47 -0 > log/8/stdout47 2> log/8/stderr47 6). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind45 setenv TZ = GMT test 0046...[HTTP with bad domain name, get cookies and store in cookie jar] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind46 ../src/curl -q --output log/4/curl46.out --include --trace-ascii log/4/trace46 --trace-time domain..tld:36757/want/46 --resolve domain..tld:36757:127.0.0.1 -c log/4/jar46 -b log/4/injar46 > log/4/stdout46 2> log/4/stderr46 46: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 46 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind46 ../src/curl -q --output log/4/curl46.out --include --trace-ascii log/4/trace46 --trace-time domain..tld:36757/want/46 --resolve domain..tld:36757:127.0.0.1 -c log/4/jar46 -b log/4/injar46 > log/4/stdout46 2> log/4/stderr46 === End of file commands.log === Start of file http_server.log 10:30:46.400076 ====> Client connect 10:30:46.400466 accept_connection 3 returned 4 10:30:46.400645 accept_connection 3 returned 0 10:30:46.402202 Read 93 bytes 10:30:46.402337 Process 93 bytes request 10:30:46.402441 Got request: GET /verifiedserver HTTP/1.1 10:30:46.402522 Are-we-friendly question received 10:30:46.402786 Wrote request (93 bytes) input to log/4/server.input 10:30:46.403005 Identifying ourselves as friends 10:30:46.403882 Response sent (56 bytes) and written to log/4/server.response 10:30:46.404074 special request received, no persistency 10:30:46.404166 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35602 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file injar46 # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This is generated by libcurl! Do not edit. www.fake.come FALSE / FALSE 22147483647 cookiecliente si www.loser.com FALSE / FALSE 22139150993 UID 99 domain..tld FALSE / FALSE 22139150993 mooo indeed #HttpOnly_domain..tld FALSE /want FALSE 22139150993 mooo2 indeed2 domain..tld FALSE /want FALSE 0 empty === End of file injar46 === Start of file server.cmd Testnum 46 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind46 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind46 test 0047...[simple HTTP 1.0 GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind47 ../src/curl -q --output log/8/curl47.out --include --trace-ascii log/8/trace47 --trace-time http://127.0.0.1:36007/47 -0 > log/8/stdout47 2> log/8/stderr47 47: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 47 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind47 ../src/curl -q --output log/8/curl47.out --include --trace-ascii log/8/trace47 --trace-time http://127.0.0.1:36007/47 -0 > log/8/stdout47 2> log/8/stderr47 === End of file commands.log === Start of file http_server.log 10:30:45.575123 ====> Client connect 10:30:45.575487 accept_connection 3 returned 4 10:30:45.575728 accept_connection 3 returned 0 10:30:45.575885 Read 93 bytes 10:30:45.576007 Process 93 bytes request 10:30:45.576137 Got request: GET /verifiedserver HTTP/1.1 10:30:45.576260 Are-we-friendly question received 10:30:45.576589 Wrote request (93 bytes) input to log/8/server.input 10:30:45.576937 Identifying ourselves as friends 10:30:45.577897 Response sent (56 bytes) and written to log/8/server.response 10:30:45.578049 special request received, no persistency 10:30:45.578127 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35818 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 47 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind47 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a correCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind48 ../src/curl -q --output log/1/curl48.out --include --trace-ascii log/1/trace48 --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:36129/48 -G -I http://127.0.0.1:36129/48 > log/1/stdout48 2> log/1/stderr48 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind49 ../src/curl -q --output log/3/curl49.out --include --trace-ascii log/3/trace49 --trace-time http://127.0.0.1:36933/we/are/all/twits/49 -L > log/3/stdout49 2> log/3/stderr49 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind50 ../src/curl -q --output log/7/curl50.out --include --trace-ascii log/7/trace50 --trace-time http://127.0.0.1:40129/we/are/all/twits/50 -L > log/7/stdout50 2> log/7/stderr50 sponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind47 test 0048...[HTTP with -d and -G and -I] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind48 ../src/curl -q --output log/1/curl48.out --include --trace-ascii log/1/trace48 --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:36129/48 -G -I http://127.0.0.1:36129/48 > log/1/stdout48 2> log/1/stderr48 48: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 48 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind48 ../src/curl -q --output log/1/curl48.out --include --trace-ascii log/1/trace48 --trace-time -d "foo=moo&moo=poo" http://127.0.0.1:36129/48 -G -I http://127.0.0.1:36129/48 > log/1/stdout48 2> log/1/stderr48 === End of file commands.log === Start of file http_server.log 10:30:45.624024 ====> Client connect 10:30:45.624436 accept_connection 3 returned 4 10:30:45.624649 accept_connection 3 returned 0 10:30:45.624787 Read 93 bytes 10:30:45.625029 Process 93 bytes request 10:30:45.625143 Got request: GET /verifiedserver HTTP/1.1 10:30:45.625216 Are-we-friendly question received 10:30:45.625540 Wrote request (93 bytes) input to log/1/server.input 10:30:45.625810 Identifying ourselves as friends 10:30:45.626648 Response sent (56 bytes) and written to log/1/server.response 10:30:45.626763 special request received, no persistency 10:30:45.626829 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42144 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 48 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind48 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind48 test 0049...[HTTP follow redirect with ../] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind49 ../src/curl -q --output log/3/curl49.out --include --trace-ascii log/3/trace49 --trace-time http://127.0.0.1:36933/we/are/all/twits/49 -L > log/3/stdout49 2> log/3/stderr49 49: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 49 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind49 ../src/curl -q --output log/3/curl49.out --include --trace-ascii log/3/trace49 --trace-time http://127.0.0.1:36933/we/are/all/twits/49 -L > log/3/stdout49 2> log/3/stderr49 === End of file commands.log === Start of file http_server.log 10:30:45.629334 ====> Client connect 10:30:45.629662 accept_connection 3 returned 4 10:30:45.629878 accept_connection 3 returned 0 10:30:45.630041 Read 93 bytes 10:30:45.630124 Process 93 bytes request 10:30:45.630214 Got request: GET /verifiedserver HTTP/1.1 10:30:45.630282 Are-we-friendly question received 10:30:45.630527 Wrote request (93 bytes) input to log/3/server.input 10:30:45.630733 Identifying ourselves as friends 10:30:45.631561 Response sent (56 bytes) and written to log/3/server.response 10:30:45.631722 special request received, no persistency 10:30:45.631788 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42850 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 49 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind49 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind49 test 0050...[HTTP follow redirect with ../../] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind51 ../src/curl -q --output log/2/curl51.out --include --trace-ascii log/2/trace51 --trace-time http://127.0.0.1:43789/we/are/all/twits/51 -L > log/2/stdout51 2> log/2/stderr51 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind52 ../src/curl -q --output log/6/curl52.out --include --trace-ascii log/6/trace52 --trace-time http://127.0.0.1:33363/we/are/all/twits/52 -L > log/6/stdout52 2> log/6/stderr52 d50 ../src/curl -q --output log/7/curl50.out --include --trace-ascii log/7/trace50 --trace-time http://127.0.0.1:40129/we/are/all/twits/50 -L > log/7/stdout50 2> log/7/stderr50 50: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 50 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind50 ../src/curl -q --output log/7/curl50.out --include --trace-ascii log/7/trace50 --trace-time http://127.0.0.1:40129/we/are/all/twits/50 -L > log/7/stdout50 2> log/7/stderr50 === End of file commands.log === Start of file http_server.log 10:30:45.733816 ====> Client connect 10:30:45.734709 accept_connection 3 returned 4 10:30:45.734967 accept_connection 3 returned 0 10:30:45.735097 Read 93 bytes 10:30:45.735188 Process 93 bytes request 10:30:45.735281 Got request: GET /verifiedserver HTTP/1.1 10:30:45.735348 Are-we-friendly question received 10:30:45.735597 Wrote request (93 bytes) input to log/7/server.input 10:30:45.735770 Identifying ourselves as friends 10:30:45.736481 Response sent (56 bytes) and written to log/7/server.response 10:30:45.736608 special request received, no persistency 10:30:45.736674 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46688 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 50 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind50 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind50 test 0051...[HTTP follow redirect with excessive ../] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind51 ../src/curl -q --output log/2/curl51.out --include --trace-ascii log/2/trace51 --trace-time http://127.0.0.1:43789/we/are/all/twits/51 -L > log/2/stdout51 2> log/2/stderr51 51: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 51 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind51 ../src/curl -q --output log/2/curl51.out --include --trace-ascii log/2/trace51 --trace-time http://127.0.0.1:43789/we/are/all/twits/51 -L > log/2/stdout51 2> log/2/stderr51 === End of file commands.log === Start of file http_server.log 10:30:45.893904 ====> Client connect 10:30:45.894326 accept_connection 3 returned 4 10:30:45.894559 accept_connection 3 returned 0 10:30:45.894723 Read 93 bytes 10:30:45.894827 Process 93 bytes request 10:30:45.894929 Got request: GET /verifiedserver HTTP/1.1 10:30:45.895010 Are-we-friendly question received 10:30:45.895317 Wrote request (93 bytes) input to log/2/server.input 10:30:45.895581 Identifying ourselves as friends 10:30:45.896528 Response sent (56 bytes) and written to log/2/server.response 10:30:45.896727 special request received, no persistency 10:30:45.901046 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36336 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 51 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind51 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind51 test 0052...[HTTP follow redirect with ./-prefix] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind52 ../src/curl -q --output log/6/curl52.out --include --trace-ascii log/6/trace52 --trace-time http://127.0.0.1:33363/we/are/all/twits/52 -L > log/6/stdout52 2> log/6/stderr52 52: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 52 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck -CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind53 ../src/curl -q --output log/5/curl53.out --include --trace-ascii log/5/trace53 --trace-time 127.0.0.1:41733/want/53 -b log/5/injar53 -j > log/5/stdout53 2> log/5/stderr53 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind54 ../src/curl -q --output log/4/curl54.out --include --trace-ascii log/4/trace54 --trace-time http://127.0.0.1:36757/want/54 -L > log/4/stdout54 2> log/4/stderr54 -quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind52 ../src/curl -q --output log/6/curl52.out --include --trace-ascii log/6/trace52 --trace-time http://127.0.0.1:33363/we/are/all/twits/52 -L > log/6/stdout52 2> log/6/stderr52 === End of file commands.log === Start of file http_server.log 10:30:45.979057 ====> Client connect 10:30:45.979429 accept_connection 3 returned 4 10:30:45.979654 accept_connection 3 returned 0 10:30:45.979838 Read 93 bytes 10:30:45.979961 Process 93 bytes request 10:30:45.980089 Got request: GET /verifiedserver HTTP/1.1 10:30:45.980204 Are-we-friendly question received 10:30:45.980583 Wrote request (93 bytes) input to log/6/server.input 10:30:45.980929 Identifying ourselves as friends 10:30:45.981969 Response sent (56 bytes) and written to log/6/server.response 10:30:45.982156 special request received, no persistency 10:30:45.982260 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 46702 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 52 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind52 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind52 test 0053...[HTTP, junk session cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind53 ../src/curl -q --output log/5/curl53.out --include --trace-ascii log/5/trace53 --trace-time 127.0.0.1:41733/want/53 -b log/5/injar53 -j > log/5/stdout53 2> log/5/stderr53 53: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 53 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind53 ../src/curl -q --output log/5/curl53.out --include --trace-ascii log/5/trace53 --trace-time 127.0.0.1:41733/want/53 -b log/5/injar53 -j > log/5/stdout53 2> log/5/stderr53 === End of file commands.log === Start of file http_server.log 10:30:47.125281 ====> Client connect 10:30:47.125626 accept_connection 3 returned 4 10:30:47.125829 accept_connection 3 returned 0 10:30:47.126023 Read 93 bytes 10:30:47.126142 Process 93 bytes request 10:30:47.126244 Got request: GET /verifiedserver HTTP/1.1 10:30:47.126326 Are-we-friendly question received 10:30:47.126593 Wrote request (93 bytes) input to log/5/server.input 10:30:47.126827 Identifying ourselves as friends 10:30:47.127803 Response sent (56 bytes) and written to log/5/server.response 10:30:47.127967 special request received, no persistency 10:30:47.128053 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 54906 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file injar53 127.0.0.1 FALSE / FALSE 22139150993 mooo indeed 127.0.0.1 FALSE / FALSE 0 moo1 indeed 127.0.0.1 FALSE / FALSE 1 moo2 indeed === End of file injar53 === Start of file server.cmd Testnum 53 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind53 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind53 test 0054...[HTTP with blank Location:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind54 ../src/curl -q --output log/4/curl54.out --include --trace-ascii log/4/trace54 --trace-time http://127.0.0.1:36757/want/54 -L > log/4/stdout54 2> log/4/stderr54 54: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 54 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind54 ../src/curl -q --output log/4/curl54.out --include --trace-ascii log/4/trace54 --trace-time http://127.0.0.1:36757/want/54 -L > log/4/stdout54 2> log/4/stderr54 === End of file commands.log CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind55 ../src/curl -q --output log/8/curl55.out --include --trace-ascii log/8/trace55 --trace-time http://127.0.0.1:36007/55 -L > log/8/stdout55 2> log/8/stderr55 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind56 ../src/curl -q --output log/1/curl56.out --include --trace-ascii log/1/trace56 --trace-time -K - 127.0.0.1:36129/that.site.com/56 log/1/stdout56 2> log/1/stderr56 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind57 ../src/curl -q --include --trace-ascii log/3/trace57 --trace-time -w "%{content_type}\n" http://127.0.0.1:36933/57 -o log/3/out57 > log/3/stdout57 2> log/3/stderr57 === Start of file http_server.log 10:30:47.529366 ====> Client connect 10:30:47.529677 accept_connection 3 returned 4 10:30:47.529853 accept_connection 3 returned 0 10:30:47.529971 Read 93 bytes 10:30:47.530058 Process 93 bytes request 10:30:47.530193 Got request: GET /verifiedserver HTTP/1.1 10:30:47.530262 Are-we-friendly question received 10:30:47.530482 Wrote request (93 bytes) input to log/4/server.input 10:30:47.530626 Identifying ourselves as friends 10:30:47.531186 Response sent (56 bytes) and written to log/4/server.response 10:30:47.531295 special request received, no persistency 10:30:47.531353 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35616 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 54 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind54 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind54 test 0055...[HTTP follow redirect with single slash in path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind55 ../src/curl -q --output log/8/curl55.out --include --trace-ascii log/8/trace55 --trace-time http://127.0.0.1:36007/55 -L > log/8/stdout55 2> log/8/stderr55 55: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 55 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind55 ../src/curl -q --output log/8/curl55.out --include --trace-ascii log/8/trace55 --trace-time http://127.0.0.1:36007/55 -L > log/8/stdout55 2> log/8/stderr55 === End of file commands.log === Start of file http_server.log 10:30:46.575866 ====> Client connect 10:30:46.576205 accept_connection 3 returned 4 10:30:46.576407 accept_connection 3 returned 0 10:30:46.576555 Read 93 bytes 10:30:46.576642 Process 93 bytes request 10:30:46.576731 Got request: GET /verifiedserver HTTP/1.1 10:30:46.576916 Are-we-friendly question received 10:30:46.577303 Wrote request (93 bytes) input to log/8/server.input 10:30:46.577608 Identifying ourselves as friends 10:30:46.578529 Response sent (56 bytes) and written to log/8/server.response 10:30:46.578748 special request received, no persistency 10:30:46.578856 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35824 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 55 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind55 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind55 test 0056...[HTTP POST with *HUGE* request and chunked transfer-encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind56 ../src/curl -q --output log/1/curl56.out --include --trace-ascii log/1/trace56 --trace-time -K - 127.0.0.1:36129/that.site.com/56 log/1/stdout56 2> log/1/stderr56 56: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 56 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind56 ../src/curl -q --output log/1/curl56.out --include --trace-ascii log/1/trace56 --trace-time -K - 127.0.0.1:36129/that.site.com/56 log/1/stdout56 2> log/1/stderr56 === End of file commands.log === Start of file http_server.log 10:30:46.590659 ====> Client connect 10:30:46.591058 accept_connection 3 returned 4 10:30:46.591297 accept_connection 3 returned 0 10:30:46.591476 Read 93 bytes 10:30:46.591588 Process 93 bytes request 10:30:46.591688 Got request: GET /verifiedserver HTTP/1.1 10:30:46.591773 Are-we-friendly question received 10:30:46.592078 Wrote request (93 bytes) input to log/1/server.input 10:30:46.592316 Identifying ourselves as friends 10:30:46.597869 Response sent (56 bytes) and written to log/1/server.response 10:30:46.598110 special request received, no persistency 10:30:46.598204 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42150 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 56 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file stdin-for-56 # data "we post this" # # enforce chunky post header "Transfer-Encoding: chunked" # # Set the user-agent using a short-option: -A "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" # === End of file stdin-for-56 === Start of file valgrind56 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind56 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind58 ../src/curl -q --output log/7/curl58.out --include --trace-ascii log/7/trace58 --trace-time http://127.0.0.1:40129/we/want/ -T log/7/58te[]st.txt -g > log/7/stdout58 2> log/7/stderr58 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind59 ../src/curl -q --output log/2/curl59.out --include --trace-ascii log/2/trace59 --trace-time "http://127.0.0.1:43789?mooo/59" > log/2/stdout59 2> log/2/stderr59 test 0057...[HTTP content-type with spaces in] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind57 ../src/curl -q --include --trace-ascii log/3/trace57 --trace-time -w "%{content_type}\n" http://127.0.0.1:36933/57 -o log/3/out57 > log/3/stdout57 2> log/3/stderr57 57: stdout FAILED: --- log/3/check-expected 2025-09-11 10:30:47.799015386 +0000 +++ log/3/check-generated 2025-09-11 10:30:47.795015306 +0000 @@ -1 +0,0 @@ -text/html; charset=ISO-8859-4[CR][LF] == Contents of files in the log/3/ dir after test 57 === Start of file check-expected text/html; charset=ISO-8859-4[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind57 ../src/curl -q --include --trace-ascii log/3/trace57 --trace-time -w "%{content_type}\n" http://127.0.0.1:36933/57 -o log/3/out57 > log/3/stdout57 2> log/3/stderr57 === End of file commands.log === Start of file http_server.log 10:30:46.651869 ====> Client connect 10:30:46.652191 accept_connection 3 returned 4 10:30:46.652448 accept_connection 3 returned 0 10:30:46.652642 Read 93 bytes 10:30:46.652753 Process 93 bytes request 10:30:46.652989 Got request: GET /verifiedserver HTTP/1.1 10:30:46.653089 Are-we-friendly question received 10:30:46.653397 Wrote request (93 bytes) input to log/3/server.input 10:30:46.653659 Identifying ourselves as friends 10:30:46.654498 Response sent (56 bytes) and written to log/3/server.response 10:30:46.654651 special request received, no persistency 10:30:46.654737 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42864 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 57 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind57 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind57 test 0058...[HTTP PUT from file with weird letters] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind58 ../src/curl -q --output log/7/curl58.out --include --trace-ascii log/7/trace58 --trace-time http://127.0.0.1:40129/we/want/ -T log/7/58te[]st.txt -g > log/7/stdout58 2> log/7/stderr58 58: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 58 === Start of file 58te[]st.txt a few bytes === End of file 58te[]st.txt === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind58 ../src/curl -q --output log/7/curl58.out --include --trace-ascii log/7/trace58 --trace-time http://127.0.0.1:40129/we/want/ -T log/7/58te[]st.txt -g > log/7/stdout58 2> log/7/stderr58 === End of file commands.log === Start of file http_server.log 10:30:46.739913 ====> Client connect 10:30:46.740305 accept_connection 3 returned 4 10:30:46.740518 accept_connection 3 returned 0 10:30:46.740655 Read 93 bytes 10:30:46.740744 Process 93 bytes request 10:30:46.740958 Got request: GET /verifiedserver HTTP/1.1 10:30:46.741063 Are-we-friendly question received 10:30:46.741358 Wrote request (93 bytes) input to log/7/server.input 10:30:46.741542 Identifying ourselves as friends 10:30:46.742206 Response sent (56 bytes) and written to log/7/server.response 10:30:46.742350 special request received, no persistency 10:30:46.742418 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46700 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 58 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind58 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind58 test 0059...[HTTP URL with slash but with "parameter"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind60 ../src/curl -q --output log/6/curl60.out --include --trace-ascii log/6/trace60 --trace-time http://127.0.0.1:33363/bzz/60 -T - -H "Content-Length: 1" log/6/stdout60 2> log/6/stderr60 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind61 ../src/curl -q --output log/5/curl61.out --include --trace-ascii log/5/trace61 --trace-time http://127.0.0.1:41733/we/want/61 -c log/5/jar61.txt -H "Host: www.host.foo.com" > log/5/stdout61 2> log/5/stderr61 og-file=log/2/valgrind59 ../src/curl -q --output log/2/curl59.out --include --trace-ascii log/2/trace59 --trace-time "http://127.0.0.1:43789?mooo/59" > log/2/stdout59 2> log/2/stderr59 59: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 59 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind59 ../src/curl -q --output log/2/curl59.out --include --trace-ascii log/2/trace59 --trace-time "http://127.0.0.1:43789?mooo/59" > log/2/stdout59 2> log/2/stderr59 === End of file commands.log === Start of file http_server.log 10:30:46.897383 ====> Client connect 10:30:46.897750 accept_connection 3 returned 4 10:30:46.898354 accept_connection 3 returned 0 10:30:46.898565 Read 93 bytes 10:30:46.898679 Process 93 bytes request 10:30:46.898773 Got request: GET /verifiedserver HTTP/1.1 10:30:46.898852 Are-we-friendly question received 10:30:46.899105 Wrote request (93 bytes) input to log/2/server.input 10:30:46.899270 Identifying ourselves as friends 10:30:46.900047 Response sent (56 bytes) and written to log/2/server.response 10:30:46.900171 special request received, no persistency 10:30:46.900240 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36346 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 59 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind59 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind59 test 0060...[HTTP PUT from stdin with wrong content-length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind60 ../src/curl -q --output log/6/curl60.out --include --trace-ascii log/6/trace60 --trace-time http://127.0.0.1:33363/bzz/60 -T - -H "Content-Length: 1" log/6/stdout60 2> log/6/stderr60 60: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 60 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind60 ../src/curl -q --output log/6/curl60.out --include --trace-ascii log/6/trace60 --trace-time http://127.0.0.1:33363/bzz/60 -T - -H "Content-Length: 1" log/6/stdout60 2> log/6/stderr60 === End of file commands.log === Start of file http_server.log 10:30:47.004442 ====> Client connect 10:30:47.004924 accept_connection 3 returned 4 10:30:47.005194 accept_connection 3 returned 0 10:30:47.005350 Read 93 bytes 10:30:47.005450 Process 93 bytes request 10:30:47.005540 Got request: GET /verifiedserver HTTP/1.1 10:30:47.005623 Are-we-friendly question received 10:30:47.005952 Wrote request (93 bytes) input to log/6/server.input 10:30:47.006239 Identifying ourselves as friends 10:30:47.007186 Response sent (56 bytes) and written to log/6/server.response 10:30:47.007355 special request received, no persistency 10:30:47.007437 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 46708 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 60 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file stdin-for-60 more than one byte === End of file stdin-for-60 === Start of file valgrind60 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind60 setenv TZ = GMT test 0061...[HTTP with various cookies and custom Host:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind61 ../src/curl -q --output log/5/curl61.out --include --trace-ascii log/5/trace61 --trace-time http://127.0.0.1:41733/we/want/61 -c log/5/jar61.txt -H "Host: www.host.foo.com" > log/5/stdout61 2> log/5/stderr61 61: protocol FAILED! There was no content at all in the file log/5/serveCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind63 ../src/curl -q --output log/8/curl63.out --include --trace-ascii log/8/trace63 --trace-time http://we.want.that.site.com/63 > log/8/stdout63 2> log/8/stderr63 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind62 ../src/curl -q --output log/4/curl62.out --include --trace-ascii log/4/trace62 --trace-time http://127.0.0.1:36757/we/want/62 http://127.0.0.1:36757/we/want/62?hoge=fuga -b log/4/jar62.txt -H "Host: www.host.foo.com" > log/4/stdout62 2> log/4/stderr62 r.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 61 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind61 ../src/curl -q --output log/5/curl61.out --include --trace-ascii log/5/trace61 --trace-time http://127.0.0.1:41733/we/want/61 -c log/5/jar61.txt -H "Host: www.host.foo.com" > log/5/stdout61 2> log/5/stderr61 === End of file commands.log === Start of file http_server.log 10:30:48.106828 ====> Client connect 10:30:48.107197 accept_connection 3 returned 4 10:30:48.107413 accept_connection 3 returned 0 10:30:48.107579 Read 93 bytes 10:30:48.107682 Process 93 bytes request 10:30:48.107783 Got request: GET /verifiedserver HTTP/1.1 10:30:48.107862 Are-we-friendly question received 10:30:48.108177 Wrote request (93 bytes) input to log/5/server.input 10:30:48.108379 Identifying ourselves as friends 10:30:48.113352 Response sent (56 bytes) and written to log/5/server.response 10:30:48.113512 special request received, no persistency 10:30:48.113591 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 54916 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 61 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind61 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind61 setenv http_proxy = http://fake:user@127.0.0.1:36007/ test 0063...[HTTP with proxy authorization set in environment] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind63 ../src/curl -q --output log/8/curl63.out --include --trace-ascii log/8/trace63 --trace-time http://we.want.that.site.com/63 > log/8/stdout63 2> log/8/stderr63 63: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 63 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind63 ../src/curl -q --output log/8/curl63.out --include --trace-ascii log/8/trace63 --trace-time http://we.want.that.site.com/63 > log/8/stdout63 2> log/8/stderr63 === End of file commands.log === Start of file http_server.log 10:30:47.565215 ====> Client connect 10:30:47.565555 accept_connection 3 returned 4 10:30:47.565762 accept_connection 3 returned 0 10:30:47.565897 Read 93 bytes 10:30:47.565982 Process 93 bytes request 10:30:47.566066 Got request: GET /verifiedserver HTTP/1.1 10:30:47.566146 Are-we-friendly question received 10:30:47.566401 Wrote request (93 bytes) input to log/8/server.input 10:30:47.566608 Identifying ourselves as friends 10:30:47.567498 Response sent (56 bytes) and written to log/8/server.response 10:30:47.567694 special request received, no persistency 10:30:47.567783 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35836 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 63 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind63 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind63 test 0062...[HTTP, send cookies when using custom Host:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind62 ../src/curl -q --output log/4/curl62.out --include --trace-ascii log/4/trace62 --trace-time http://127.0.0.1:36757/we/want/62 http://127.0.0.1:36757/we/want/62?hoge=fuga -b log/4/jar62.txt -H "Host: www.host.foo.com" > log/4/stdout62 2> log/4/stderr62 62: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 62 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind66 ../src/curl -q --output log/7/curl66.out --include --trace-ascii log/7/trace66 --trace-time http://127.0.0.1:40129/66 --http0.9 > log/7/stdout66 2> log/7/stderr66 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind64 ../src/curl -q --output log/1/curl64.out --include --trace-ascii log/1/trace64 --trace-time http://127.0.0.1:36129/64 -u testuser:testpass --digest > log/1/stdout64 2> log/1/stderr64 --log-file=log/4/valgrind62 ../src/curl -q --output log/4/curl62.out --include --trace-ascii log/4/trace62 --trace-time http://127.0.0.1:36757/we/want/62 http://127.0.0.1:36757/we/want/62?hoge=fuga -b log/4/jar62.txt -H "Host: www.host.foo.com" > log/4/stdout62 2> log/4/stderr62 === End of file commands.log === Start of file http_server.log 10:30:48.469631 ====> Client connect 10:30:48.469986 accept_connection 3 returned 4 10:30:48.470199 accept_connection 3 returned 0 10:30:48.470341 Read 93 bytes 10:30:48.470429 Process 93 bytes request 10:30:48.470513 Got request: GET /verifiedserver HTTP/1.1 10:30:48.470583 Are-we-friendly question received 10:30:48.470829 Wrote request (93 bytes) input to log/4/server.input 10:30:48.471046 Identifying ourselves as friends 10:30:48.471820 Response sent (56 bytes) and written to log/4/server.response 10:30:48.471976 special request received, no persistency 10:30:48.472055 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35622 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file jar62.txt # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. #HttpOnly_.foo.com TRUE /we/want/ FALSE 22147483647 test yes .host.foo.com TRUE /we/want/ FALSE 22147483647 test2 yes .fake.host.foo.com TRUE /we/want/ FALSE 22147483647 test4 yes .foo.com TRUE /moo TRUE 0 test3 maybe === End of file jar62.txt === Start of file server.cmd Testnum 62 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind62 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind62 test 0066...[HTTP GET without headers in the response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind66 ../src/curl -q --output log/7/curl66.out --include --trace-ascii log/7/trace66 --trace-time http://127.0.0.1:40129/66 --http0.9 > log/7/stdout66 2> log/7/stderr66 66: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 66 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind66 ../src/curl -q --output log/7/curl66.out --include --trace-ascii log/7/trace66 --trace-time http://127.0.0.1:40129/66 --http0.9 > log/7/stdout66 2> log/7/stderr66 === End of file commands.log === Start of file http_server.log 10:30:47.734325 ====> Client connect 10:30:47.734781 accept_connection 3 returned 4 10:30:47.735032 accept_connection 3 returned 0 10:30:47.735245 Read 93 bytes 10:30:47.735366 Process 93 bytes request 10:30:47.735486 Got request: GET /verifiedserver HTTP/1.1 10:30:47.735571 Are-we-friendly question received 10:30:47.735908 Wrote request (93 bytes) input to log/7/server.input 10:30:47.736167 Identifying ourselves as friends 10:30:47.737258 Response sent (56 bytes) and written to log/7/server.response 10:30:47.737506 special request received, no persistency 10:30:47.737629 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46708 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 66 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind66 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind66 test 0064...[HTTP with Digest authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind64 ../src/curl -q --output log/1/curl64.out --include --trace-ascii log/1/trace64 --trace-time http://127.0.0.1:36129/64 -u testuser:testpass --digest > log/1/stdout64 2> log/1/stderr64 64: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 64 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.suppCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind65 ../src/curl -q --output log/3/curl65.out --include --trace-ascii log/3/trace65 --trace-time http://127.0.0.1:36933/65 -u testuser:test2pass --digest > log/3/stdout65 2> log/3/stderr65 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind67 ../src/curl -q --output log/2/curl67.out --include --trace-ascii log/2/trace67 --trace-time http://127.0.0.1:43789/67 -u testuser:testpass --ntlm > log/2/stdout67 2> log/2/stderr67 --num-callers=16 --log-file=log/1/valgrind64 ../src/curl -q --output log/1/curl64.out --include --trace-ascii log/1/trace64 --trace-time http://127.0.0.1:36129/64 -u testuser:testpass --digest > log/1/stdout64 2> log/1/stderr64 === End of file commands.log === Start of file http_server.log 10:30:47.645648 ====> Client connect 10:30:47.646086 accept_connection 3 returned 4 10:30:47.646352 accept_connection 3 returned 0 10:30:47.646521 Read 93 bytes 10:30:47.646635 Process 93 bytes request 10:30:47.646753 Got request: GET /verifiedserver HTTP/1.1 10:30:47.646845 Are-we-friendly question received 10:30:47.649709 Wrote request (93 bytes) input to log/1/server.input 10:30:47.649975 Identifying ourselves as friends 10:30:47.650734 Response sent (56 bytes) and written to log/1/server.response 10:30:47.650885 special request received, no persistency 10:30:47.650953 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42156 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 64 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind64 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind64 test 0065...[HTTP with Digest authorization with bad password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind65 ../src/curl -q --output log/3/curl65.out --include --trace-ascii log/3/trace65 --trace-time http://127.0.0.1:36933/65 -u testuser:test2pass --digest > log/3/stdout65 2> log/3/stderr65 65: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 65 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind65 ../src/curl -q --output log/3/curl65.out --include --trace-ascii log/3/trace65 --trace-time http://127.0.0.1:36933/65 -u testuser:test2pass --digest > log/3/stdout65 2> log/3/stderr65 === End of file commands.log === Start of file http_server.log 10:30:47.670229 ====> Client connect 10:30:47.670582 accept_connection 3 returned 4 10:30:47.670789 accept_connection 3 returned 0 10:30:47.670946 Read 93 bytes 10:30:47.671036 Process 93 bytes request 10:30:47.671125 Got request: GET /verifiedserver HTTP/1.1 10:30:47.671201 Are-we-friendly question received 10:30:47.671442 Wrote request (93 bytes) input to log/3/server.input 10:30:47.671674 Identifying ourselves as friends 10:30:47.672506 Response sent (56 bytes) and written to log/3/server.response 10:30:47.672659 special request received, no persistency 10:30:47.672740 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42874 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 65 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind65 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind65 test 0067...[HTTP with NTLM authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind67 ../src/curl -q --output log/2/curl67.out --include --trace-ascii log/2/trace67 --trace-time http://127.0.0.1:43789/67 -u testuser:testpass --ntlm > log/2/stdout67 2> log/2/stderr67 67: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 67 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind67 ../src/curl -q --output log/2/curl67.out --include --trace-ascii log/2/trace67 --trace-time http://127.0.0.1:43789/67 -u testuser:testpass --ntlm > log/2/stdout67 2> log/2/stderr67 === End of file commands.log === Start of file http_server.log 10:30:47.845719 ====> Client connect 10:30:47.846144 accept_connection 3 returned 4 10:30:47.846400 accept_connection 3 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind68 ../src/curl -q --output log/6/curl68.out --include --trace-ascii log/6/trace68 --trace-time http://127.0.0.1:33363/68 -u testuser:testpass --ntlm > log/6/stdout68 2> log/6/stderr68 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind69 ../src/curl -q --output log/5/curl69.out --include --trace-ascii log/5/trace69 --trace-time http://127.0.0.1:41733/69 -u testuser:testpass --anyauth > log/5/stdout69 2> log/5/stderr69 returned 0 10:30:47.846600 Read 93 bytes 10:30:47.846743 Process 93 bytes request 10:30:47.846856 Got request: GET /verifiedserver HTTP/1.1 10:30:47.846950 Are-we-friendly question received 10:30:47.847249 Wrote request (93 bytes) input to log/2/server.input 10:30:47.847460 Identifying ourselves as friends 10:30:47.848241 Response sent (56 bytes) and written to log/2/server.response 10:30:47.848412 special request received, no persistency 10:30:47.848501 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36362 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 67 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind67 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind67 test 0068...[HTTP with NTLM authorization and wrong password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind68 ../src/curl -q --output log/6/curl68.out --include --trace-ascii log/6/trace68 --trace-time http://127.0.0.1:33363/68 -u testuser:testpass --ntlm > log/6/stdout68 2> log/6/stderr68 68: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 68 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind68 ../src/curl -q --output log/6/curl68.out --include --trace-ascii log/6/trace68 --trace-time http://127.0.0.1:33363/68 -u testuser:testpass --ntlm > log/6/stdout68 2> log/6/stderr68 === End of file commands.log === Start of file http_server.log 10:30:48.033686 ====> Client connect 10:30:48.034087 accept_connection 3 returned 4 10:30:48.034308 accept_connection 3 returned 0 10:30:48.034468 Read 93 bytes 10:30:48.034561 Process 93 bytes request 10:30:48.034670 Got request: GET /verifiedserver HTTP/1.1 10:30:48.034762 Are-we-friendly question received 10:30:48.035029 Wrote request (93 bytes) input to log/6/server.input 10:30:48.035247 Identifying ourselves as friends 10:30:48.036042 Response sent (56 bytes) and written to log/6/server.response 10:30:48.036190 special request received, no persistency 10:30:48.036259 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 46722 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 68 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind68 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind68 test 0069...[HTTP with NTLM, Basic or Wild-and-crazy authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind69 ../src/curl -q --output log/5/curl69.out --include --trace-ascii log/5/trace69 --trace-time http://127.0.0.1:41733/69 -u testuser:testpass --anyauth > log/5/stdout69 2> log/5/stderr69 69: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 69 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind69 ../src/curl -q --output log/5/curl69.out --include --trace-ascii log/5/trace69 --trace-time http://127.0.0.1:41733/69 -u testuser:testpass --anyauth > log/5/stdout69 2> log/5/stderr69 === End of file commands.log === Start of file http_server.log 10:30:49.161649 ====> Client connect 10:30:49.162020 accept_connection 3 returned 4 10:30:49.162282 accept_connection 3 returned 0 10:30:49.162453 Read 93 bytes 10:30:49.162562 Process 93 bytes request 10:30:49.162657 Got request: GET /verifiedserver HTTP/1.1 10:30:49.162740 Are-we-friendly question received 10:30:49.163118 Wrote request (93 bytes) input to log/5/server.input 10:30:49.163423 Identifying ourselves as friends 10:30:49.164411 Response sent (56 bytes) and written to log/5/server.responseCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind71 ../src/curl -q --output log/4/curl71.out --include --trace-ascii log/4/trace71 --trace-time http://127.0.0.1:36757/we/want/71 -K - log/4/stdout71 2> log/4/stderr71 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind70 ../src/curl -q --output log/8/curl70.out --include --trace-ascii log/8/trace70 --trace-time http://127.0.0.1:36007/70 -u testuser:testpass --anyauth > log/8/stdout70 2> log/8/stderr70 10:30:49.164649 special request received, no persistency 10:30:49.164738 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 54918 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 69 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind69 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind69 test 0071...[HTTP and -F upload in config file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind71 ../src/curl -q --output log/4/curl71.out --include --trace-ascii log/4/trace71 --trace-time http://127.0.0.1:36757/we/want/71 -K - log/4/stdout71 2> log/4/stderr71 71: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 71 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind71 ../src/curl -q --output log/4/curl71.out --include --trace-ascii log/4/trace71 --trace-time http://127.0.0.1:36757/we/want/71 -K - log/4/stdout71 2> log/4/stderr71 === End of file commands.log === Start of file http_server.log 10:30:49.538148 ====> Client connect 10:30:49.538576 accept_connection 3 returned 4 10:30:49.538791 accept_connection 3 returned 0 10:30:49.538958 Read 93 bytes 10:30:49.539084 Process 93 bytes request 10:30:49.539205 Got request: GET /verifiedserver HTTP/1.1 10:30:49.539318 Are-we-friendly question received 10:30:49.539562 Wrote request (93 bytes) input to log/4/server.input 10:30:49.539974 Identifying ourselves as friends 10:30:49.545857 Response sent (56 bytes) and written to log/4/server.response 10:30:49.546006 special request received, no persistency 10:30:49.546079 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35632 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 71 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file stdin-for-71 -F name=daniel -F tool=curl -F file=@log/4/test71.txt user-agent = "" === End of file stdin-for-71 === Start of file test71.txt foo- This is a moo- bar === End of file test71.txt === Start of file valgrind71 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind71 test 0070...[HTTP with Digest *OR* NTLM authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind70 ../src/curl -q --output log/8/curl70.out --include --trace-ascii log/8/trace70 --trace-time http://127.0.0.1:36007/70 -u testuser:testpass --anyauth > log/8/stdout70 2> log/8/stderr70 70: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 70 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind70 ../src/curl -q --output log/8/curl70.out --include --trace-ascii log/8/trace70 --trace-time http://127.0.0.1:36007/70 -u testuser:testpass --anyauth > log/8/stdout70 2> log/8/stderr70 === End of file commands.log === Start of file http_server.log 10:30:48.519060 ====> Client connect 10:30:48.519559 accept_connection 3 returned 4 10:30:48.519807 accept_connection 3 returned 0 10:30:48.520006 Read 93 bytes 10:30:48.520136 Process 93 bytes request 10:30:48.520249 Got request: GET /verifiedserver HTTP/1.1 10:30:48.520363 Are-we-friendly question received 10:30:48.520713 Wrote request (93 bytes) input to log/8/server.input 10:30:48.521470 Identifying ourselves as friends 10:30:48.522635 Response sent (56 bytes) and written to log/8/server.response 10:30:48.522830 special request received, no persistency 10:30:48.522922 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind73 ../src/curl -q --output log/1/curl73.out --include --trace-ascii log/1/trace73 --trace-time http://127.0.0.1:36129/we/want/73 -c log/1/jar73.txt -H "Host: host.NOT_DISCLOSED.se" > log/1/stdout73 2> log/1/stderr73 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind72 ../src/curl -q --output log/7/curl72.out --include --trace-ascii log/7/trace72 --trace-time http://127.0.0.1:40129/72 -u testuser:testpass --anyauth > log/7/stdout72 2> log/7/stderr72 007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35840 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 70 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind70 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind70 test 0073...[HTTP, receive cookies when using custom Host:, domain using only two dots] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind73 ../src/curl -q --output log/1/curl73.out --include --trace-ascii log/1/trace73 --trace-time http://127.0.0.1:36129/we/want/73 -c log/1/jar73.txt -H "Host: host.NOT_DISCLOSED.se" > log/1/stdout73 2> log/1/stderr73 73: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 73 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind73 ../src/curl -q --output log/1/curl73.out --include --trace-ascii log/1/trace73 --trace-time http://127.0.0.1:36129/we/want/73 -c log/1/jar73.txt -H "Host: host.NOT_DISCLOSED.se" > log/1/stdout73 2> log/1/stderr73 === End of file commands.log === Start of file http_server.log 10:30:48.714092 ====> Client connect 10:30:48.714419 accept_connection 3 returned 4 10:30:48.714963 accept_connection 3 returned 0 10:30:48.715132 Read 93 bytes 10:30:48.715243 Process 93 bytes request 10:30:48.715340 Got request: GET /verifiedserver HTTP/1.1 10:30:48.715433 Are-we-friendly question received 10:30:48.715745 Wrote request (93 bytes) input to log/1/server.input 10:30:48.715921 Identifying ourselves as friends 10:30:48.717029 Response sent (56 bytes) and written to log/1/server.response 10:30:48.717185 special request received, no persistency 10:30:48.717264 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42158 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 73 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind73 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind73 test 0072...[HTTP with Digest *OR* Basic authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind72 ../src/curl -q --output log/7/curl72.out --include --trace-ascii log/7/trace72 --trace-time http://127.0.0.1:40129/72 -u testuser:testpass --anyauth > log/7/stdout72 2> log/7/stderr72 72: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 72 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind72 ../src/curl -q --output log/7/curl72.out --include --trace-ascii log/7/trace72 --trace-time http://127.0.0.1:40129/72 -u testuser:testpass --anyauth > log/7/stdout72 2> log/7/stderr72 === End of file commands.log === Start of file http_server.log 10:30:48.624118 ====> Client connect 10:30:48.624549 accept_connection 3 returned 4 10:30:48.624907 accept_connection 3 returned 0 10:30:48.625134 Read 93 bytes 10:30:48.625244 Process 93 bytes request 10:30:48.625356 Got request: GET /verifiedserver HTTP/1.1 10:30:48.625441 Are-we-friendly question received 10:30:48.625701 Wrote request (93 bytes) input to log/7/server.input 10:30:48.625873 Identifying ourselves as friends 10:30:48.626595 Response sent (56 bytes) and written to log/7/server.response 10:30:48.626763 special request received, no persistency 10:30:48.626856 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46710 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] *CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind75 ../src/curl -q --include --trace-ascii log/2/trace75 --trace-time "http://a-site-never-accessed.example.org/[2-1]" -o "log/2/weee#1.dump" --stderr - > log/2/stdout75 2> log/2/stderr75 Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 72 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind72 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind72 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind74 ../src/curl -q --include --trace-ascii log/3/trace74 --trace-time "http://127.0.0.1:36933/{74,740001}" -o "log/3/dumpit#1.dump" > log/3/stdout74 2> log/3/stderr74 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind76 ../src/curl -q --output log/6/curl76.out --include --trace-ascii log/6/trace76 --trace-time http://127.0.0.1:33363/76 -u testuser:testpass --anyauth > log/6/stdout76 2> log/6/stderr76 test 0075...[HTTP, urlglob retrieval with bad range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind75 ../src/curl -q --include --trace-ascii log/2/trace75 --trace-time "http://a-site-never-accessed.example.org/[2-1]" -o "log/2/weee#1.dump" --stderr - > log/2/stdout75 2> log/2/stderr75 75: stdout FAILED: --- log/2/check-expected 2025-09-11 10:30:49.855056313 +0000 +++ log/2/check-generated 2025-09-11 10:30:49.855056313 +0000 @@ -1,3 +0,0 @@ -curl: (3) bad range in URL position 47:[CR][LF] -http://a-site-never-accessed.example.org/[2-1][CR][LF] - ^[CR][LF] == Contents of files in the log/2/ dir after test 75 === Start of file check-expected curl: (3) bad range in URL position 47:[CR][LF] http://a-site-never-accessed.example.org/[2-1][CR][LF] ^[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind75 ../src/curl -q --include --trace-ascii log/2/trace75 --trace-time "http://a-site-never-accessed.example.org/[2-1]" -o "log/2/weee#1.dump" --stderr - > log/2/stdout75 2> log/2/stderr75 === End of file commands.log === Start of file server.cmd Testnum 75 === End of file server.cmd === Start of file valgrind75 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind75 test 0074...[HTTP, urlglob {}-retrieval and -o #[num] usage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind74 ../src/curl -q --include --trace-ascii log/3/trace74 --trace-time "http://127.0.0.1:36933/{74,740001}" -o "log/3/dumpit#1.dump" > log/3/stdout74 2> log/3/stderr74 74: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 74 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind74 ../src/curl -q --include --trace-ascii log/3/trace74 --trace-time "http://127.0.0.1:36933/{74,740001}" -o "log/3/dumpit#1.dump" > log/3/stdout74 2> log/3/stderr74 === End of file commands.log === Start of file http_server.log 10:30:48.717544 ====> Client connect 10:30:48.718361 accept_connection 3 returned 4 10:30:48.718622 accept_connection 3 returned 0 10:30:48.718769 Read 93 bytes 10:30:48.718863 Process 93 bytes request 10:30:48.718957 Got request: GET /verifiedserver HTTP/1.1 10:30:48.719040 Are-we-friendly question received 10:30:48.719291 Wrote request (93 bytes) input to log/3/server.input 10:30:48.719486 Identifying ourselves as friends 10:30:48.720203 Response sent (56 bytes) and written to log/3/server.response 10:30:48.720361 special request received, no persistency 10:30:48.720429 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42890 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 74 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind74 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind74 test 0076...[HTTP with comma-separated WWW-Authenticate header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind76 ../src/curl -q --output log/6/curl76.out --include --trace-ascii log/6/trace76 --trace-time http://127.0.0.1:33363/76 -u testuser:testpass --anyauth > log/6/stdout76 2> log/6/stderr76 76: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 76 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind76 ../src/curl -q --output log/6/curl76.out --include --trace-ascii log/6/trace76 --trace-time http://127.0.0.1:33363/76 -u testuser:testpass --anyauth > log/6/stdout76 2> log/6/stderr76 === End of file commands.log === Start of file http_server.log 10:30:49.111402 ====> Client connect 10:30:49.111761 accept_connection 3 returned 4 10:30:49.112006 accept_connection 3 returned 0 10:30:49.112195 Read 93 bytes 10:30:49.112318 Process 93 bytes request 10:30:49.112438 Got request: GET /verifiedserver HTTP/1.1 10:30:49.112549 Are-CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind77 ../src/curl -q --output log/5/curl77.out --include --trace-ascii log/5/trace77 --trace-time http://127.0.0.1:41733/77 -z "dec 12 12:00:00 1999 GMT" > log/5/stdout77 2> log/5/stderr77 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind79 ../src/curl -q --output log/8/curl79.out --include --trace-ascii log/8/trace79 --trace-time ftp://127.0.0.1:36007/we/want/that/page/79 -x 127.0.0.1:36007 > log/8/stdout79 2> log/8/stderr79 we-friendly question received 10:30:49.112980 Wrote request (93 bytes) input to log/6/server.input 10:30:49.113245 Identifying ourselves as friends 10:30:49.114184 Response sent (56 bytes) and written to log/6/server.response 10:30:49.114367 special request received, no persistency 10:30:49.114460 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 46726 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 76 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind76 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind76 test 0077...[HTTP with -z "older date"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind77 ../src/curl -q --output log/5/curl77.out --include --trace-ascii log/5/trace77 --trace-time http://127.0.0.1:41733/77 -z "dec 12 12:00:00 1999 GMT" > log/5/stdout77 2> log/5/stderr77 77: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 77 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind77 ../src/curl -q --output log/5/curl77.out --include --trace-ascii log/5/trace77 --trace-time http://127.0.0.1:41733/77 -z "dec 12 12:00:00 1999 GMT" > log/5/stdout77 2> log/5/stderr77 === End of file commands.log === Start of file http_server.log 10:30:50.320588 ====> Client connect 10:30:50.321640 accept_connection 3 returned 4 10:30:50.321843 accept_connection 3 returned 0 10:30:50.322026 Read 93 bytes 10:30:50.322154 Process 93 bytes request 10:30:50.322245 Got request: GET /verifiedserver HTTP/1.1 10:30:50.322317 Are-we-friendly question received 10:30:50.322555 Wrote request (93 bytes) input to log/5/server.input 10:30:50.322765 Identifying ourselves as friends 10:30:50.323723 Response sent (56 bytes) and written to log/5/server.response 10:30:50.323909 special request received, no persistency 10:30:50.323982 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 54930 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 77 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind77 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind77 test 0079...[FTP over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind79 ../src/curl -q --output log/8/curl79.out --include --trace-ascii log/8/trace79 --trace-time ftp://127.0.0.1:36007/we/want/that/page/79 -x 127.0.0.1:36007 > log/8/stdout79 2> log/8/stderr79 79: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 79 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind79 ../src/curl -q --output log/8/curl79.out --include --trace-ascii log/8/trace79 --trace-time ftp://127.0.0.1:36007/we/want/that/page/79 -x 127.0.0.1:36007 > log/8/stdout79 2> log/8/stderr79 === End of file commands.log === Start of file http_server.log 10:30:49.614892 ====> Client connect 10:30:49.615321 accept_connection 3 returned 4 10:30:49.615539 accept_connection 3 returned 0 10:30:49.615722 Read 93 bytes 10:30:49.615857 Process 93 bytes request 10:30:49.615955 Got request: GET /verifiedserver HTTP/1.1 10:30:49.616034 Are-we-friendly question received 10:30:49.616295 Wrote request (93 bytes) input to log/8/server.input 10:30:49.616489 Identifying ourselves as friends 10:30:49.617518 Response sent (56 bytes) and written to log/8/server.response 10:30:49.617719 special request received, no persistency 10:30:49.617834 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * EstaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind78 ../src/curl -q --output log/4/curl78.out --include --trace-ascii log/4/trace78 --trace-time http://127.0.0.1:36757/78 -z "dec 12 11:00:00 1999 GMT" > log/4/stdout78 2> log/4/stderr78 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind81 ../src/curl -q --output log/7/curl81.out --include --trace-ascii log/7/trace81 --trace-time http://127.0.0.1:40129/81 --proxy-user testuser:testpass -x http://127.0.0.1:40129 --proxy-ntlm > log/7/stdout81 2> log/7/stderr81 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind82 ../src/curl -q --output log/2/curl82.out --include --trace-ascii log/2/trace82 --trace-time http://127.0.0.1:43789/82 --proxy-user testuser:testpass -x http://127.0.0.1:43789 > log/2/stdout82 2> log/2/stderr82 blished connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 35846 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 79 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind79 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind79 test 0078...[HTTP with -z "newer date"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind78 ../src/curl -q --output log/4/curl78.out --include --trace-ascii log/4/trace78 --trace-time http://127.0.0.1:36757/78 -z "dec 12 11:00:00 1999 GMT" > log/4/stdout78 2> log/4/stderr78 78: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 78 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind78 ../src/curl -q --output log/4/curl78.out --include --trace-ascii log/4/trace78 --trace-time http://127.0.0.1:36757/78 -z "dec 12 11:00:00 1999 GMT" > log/4/stdout78 2> log/4/stderr78 === End of file commands.log === Start of file http_server.log 10:30:50.588130 ====> Client connect 10:30:50.588466 accept_connection 3 returned 4 10:30:50.588679 accept_connection 3 returned 0 10:30:50.588948 Read 93 bytes 10:30:50.589064 Process 93 bytes request 10:30:50.589176 Got request: GET /verifiedserver HTTP/1.1 10:30:50.589259 Are-we-friendly question received 10:30:50.589727 Wrote request (93 bytes) input to log/4/server.input 10:30:50.589996 Identifying ourselves as friends 10:30:50.590903 Response sent (56 bytes) and written to log/4/server.response 10:30:50.591089 special request received, no persistency 10:30:50.591171 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35634 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 78 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind78 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind78 test 0081...[HTTP with proxy using NTLM authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind81 ../src/curl -q --output log/7/curl81.out --include --trace-ascii log/7/trace81 --trace-time http://127.0.0.1:40129/81 --proxy-user testuser:testpass -x http://127.0.0.1:40129 --proxy-ntlm > log/7/stdout81 2> log/7/stderr81 81: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 81 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind81 ../src/curl -q --output log/7/curl81.out --include --trace-ascii log/7/trace81 --trace-time http://127.0.0.1:40129/81 --proxy-user testuser:testpass -x http://127.0.0.1:40129 --proxy-ntlm > log/7/stdout81 2> log/7/stderr81 === End of file commands.log === Start of file http_server.log 10:30:49.676621 ====> Client connect 10:30:49.677552 accept_connection 3 returned 4 10:30:49.677876 accept_connection 3 returned 0 10:30:49.680213 Read 93 bytes 10:30:49.680456 Process 93 bytes request 10:30:49.680617 Got request: GET /verifiedserver HTTP/1.1 10:30:49.680800 Are-we-friendly question received 10:30:49.681223 Wrote request (93 bytes) input to log/7/server.input 10:30:49.681506 Identifying ourselves as friends 10:30:49.682366 Response sent (56 bytes) and written to log/7/server.response 10:30:49.682527 special request received, no persistency 10:30:49.682600 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46724 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left iCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind84 ../src/curl -q --output log/6/curl84.out --include --trace-ascii log/6/trace84 --trace-time http://127.0.0.1:33363/we/want/that/page/84 -x 127.0.0.1:33363 --user iam:myself > log/6/stdout84 2> log/6/stderr84 ntact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 81 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind81 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind81 test 0082...[HTTP with proxy requiring NTLM, but we send Basic] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind82 ../src/curl -q --output log/2/curl82.out --include --trace-ascii log/2/trace82 --trace-time http://127.0.0.1:43789/82 --proxy-user testuser:testpass -x http://127.0.0.1:43789 > log/2/stdout82 2> log/2/stderr82 82: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 82 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind82 ../src/curl -q --output log/2/curl82.out --include --trace-ascii log/2/trace82 --trace-time http://127.0.0.1:43789/82 --proxy-user testuser:testpass -x http://127.0.0.1:43789 > log/2/stdout82 2> log/2/stderr82 === End of file commands.log === Start of file http_server.log 10:30:49.733512 ====> Client connect 10:30:49.733844 accept_connection 3 returned 4 10:30:49.734037 accept_connection 3 returned 0 10:30:49.734189 Read 93 bytes 10:30:49.734299 Process 93 bytes request 10:30:49.734394 Got request: GET /verifiedserver HTTP/1.1 10:30:49.734473 Are-we-friendly question received 10:30:49.734735 Wrote request (93 bytes) input to log/2/server.input 10:30:49.734935 Identifying ourselves as friends 10:30:49.735631 Response sent (56 bytes) and written to log/2/server.response 10:30:49.735779 special request received, no persistency 10:30:49.735852 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36370 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 82 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind82 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind82 test 0084...[HTTP over proxy with site authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind84 ../src/curl -q --output log/6/curl84.out --include --trace-ascii log/6/trace84 --trace-time http://127.0.0.1:33363/we/want/that/page/84 -x 127.0.0.1:33363 --user iam:myself > log/6/stdout84 2> log/6/stderr84 84: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 84 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind84 ../src/curl -q --output log/6/curl84.out --include --trace-ascii log/6/trace84 --trace-time http://127.0.0.1:33363/we/want/that/page/84 -x 127.0.0.1:33363 --user iam:myself > log/6/stdout84 2> log/6/stderr84 === End of file commands.log === Start of file http_server.log 10:30:50.195556 ====> Client connect 10:30:50.195852 accept_connection 3 returned 4 10:30:50.196029 accept_connection 3 returned 0 10:30:50.196170 Read 93 bytes 10:30:50.196267 Process 93 bytes request 10:30:50.196368 Got request: GET /verifiedserver HTTP/1.1 10:30:50.196454 Are-we-friendly question received 10:30:50.196702 Wrote request (93 bytes) input to log/6/server.input 10:30:50.197133 Identifying ourselves as friends 10:30:50.197979 Response sent (56 bytes) and written to log/6/server.response 10:30:50.205626 special request received, no persistency 10:30:50.205835 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 38780 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 84 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file servCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind85 ../src/curl -q --output log/5/curl85.out --include --trace-ascii log/5/trace85 --trace-time http://127.0.0.1:41733/we/want/that/page/85 -x 127.0.0.1:41733 --user iam:myself --proxy-user testing:this > log/5/stdout85 2> log/5/stderr85 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind86 ../src/curl -q --include --trace-ascii log/8/trace86 --trace-time "http://127.0.0.1:36007/[860001-860003]" -o "log/8/dumpit#1.dump" > log/8/stdout86 2> log/8/stderr86 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind87 ../src/curl -q --include --trace-ascii log/4/trace87 --trace-time "http://127.0.0.1:36757/[870001-870002]" -o "log/4/dumpit87-#2.dump" > log/4/stdout87 2> log/4/stderr87 er.response === Start of file valgrind84 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind84 test 0085...[HTTP over proxy with site and proxy authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind85 ../src/curl -q --output log/5/curl85.out --include --trace-ascii log/5/trace85 --trace-time http://127.0.0.1:41733/we/want/that/page/85 -x 127.0.0.1:41733 --user iam:myself --proxy-user testing:this > log/5/stdout85 2> log/5/stderr85 85: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 85 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind85 ../src/curl -q --output log/5/curl85.out --include --trace-ascii log/5/trace85 --trace-time http://127.0.0.1:41733/we/want/that/page/85 -x 127.0.0.1:41733 --user iam:myself --proxy-user testing:this > log/5/stdout85 2> log/5/stderr85 === End of file commands.log === Start of file http_server.log 10:30:51.282961 ====> Client connect 10:30:51.283326 accept_connection 3 returned 4 10:30:51.283519 accept_connection 3 returned 0 10:30:51.283653 Read 93 bytes 10:30:51.283732 Process 93 bytes request 10:30:51.283818 Got request: GET /verifiedserver HTTP/1.1 10:30:51.283894 Are-we-friendly question received 10:30:51.284104 Wrote request (93 bytes) input to log/5/server.input 10:30:51.284278 Identifying ourselves as friends 10:30:51.289301 Response sent (56 bytes) and written to log/5/server.response 10:30:51.289466 special request received, no persistency 10:30:51.289544 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 44690 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 85 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind85 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind85 test 0086...[HTTP, urlglob []-retrieval and -o #[num] usage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind86 ../src/curl -q --include --trace-ascii log/8/trace86 --trace-time "http://127.0.0.1:36007/[860001-860003]" -o "log/8/dumpit#1.dump" > log/8/stdout86 2> log/8/stderr86 86: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 86 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind86 ../src/curl -q --include --trace-ascii log/8/trace86 --trace-time "http://127.0.0.1:36007/[860001-860003]" -o "log/8/dumpit#1.dump" > log/8/stdout86 2> log/8/stderr86 === End of file commands.log === Start of file http_server.log 10:30:50.475431 ====> Client connect 10:30:50.475805 accept_connection 3 returned 4 10:30:50.476057 accept_connection 3 returned 0 10:30:50.476224 Read 93 bytes 10:30:50.476328 Process 93 bytes request 10:30:50.476417 Got request: GET /verifiedserver HTTP/1.1 10:30:50.476485 Are-we-friendly question received 10:30:50.476850 Wrote request (93 bytes) input to log/8/server.input 10:30:50.477103 Identifying ourselves as friends 10:30:50.477811 Response sent (56 bytes) and written to log/8/server.response 10:30:50.477946 special request received, no persistency 10:30:50.478013 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 43286 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 86 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind86 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind86 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind88 ../src/curl -q --output log/7/curl88.out --include --trace-ascii log/7/trace88 --trace-time http://127.0.0.1:40129/88 -T log/7/put88 -u testuser:testpass --digest > log/7/stdout88 2> log/7/stderr88 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind80 ../src/curl -q --output log/1/curl80.out --include --trace-ascii log/1/trace80 --trace-time http://test.80:36129/we/want/that/page/80 -p --proxy1.0 127.0.0.1:41917 --user iam:myself --proxy-user youare:yourself -A "" > log/1/stdout80 2> log/1/stderr80 test 0087...[urlglob with out of range -o #[num] usage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind87 ../src/curl -q --include --trace-ascii log/4/trace87 --trace-time "http://127.0.0.1:36757/[870001-870002]" -o "log/4/dumpit87-#2.dump" > log/4/stdout87 2> log/4/stderr87 87: output (log/4/dumpit87-#2.dump) FAILED: --- log/4/check-expected 2025-09-11 10:30:51.623091507 +0000 +++ log/4/check-generated 2025-09-11 10:30:51.623091507 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 16[CR][LF] -[CR][LF] -two is nice too[LF] == Contents of files in the log/4/ dir after test 87 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 16[CR][LF] [CR][LF] two is nice too[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind87 ../src/curl -q --include --trace-ascii log/4/trace87 --trace-time "http://127.0.0.1:36757/[870001-870002]" -o "log/4/dumpit87-#2.dump" > log/4/stdout87 2> log/4/stderr87 === End of file commands.log === Start of file http_server.log 10:30:51.489935 ====> Client connect 10:30:51.490279 accept_connection 3 returned 4 10:30:51.490467 accept_connection 3 returned 0 10:30:51.490618 Read 93 bytes 10:30:51.490725 Process 93 bytes request 10:30:51.490813 Got request: GET /verifiedserver HTTP/1.1 10:30:51.490875 Are-we-friendly question received 10:30:51.491126 Wrote request (93 bytes) input to log/4/server.input 10:30:51.491352 Identifying ourselves as friends 10:30:51.492056 Response sent (56 bytes) and written to log/4/server.response 10:30:51.492173 special request received, no persistency 10:30:51.492239 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 42120 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 87 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind87 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind87 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/1/server/http2_server.pid" --logfile "log/1/http2_server.log" --logdir "log/1" --portfile log/1/server/http2_server.port --config log/1/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 78259 port 41917 * pid http-proxy => 78259 78259 test 0080...[HTTP 1.0 CONNECT with proxytunnel and proxy+host Basic authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind80 ../src/curl -q --output log/1/curl80.out --include --trace-ascii log/1/trace80 --trace-time http://test.80:36129/we/want/that/page/80 -p --proxy1.0 127.0.0.1:41917 --user iam:myself --proxy-user youare:yourself -A "" > log/1/stdout80 2> log/1/stderr80 80: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 80 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind80 ../src/curl -q --output log/1/curl80.out --include --trace-ascii log/1/trace80 --trace-time http://test.80:36129/we/want/that/page/80 -p --proxy1.0 127.0.0.1:41917 --user iam:myself --proxy-user youare:yourself -A "" > log/1/stdout80 2> log/1/stderr80 === End of file commands.log === Start of file http2_server.log 10:30:50.880671 Run as proxy, CONNECT to host 127.0.0.1 10:30:50.881672 Running HTTP IPv4 version on port 41917 10:30:50.882233 Wrote pid 78259 to log/1/server/http2_server.pid 10:30:50.882643 Wrote port 41917 to log/1/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 10:30:49.633383 ====> Client connect 10:30:49.633759 accept_connection 3 returned 4 10:30:49.633968 accept_connection 3 returned 0 10:30:49.634108 Read 93 bytes 10:30:49.634196 Process 93 bytes request 10:30:49.634290 Got request: GET /verifiedserver HTTP/1.1 10:30:49.634371 Are-we-friendly question received 10:30:49.634639 Wrote request (93 bytes) input to log/1/server.input 10:30:49.634837 Identifying ourselves as friends 10:30:49.635556 Response sent (56 bytes) and written to log/1/server.response 10:30:49.635677 special request received, no persistency 10:30:49.635747 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42162 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 80 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind80 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind89 ../src/curl -q --output log/2/curl89.out --include --trace-ascii log/2/trace89 --trace-time http://127.0.0.1:43789/89 -u testuser:testpass --ntlm -L > log/2/stdout89 2> log/2/stderr89 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind83 ../src/curl -q --output log/3/curl83.out --include --trace-ascii log/3/trace83 --trace-time http://test.83:36933/we/want/that/page/83 -p -x 127.0.0.1:33181 --user 'iam:my:;self' > log/3/stdout83 2> log/3/stderr83 package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind80 test 0088...[HTTP PUT with Digest authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind88 ../src/curl -q --output log/7/curl88.out --include --trace-ascii log/7/trace88 --trace-time http://127.0.0.1:40129/88 -T log/7/put88 -u testuser:testpass --digest > log/7/stdout88 2> log/7/stderr88 88: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 88 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind88 ../src/curl -q --output log/7/curl88.out --include --trace-ascii log/7/trace88 --trace-time http://127.0.0.1:40129/88 -T log/7/put88 -u testuser:testpass --digest > log/7/stdout88 2> log/7/stderr88 === End of file commands.log === Start of file http_server.log 10:30:50.627630 ====> Client connect 10:30:50.628068 accept_connection 3 returned 4 10:30:50.628359 accept_connection 3 returned 0 10:30:50.628540 Read 93 bytes 10:30:50.628630 Process 93 bytes request 10:30:50.628784 Got request: GET /verifiedserver HTTP/1.1 10:30:50.628912 Are-we-friendly question received 10:30:50.629250 Wrote request (93 bytes) input to log/7/server.input 10:30:50.629442 Identifying ourselves as friends 10:30:50.630112 Response sent (56 bytes) and written to log/7/server.response 10:30:50.630257 special request received, no persistency 10:30:50.630327 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 43240 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file put88 This is data we upload with PUT a second line line three four is the number of lines === End of file put88 === Start of file server.cmd auth_required Testnum 88 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind88 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind88 test 0089...[HTTP with NTLM and follow-location] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind89 ../src/curl -q --output log/2/curl89.out --include --trace-ascii log/2/trace89 --trace-time http://127.0.0.1:43789/89 -u testuser:testpass --ntlm -L > log/2/stdout89 2> log/2/stderr89 89: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 89 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind89 ../src/curl -q --output log/2/curl89.out --include --trace-ascii log/2/trace89 --trace-time http://127.0.0.1:43789/89 -u testuser:testpass --ntlm -L > log/2/stdout89 2> log/2/stderr89 === End of file commands.log === Start of file http_server.log 10:30:50.643350 ====> Client connect 10:30:50.643740 accept_connection 3 returned 4 10:30:50.643976 accept_connection 3 returned 0 10:30:50.644177 Read 93 bytes 10:30:50.644394 Process 93 bytes request 10:30:50.644518 Got request: GET /verifiedserver HTTP/1.1 10:30:50.644594 Are-we-friendly question received 10:30:50.644984 Wrote request (93 bytes) input to log/2/server.input 10:30:50.645258 Identifying ourselves as friends 10:30:50.646392 Response sent (56 bytes) and written to log/2/server.response 10:30:50.646595 special request received, no persistency 10:30:50.646680 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60768 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 89 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind89 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the aboCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind91 ../src/curl -q --output log/5/curl91.out --include --trace-ascii log/5/trace91 --trace-time http://127.0.0.1:41733/91 --anyauth -u mydomain\\myself:secret > log/5/stdout91 2> log/5/stderr91 ve-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind89 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/3/server/http2_server.pid" --logfile "log/3/http2_server.log" --logdir "log/3" --portfile log/3/server/http2_server.port --config log/3/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 78298 port 33181 * pid http-proxy => 78298 78298 test 0083...[HTTP over proxy-tunnel with site authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind83 ../src/curl -q --output log/3/curl83.out --include --trace-ascii log/3/trace83 --trace-time http://test.83:36933/we/want/that/page/83 -p -x 127.0.0.1:33181 --user 'iam:my:;self' > log/3/stdout83 2> log/3/stderr83 83: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 83 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind83 ../src/curl -q --output log/3/curl83.out --include --trace-ascii log/3/trace83 --trace-time http://test.83:36933/we/want/that/page/83 -p -x 127.0.0.1:33181 --user 'iam:my:;self' > log/3/stdout83 2> log/3/stderr83 === End of file commands.log === Start of file http2_server.log 10:30:50.011139 Run as proxy, CONNECT to host 127.0.0.1 10:30:50.012121 Running HTTP IPv4 version on port 33181 10:30:50.012704 Wrote pid 78298 to log/3/server/http2_server.pid 10:30:50.013246 Wrote port 33181 to log/3/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 10:30:49.739815 ====> Client connect 10:30:49.740210 accept_connection 3 returned 4 10:30:49.740439 accept_connection 3 returned 0 10:30:49.740592 Read 93 bytes 10:30:49.740680 Process 93 bytes request 10:30:49.740907 Got request: GET /verifiedserver HTTP/1.1 10:30:49.741045 Are-we-friendly question received 10:30:49.741391 Wrote request (93 bytes) input to log/3/server.input 10:30:49.741642 Identifying ourselves as friends 10:30:49.742380 Response sent (56 bytes) and written to log/3/server.response 10:30:49.742530 special request received, no persistency 10:30:49.742597 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 47056 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 83 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind83 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind83 test 0091...[HTTP with NTLM/Negotiate/Basic, anyauth and user with domain, with size 0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind91 ../src/curl -q --output log/5/curl91.out --include --trace-ascii log/5/trace91 --trace-time http://127.0.0.1:41733/91 --anyauth -u mydomain\\myself:secret > log/5/stdout91 2> log/5/stderr91 91: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 91 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind91 ../src/curl -q --output log/5/curl91.out --include --trace-ascii log/5/trace91 --trace-time http://127.0.0.1:41733/91 --anyauth -u mydomain\\myself:secret > log/5/stdout91 2> log/5/stderr91 === End of file commands.log === Start of file http_server.log 10:30:52.189708 ====> Client connect 10:30:52.189998 accept_connection 3 returned 4 10:30:52.190167 accept_connection 3 returned 0 10:30:52.190304 Read 93 bytes 10:30:52.190400 Process 93 bytes request 10:30:52.190492 Got request: GET /verifiedserver HTTP/1.1 10:30:52.190573 Are-we-friendly question received 10:30:52.190833 Wrote request (93 bytes) input to log/5/server.input 10:30:52.191026 Identifying ourselves as friends 10:30:52.191836 Response sent (56 bytes) and written to log/5/server.response 10:30:52.191991 special request received, no persistency 10:30:52.192072 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 44694 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 91 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind91 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind90 ../src/curl -q --output log/6/curl90.out --include --trace-ascii log/6/trace90 --trace-time http://127.0.0.1:33363/90 -u testuser:testpass --anyauth -L > log/6/stdout90 2> log/6/stderr90 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind92 ../src/curl -q --output log/8/curl92.out --include --trace-ascii log/8/trace92 --trace-time http://127.0.0.1:36007/want/92 -C 87 > log/8/stdout92 2> log/8/stderr92 grind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind91 test 0090...[HTTP with NTLM via --anyauth, and then follow-location with NTLM again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind90 ../src/curl -q --output log/6/curl90.out --include --trace-ascii log/6/trace90 --trace-time http://127.0.0.1:33363/90 -u testuser:testpass --anyauth -L > log/6/stdout90 2> log/6/stderr90 90: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 90 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind90 ../src/curl -q --output log/6/curl90.out --include --trace-ascii log/6/trace90 --trace-time http://127.0.0.1:33363/90 -u testuser:testpass --anyauth -L > log/6/stdout90 2> log/6/stderr90 === End of file commands.log === Start of file http_server.log 10:30:51.098810 ====> Client connect 10:30:51.099288 accept_connection 3 returned 4 10:30:51.099566 accept_connection 3 returned 0 10:30:51.099793 Read 93 bytes 10:30:51.099989 Process 93 bytes request 10:30:51.100129 Got request: GET /verifiedserver HTTP/1.1 10:30:51.100219 Are-we-friendly question received 10:30:51.100552 Wrote request (93 bytes) input to log/6/server.input 10:30:51.100994 Identifying ourselves as friends 10:30:51.102324 Response sent (56 bytes) and written to log/6/server.response 10:30:51.102561 special request received, no persistency 10:30:51.102671 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 38786 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 90 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind90 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind90 test 0092...[HTTP resume transfer with the whole file already downloaded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind92 ../src/curl -q --output log/8/curl92.out --include --trace-ascii log/8/trace92 --trace-time http://127.0.0.1:36007/want/92 -C 87 > log/8/stdout92 2> log/8/stderr92 92: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 92 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind92 ../src/curl -q --output log/8/curl92.out --include --trace-ascii log/8/trace92 --trace-time http://127.0.0.1:36007/want/92 -C 87 > log/8/stdout92 2> log/8/stderr92 === End of file commands.log === Start of file http_server.log 10:30:51.436522 ====> Client connect 10:30:51.437765 accept_connection 3 returned 4 10:30:51.438183 accept_connection 3 returned 0 10:30:51.438441 Read 93 bytes 10:30:51.438612 Process 93 bytes request 10:30:51.438756 Got request: GET /verifiedserver HTTP/1.1 10:30:51.438892 Are-we-friendly question received 10:30:51.439254 Wrote request (93 bytes) input to log/8/server.input 10:30:51.439636 Identifying ourselves as friends 10:30:51.440559 Response sent (56 bytes) and written to log/8/server.response 10:30:51.440794 special request received, no persistency 10:30:51.440898 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 43290 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 92 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind92 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind93 ../src/curl -q --output log/4/curl93.out --include --trace-ascii log/4/trace93 --trace-time http://127.0.0.1:36757/93 -x 127.0.0.1:36757 > log/4/stdout93 2> log/4/stderr93 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind94 ../src/curl -q --output log/7/curl94.out --include --trace-ascii log/7/trace94 --trace-time https://test.anything.really.com:94 --proxy1.0 127.0.0.1:40129 > log/7/stdout94 2> log/7/stderr94 ynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind92 test 0093...[HTTP GET with failed proxy auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind93 ../src/curl -q --output log/4/curl93.out --include --trace-ascii log/4/trace93 --trace-time http://127.0.0.1:36757/93 -x 127.0.0.1:36757 > log/4/stdout93 2> log/4/stderr93 93: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 93 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind93 ../src/curl -q --output log/4/curl93.out --include --trace-ascii log/4/trace93 --trace-time http://127.0.0.1:36757/93 -x 127.0.0.1:36757 > log/4/stdout93 2> log/4/stderr93 === End of file commands.log === Start of file http_server.log 10:30:52.505808 ====> Client connect 10:30:52.506130 accept_connection 3 returned 4 10:30:52.506328 accept_connection 3 returned 0 10:30:52.506453 Read 93 bytes 10:30:52.506559 Process 93 bytes request 10:30:52.506647 Got request: GET /verifiedserver HTTP/1.1 10:30:52.506713 Are-we-friendly question received 10:30:52.506937 Wrote request (93 bytes) input to log/4/server.input 10:30:52.507127 Identifying ourselves as friends 10:30:52.507783 Response sent (56 bytes) and written to log/4/server.response 10:30:52.507926 special request received, no persistency 10:30:52.507992 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 42128 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 93 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind93 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind93 test 0094...[HTTPS GET with failed proxy auth (CONNECT 1.0)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind94 ../src/curl -q --output log/7/curl94.out --include --trace-ascii log/7/trace94 --trace-time https://test.anything.really.com:94 --proxy1.0 127.0.0.1:40129 > log/7/stdout94 2> log/7/stderr94 94: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 94 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind94 ../src/curl -q --output log/7/curl94.out --include --trace-ascii log/7/trace94 --trace-time https://test.anything.really.com:94 --proxy1.0 127.0.0.1:40129 > log/7/stdout94 2> log/7/stderr94 === End of file commands.log === Start of file http_server.log 10:30:51.731899 ====> Client connect 10:30:51.732216 accept_connection 3 returned 4 10:30:51.732489 accept_connection 3 returned 0 10:30:51.732638 Read 93 bytes 10:30:51.732842 Process 93 bytes request 10:30:51.732948 Got request: GET /verifiedserver HTTP/1.1 10:30:51.733025 Are-we-friendly question received 10:30:51.733306 Wrote request (93 bytes) input to log/7/server.input 10:30:51.733535 Identifying ourselves as friends 10:30:51.734610 Response sent (56 bytes) and written to log/7/server.response 10:30:51.734780 special request received, no persistency 10:30:51.734883 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 43250 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 94 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind94 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit proCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind98 ../src/curl -q --output log/3/curl98.out --include --trace-ascii log/3/trace98 --trace-time -T - -H "Transfer-Encoding:" -H "Content-Length: 14" http://127.0.0.1:36933/98 log/3/stdout98 2> log/3/stderr98 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind97 ../src/curl -q --output log/2/curl97.out --include --trace-ascii log/2/trace97 --trace-time -d "hejsanallabarn" -H "Content-Type: silly/type" http://127.0.0.1:43789/97 > log/2/stdout97 2> log/2/stderr97 cess on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind94 test 0098...[HTTP PUT from stdin with set size, disabling chunked transfer-encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind98 ../src/curl -q --output log/3/curl98.out --include --trace-ascii log/3/trace98 --trace-time -T - -H "Transfer-Encoding:" -H "Content-Length: 14" http://127.0.0.1:36933/98 log/3/stdout98 2> log/3/stderr98 98: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 98 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind98 ../src/curl -q --output log/3/curl98.out --include --trace-ascii log/3/trace98 --trace-time -T - -H "Transfer-Encoding:" -H "Content-Length: 14" http://127.0.0.1:36933/98 log/3/stdout98 2> log/3/stderr98 === End of file commands.log === Start of file http_server.log 10:30:51.793272 ====> Client connect 10:30:51.793634 accept_connection 3 returned 4 10:30:51.793888 accept_connection 3 returned 0 10:30:51.794097 Read 93 bytes 10:30:51.794201 Process 93 bytes request 10:30:51.794291 Got request: GET /verifiedserver HTTP/1.1 10:30:51.794365 Are-we-friendly question received 10:30:51.794615 Wrote request (93 bytes) input to log/3/server.input 10:30:51.794801 Identifying ourselves as friends 10:30:51.795419 Response sent (56 bytes) and written to log/3/server.response 10:30:51.795553 special request received, no persistency 10:30:51.795624 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 47068 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 98 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file stdin-for-98 data on stdin === End of file stdin-for-98 === Start of file valgrind98 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind98 test 0097...[HTTP POST with custom content-type] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind97 ../src/curl -q --output log/2/curl97.out --include --trace-ascii log/2/trace97 --trace-time -d "hejsanallabarn" -H "Content-Type: silly/type" http://127.0.0.1:43789/97 > log/2/stdout97 2> log/2/stderr97 97: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 97 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind97 ../src/curl -q --output log/2/curl97.out --include --trace-ascii log/2/trace97 --trace-time -d "hejsanallabarn" -H "Content-Type: silly/type" http://127.0.0.1:43789/97 > log/2/stdout97 2> log/2/stderr97 === End of file commands.log === Start of file http_server.log 10:30:51.759238 ====> Client connect 10:30:51.759642 accept_connection 3 returned 4 10:30:51.759900 accept_connection 3 returned 0 10:30:51.760075 Read 93 bytes 10:30:51.760186 Process 93 bytes request 10:30:51.760308 Got request: GET /verifiedserver HTTP/1.1 10:30:51.760395 Are-we-friendly question received 10:30:51.760789 Wrote request (93 bytes) input to log/2/server.input 10:30:51.761111 Identifying ourselves as friends 10:30:51.762133 Response sent (56 bytes) and written to log/2/server.response 10:30:51.762343 special request received, no persistency 10:30:51.762443 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60782 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 97 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind97 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting noCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind95 ../src/curl -q --output log/1/curl95.out --include --trace-ascii log/1/trace95 --trace-time http://test.95:36129/we/want/that/page/95 -p -x 127.0.0.1:41917 -d "datatopost=ohthatsfunyesyes" > log/1/stdout95 2> log/1/stderr95 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind99 ../src/curl -q --output log/5/curl99.out --include --trace-ascii log/5/trace99 --trace-time http://127.0.0.1:41733/99 -C 9999999999 > log/5/stdout99 2> log/5/stderr99 w. Sorry. === End of file valgrind97 test 0095...[HTTP over proxytunnel using POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind95 ../src/curl -q --output log/1/curl95.out --include --trace-ascii log/1/trace95 --trace-time http://test.95:36129/we/want/that/page/95 -p -x 127.0.0.1:41917 -d "datatopost=ohthatsfunyesyes" > log/1/stdout95 2> log/1/stderr95 95: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 95 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind95 ../src/curl -q --output log/1/curl95.out --include --trace-ascii log/1/trace95 --trace-time http://test.95:36129/we/want/that/page/95 -p -x 127.0.0.1:41917 -d "datatopost=ohthatsfunyesyes" > log/1/stdout95 2> log/1/stderr95 === End of file commands.log === Start of file http2_server.log 10:30:52.876287 ====> Client connect 10:30:52.876614 accept_connection 3 returned 4 10:30:52.876906 accept_connection 3 returned 0 10:30:52.877063 Read 93 bytes 10:30:52.877166 Process 93 bytes request 10:30:52.877266 Got request: GET /verifiedserver HTTP/1.1 10:30:52.877349 Are-we-friendly question received 10:30:52.877702 Wrote request (93 bytes) input to log/1/proxy.input 10:30:52.878030 Identifying ourselves as friends 10:30:52.878842 Response sent (56 bytes) and written to log/1/proxy.response 10:30:52.879001 special request received, no persistency 10:30:52.879089 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:41917... * Established connection to 127.0.0.1 (127.0.0.1 port 41917) from 127.0.0.1 port 50328 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41917 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41917 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 78259 === End of file http2_verify.out === Start of file http_server.log 10:30:51.734848 ====> Client connect 10:30:51.735157 accept_connection 3 returned 4 10:30:51.735345 accept_connection 3 returned 0 10:30:51.735479 Read 93 bytes 10:30:51.735580 Process 93 bytes request 10:30:51.735674 Got request: GET /verifiedserver HTTP/1.1 10:30:51.735751 Are-we-friendly question received 10:30:51.736019 Wrote request (93 bytes) input to log/1/server.input 10:30:51.736283 Identifying ourselves as friends 10:30:51.737340 Response sent (56 bytes) and written to log/1/server.response 10:30:51.737500 special request received, no persistency 10:30:51.737595 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 55316 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 78259 === End of file proxy.response === Start of file server.cmd Testnum 95 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind95 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind95 test 0099...[HTTP GET with large-file resume point and failed resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind99 ../src/curl -q --output log/5/curl99.out --include --trace-ascii log/5/trace99 --trace-time http://127.0.0.1:41733/99 -C 9999999999 > log/5/stdout99 2> log/5/stderr99 99: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 99 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind99 ../src/curl -q --output log/5/curl99.out --include --trace-ascii log/5/trace99 --trace-time http://127.0.0.1:41733/99 -C 9999999999 > log/5/stdout99 2> log/5/stderr99 === End of file commands.log === Start of file http_server.log 10:30:53.336888 ====> Client connect 10:30:53.337307 accept_connection 3 returned 4 10:30:53.337517 accept_connection 3 returned 0 10:30:53.337651 Read 93 bytes 10:30:53.337745 Process 93 bytes request 10:30:53.337840 Got request: GET /verifiedserver HTTP/1.1 10:30:53.337937 Are-we-friendly question received 10:30:53.338226 Wrote request (93 bytes) input to log/5/server.input 10:30:53.338451 Identifying ourselves as friends 10:30:53.339355 Response sent (56 bytes) and written to log/5/server.response 10:30:53.339497 special request received, no persistency 10:30:53.339567 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 44696 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 99 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind99 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind100 ../src/curl -q --output log/6/curl100.out --include --trace-ascii log/6/trace100 --trace-time ftp://127.0.0.1:33323/test-100/ > log/6/stdout100 2> log/6/stderr100 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind101 ../src/curl -q --output log/8/curl101.out --include --trace-ascii log/8/trace101 --trace-time ftp://127.0.0.1:38061/ -P 127.0.0.1 > log/8/stdout101 2> log/8/stderr101 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind102 ../src/curl -q --output log/4/curl102.out --include --trace-ascii log/4/trace102 --trace-time ftp://127.0.0.1:42635/102 > log/4/stdout102 2> log/4/stderr102 d: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind99 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/6/server/ftp_server.pid" --logfile "log/6/ftp_server.log" --logdir "log/6" --portfile "log/6/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33323 (log/6/server/ftp_server.port) RUN: FTP server is PID 79480 port 33323 * pid ftp => 79480 79480 test 0100...[FTP dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind100 ../src/curl -q --output log/6/curl100.out --include --trace-ascii log/6/trace100 --trace-time ftp://127.0.0.1:33323/test-100/ > log/6/stdout100 2> log/6/stderr100 100: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 100 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind100 ../src/curl -q --output log/6/curl100.out --include --trace-ascii log/6/trace100 --trace-time ftp://127.0.0.1:33323/test-100/ > log/6/stdout100 2> log/6/stderr100 === End of file commands.log === Start of file ftp_server.log 10:30:53.153906 FTP server listens on port IPv4/33323 10:30:53.155921 logged pid 79480 in log/6/server/ftp_server.pid 10:30:53.156318 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:53.819561 Running IPv4 version 10:30:53.820224 Listening on port 33323 10:30:53.822703 Wrote pid 79579 to log/6/server/ftp_sockctrl.pid 10:30:53.823306 Wrote port 33323 to log/6/server/ftp_server.port 10:30:53.823533 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 100 === End of file server.cmd === Start of file valgrind100 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind100 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/8/server/ftp_server.pid" --logfile "log/8/ftp_server.log" --logdir "log/8" --portfile "log/8/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38061 (log/8/server/ftp_server.port) RUN: FTP server is PID 79508 port 38061 * pid ftp => 79508 79508 test 0101...[FTP dir list, PORT with specified IP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind101 ../src/curl -q --output log/8/curl101.out --include --trace-ascii log/8/trace101 --trace-time ftp://127.0.0.1:38061/ -P 127.0.0.1 > log/8/stdout101 2> log/8/stderr101 101: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 101 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind101 ../src/curl -q --output log/8/curl101.out --include --trace-ascii log/8/trace101 --trace-time ftp://127.0.0.1:38061/ -P 127.0.0.1 > log/8/stdout101 2> log/8/stderr101 === End of file commands.log === Start of file ftp_server.log 10:30:53.157223 FTP server listens on port IPv4/38061 10:30:53.158458 logged pid 79508 in log/8/server/ftp_server.pid 10:30:53.158872 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:53.824764 Running IPv4 version 10:30:53.826241 Listening on port 38061 10:30:53.827065 Wrote pid 79580 to log/8/server/ftp_sockctrl.pid 10:30:53.827543 Wrote port 38061 to log/8/server/ftp_server.port 10:30:53.827784 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 101 === End of file server.cmd === Start of file valgrind101 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind101 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/4/server/ftp_server.pid" --logfile "log/4/ftp_server.log" --logdir "log/4" --portfile "CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind103 ../src/curl -q --output log/7/curl103.out --include --trace-ascii log/7/trace103 --trace-time ftp://127.0.0.1:38253/a/path/103 -P - > log/7/stdout103 2> log/7/stderr103 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind105 ../src/curl -q --output log/2/curl105.out --include --trace-ascii log/2/trace105 --trace-time ftp://userdude:passfellow@127.0.0.1:37959/105 --use-ascii > log/2/stdout105 2> log/2/stderr105 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind104 ../src/curl -q --output log/3/curl104.out --include --trace-ascii log/3/trace104 --trace-time ftp://127.0.0.1:33831/a/path/104 --head > log/3/stdout104 2> log/3/stderr104 log/4/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42635 (log/4/server/ftp_server.port) RUN: FTP server is PID 79516 port 42635 * pid ftp => 79516 79516 test 0102...[FTP RETR PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind102 ../src/curl -q --output log/4/curl102.out --include --trace-ascii log/4/trace102 --trace-time ftp://127.0.0.1:42635/102 > log/4/stdout102 2> log/4/stderr102 102: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 102 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind102 ../src/curl -q --output log/4/curl102.out --include --trace-ascii log/4/trace102 --trace-time ftp://127.0.0.1:42635/102 > log/4/stdout102 2> log/4/stderr102 === End of file commands.log === Start of file ftp_server.log 10:30:53.178157 FTP server listens on port IPv4/42635 10:30:53.179160 logged pid 79516 in log/4/server/ftp_server.pid 10:30:53.179611 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:53.847209 Running IPv4 version 10:30:53.847770 Listening on port 42635 10:30:53.848206 Wrote pid 79587 to log/4/server/ftp_sockctrl.pid 10:30:53.848478 Wrote port 42635 to log/4/server/ftp_server.port 10:30:53.848631 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 102 === End of file server.cmd === Start of file valgrind102 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind102 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/7/server/ftp_server.pid" --logfile "log/7/ftp_server.log" --logdir "log/7" --portfile "log/7/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38253 (log/7/server/ftp_server.port) RUN: FTP server is PID 79543 port 38253 * pid ftp => 79543 79543 test 0103...[FTP RETR PORT with CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind103 ../src/curl -q --output log/7/curl103.out --include --trace-ascii log/7/trace103 --trace-time ftp://127.0.0.1:38253/a/path/103 -P - > log/7/stdout103 2> log/7/stderr103 103: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 103 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind103 ../src/curl -q --output log/7/curl103.out --include --trace-ascii log/7/trace103 --trace-time ftp://127.0.0.1:38253/a/path/103 -P - > log/7/stdout103 2> log/7/stderr103 === End of file commands.log === Start of file ftp_server.log 10:30:53.313608 FTP server listens on port IPv4/38253 10:30:53.314494 logged pid 79543 in log/7/server/ftp_server.pid 10:30:53.314785 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:53.982892 Running IPv4 version 10:30:53.983473 Listening on port 38253 10:30:53.983817 Wrote pid 79598 to log/7/server/ftp_sockctrl.pid 10:30:53.984034 Wrote port 38253 to log/7/server/ftp_server.port 10:30:53.984161 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 103 === End of file server.cmd === Start of file valgrind103 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind103 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/2/server/ftp_server.pid" --logfile "log/2/ftp_server.log" --logdir "log/2" --portfile "log/2/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37959 (log/2/server/ftp_server.port) RUN: FTP server is PID 79558 port 37959 * pid ftp => 79558 79558 test 0105...[FTP user+password in URL and ASCII transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind105 ../src/curl -q --output log/2/curl105.out --include --trace-ascii log/2/trace105 --trace-time ftp://userdude:passfellow@127.0.0.1:37959/105 --use-ascii > log/2/stdout105 2> log/2/stderr105 105: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 105 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind105 ../src/curl -q --output log/2/curl105.out --include --trace-ascii log/2/trace105 --trace-time ftp://userdude:passfellow@127.0.0.1:37959/105 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind106 ../src/curl -q --output log/1/curl106.out --include --trace-ascii log/1/trace106 --trace-time "ftp://127.0.0.1:38733//path%20with%20%20spaces//and%20things2/106;type=A" > log/1/stdout106 2> log/1/stderr106 --use-ascii > log/2/stdout105 2> log/2/stderr105 === End of file commands.log === Start of file ftp_server.log 10:30:53.386758 FTP server listens on port IPv4/37959 10:30:53.387600 logged pid 79558 in log/2/server/ftp_server.pid 10:30:53.387907 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:53.055746 Running IPv4 version 10:30:53.056382 Listening on port 37959 10:30:53.056951 Wrote pid 79600 to log/2/server/ftp_sockctrl.pid 10:30:53.057267 Wrote port 37959 to log/2/server/ftp_server.port 10:30:53.057415 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 105 === End of file server.cmd === Start of file valgrind105 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind105 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/3/server/ftp_server.pid" --logfile "log/3/ftp_server.log" --logdir "log/3" --portfile "log/3/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33831 (log/3/server/ftp_server.port) RUN: FTP server is PID 79555 port 33831 * pid ftp => 79555 79555 test 0104...[FTP --head to get file size only] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind104 ../src/curl -q --output log/3/curl104.out --include --trace-ascii log/3/trace104 --trace-time ftp://127.0.0.1:33831/a/path/104 --head > log/3/stdout104 2> log/3/stderr104 104: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 104 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind104 ../src/curl -q --output log/3/curl104.out --include --trace-ascii log/3/trace104 --trace-time ftp://127.0.0.1:33831/a/path/104 --head > log/3/stdout104 2> log/3/stderr104 === End of file commands.log === Start of file ftp_server.log 10:30:53.352410 FTP server listens on port IPv4/33831 10:30:53.353336 logged pid 79555 in log/3/server/ftp_server.pid 10:30:53.353768 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:53.021517 Running IPv4 version 10:30:53.022160 Listening on port 33831 10:30:53.022536 Wrote pid 79599 to log/3/server/ftp_sockctrl.pid 10:30:53.022813 Wrote port 33831 to log/3/server/ftp_server.port 10:30:53.022970 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 104 === End of file server.cmd === Start of file valgrind104 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind104 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/1/server/ftp_server.pid" --logfile "log/1/ftp_server.log" --logdir "log/1" --portfile "log/1/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38733 (log/1/server/ftp_server.port) RUN: FTP server is PID 79585 port 38733 * pid ftp => 79585 79585 test 0106...[FTP GET with type=A style ASCII URL using %20 codes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind106 ../src/curl -q --output log/1/curl106.out --include --trace-ascii log/1/trace106 --trace-time "ftp://127.0.0.1:38733//path%20with%20%20spaces//and%20things2/106;type=A" > log/1/stdout106 2> log/1/stderr106 106: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 106 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind106 ../src/curl -q --output log/1/curl106.out --include --trace-ascii log/1/trace106 --trace-time "ftp://127.0.0.1:38733//path%20with%20%20spaces//and%20things2/106;type=A" > log/1/stdout106 2> log/1/stderr106 === End of file commands.log === Start of file ftp_server.log 10:30:53.561804 FTP server listens on port IPv4/38733 10:30:53.562609 logged pid 79585 in log/1/server/ftp_server.pid 10:30:53.562874 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:53.231285 Running IPv4 version 10:30:53.231860 Listening on port 38733 10:30:53.232120 Wrote pid 79603 to log/1/server/ftp_sockctrl.pid 10:30:53.232300 Wrote port 38733 to log/1/server/ftp_server.port 10:30:53.232418 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 106 === End of file server.cmd === Start of file valgrind106 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind107 ../src/curl -q --output log/5/curl107.out --include --trace-ascii log/5/trace107 --trace-time ftp://127.0.0.1:43393/107 -T log/5/test107.txt > log/5/stdout107 2> log/5/stderr107 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind108 ../src/curl -q --output log/6/curl108.out --include --trace-ascii log/6/trace108 --trace-time ftp://127.0.0.1:33323/CWD/STOR/RETR/108 -T log/6/upload108 -P - > log/6/stdout108 2> log/6/stderr108 riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind106 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/5/server/ftp_server.pid" --logfile "log/5/ftp_server.log" --logdir "log/5" --portfile "log/5/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43393 (log/5/server/ftp_server.port) RUN: FTP server is PID 79602 port 43393 * pid ftp => 79602 79602 test 0107...[FTP PASV upload file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind107 ../src/curl -q --output log/5/curl107.out --include --trace-ascii log/5/trace107 --trace-time ftp://127.0.0.1:43393/107 -T log/5/test107.txt > log/5/stdout107 2> log/5/stderr107 107: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 107 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind107 ../src/curl -q --output log/5/curl107.out --include --trace-ascii log/5/trace107 --trace-time ftp://127.0.0.1:43393/107 -T log/5/test107.txt > log/5/stdout107 2> log/5/stderr107 === End of file commands.log === Start of file ftp_server.log 10:30:53.829079 FTP server listens on port IPv4/43393 10:30:53.830389 logged pid 79602 in log/5/server/ftp_server.pid 10:30:53.830773 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:53.498245 Running IPv4 version 10:30:53.498905 Listening on port 43393 10:30:53.499307 Wrote pid 79640 to log/5/server/ftp_sockctrl.pid 10:30:53.499567 Wrote port 43393 to log/5/server/ftp_server.port 10:30:53.499700 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 107 === End of file server.cmd === Start of file test107.txt data to see that FTP works so does it? === End of file test107.txt === Start of file valgrind107 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind107 test 0108...[FTP PORT upload with CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind108 ../src/curl -q --output log/6/curl108.out --include --trace-ascii log/6/trace108 --trace-time ftp://127.0.0.1:33323/CWD/STOR/RETR/108 -T log/6/upload108 -P - > log/6/stdout108 2> log/6/stderr108 108: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 108 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind108 ../src/curl -q --output log/6/curl108.out --include --trace-ascii log/6/trace108 --trace-time ftp://127.0.0.1:33323/CWD/STOR/RETR/108 -T log/6/upload108 -P - > log/6/stdout108 2> log/6/stderr108 === End of file commands.log === Start of file ftp_server.log 10:30:54.334259 ====> Client connect 10:30:54.336175 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:54.341447 < "USER anonymous" 10:30:54.342552 > "331 We are happy you popped in![CR][LF]" 10:30:54.347289 < "PASS ftp@example.com" 10:30:54.347726 > "230 Welcome you silly person[CR][LF]" 10:30:54.350325 < "PWD" 10:30:54.350818 > "257 "/" is current directory[CR][LF]" 10:30:54.354132 < "EPSV" 10:30:54.354587 ====> Passive DATA channel requested by client 10:30:54.354901 DATA sockfilt for passive data channel starting... 10:30:54.368480 DATA sockfilt for passive data channel started (pid 79909) 10:30:54.373278 DATA sockfilt for passive data channel listens on port 45947 10:30:54.373949 > "229 Entering Passive Mode (|||45947|)[LF]" 10:30:54.374203 Client has been notified that DATA conn will be accepted on port 45947 10:30:54.381440 Client connects to port 45947 10:30:54.381935 ====> Client established passive DATA connection on port 45947 10:30:54.382673 < "TYPE I" 10:30:54.383053 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:54.385017 < "SIZE verifiedserver" 10:30:54.385649 > "213 17[CR][LF]" 10:30:54.390084 < "RETR verifiedserver" 10:30:54.391776 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:54.392795 =====> Closing passive DATA connection... 10:30:54.393128 Server disconnects passive DATA connection 10:30:54.394591 Server disconnected passive DATA connection 10:30:54.395006 DATA sockfilt for passive data channel quits (pid 79909) 10:30:54.399818 DATA sockfilt for passive data channel quit (pid 79909) 10:30:54.400255 =====> Closed passive DATA connection 10:30:54.400690 > "226 File transfer complete[CR][LF]" 10:30:54.439077 < "QUIT" 10:30:54.445939 > "221 bye bye baby[CR][LF]" 10:30:54.447315 MAIN sockfilt said DISC 10:30:54.447827 ====> Client disconnected 10:30:54.448571 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:55.002880 ====> Client connect 10:30:55.007321 Received DATA (on stdin) 10:30:55.007597 > 160 bytes data, server => client 10:30:55.007709 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:55.007800 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:55.007871 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind109 ../src/curl -q --output log/8/curl109.out --include --trace-ascii log/8/trace109 --trace-time ftp://127.0.0.1:38061/109 -T log/8/upload109 --append > log/8/stdout109 2> log/8/stderr109 r\n' 10:30:55.009435 < 16 bytes data, client => server 10:30:55.009667 'USER anonymous\r\n' 10:30:55.016780 Received DATA (on stdin) 10:30:55.017021 > 33 bytes data, server => client 10:30:55.017123 '331 We are happy you popped in!\r\n' 10:30:55.017691 < 22 bytes data, client => server 10:30:55.017878 'PASS ftp@example.com\r\n' 10:30:55.018941 Received DATA (on stdin) 10:30:55.019103 > 30 bytes data, server => client 10:30:55.019191 '230 Welcome you silly person\r\n' 10:30:55.019806 < 5 bytes data, client => server 10:30:55.020025 'PWD\r\n' 10:30:55.022004 Received DATA (on stdin) 10:30:55.022184 > 30 bytes data, server => client 10:30:55.022273 '257 "/" is current directory\r\n' 10:30:55.023305 < 6 bytes data, client => server 10:30:55.023496 'EPSV\r\n' 10:30:55.046905 Received DATA (on stdin) 10:30:55.047155 > 38 bytes data, server => client 10:30:55.047284 '229 Entering Passive Mode (|||45947|)\n' 10:30:55.051619 < 8 bytes data, client => server 10:30:55.051833 'TYPE I\r\n' 10:30:55.054483 Received DATA (on stdin) 10:30:55.054611 > 33 bytes data, server => client 10:30:55.054686 '200 I modify TYPE as you wanted\r\n' 10:30:55.055267 < 21 bytes data, client => server 10:30:55.055438 'SIZE verifiedserver\r\n' 10:30:55.058519 Received DATA (on stdin) 10:30:55.058801 > 8 bytes data, server => client 10:30:55.058937 '213 17\r\n' 10:30:55.059657 < 21 bytes data, client => server 10:30:55.059870 'RETR verifiedserver\r\n' 10:30:55.062007 Received DATA (on stdin) 10:30:55.062234 > 29 bytes data, server => client 10:30:55.062432 '150 Binary junk (17 bytes).\r\n' 10:30:55.072304 Received DATA (on stdin) 10:30:55.072487 > 28 bytes data, server => client 10:30:55.072577 '226 File transfer complete\r\n' 10:30:55.108839 < 6 bytes data, client => server 10:30:55.109181 'QUIT\r\n' 10:30:55.110977 Received DATA (on stdin) 10:30:55.111194 > 18 bytes data, server => client 10:30:55.117076 '221 bye bye baby\r\n' 10:30:55.118014 ====> Client disconnect 10:30:55.119076 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:54.035963 Running IPv4 version 10:30:54.036826 Listening on port 45947 10:30:54.037433 Wrote pid 79909 to log/6/server/ftp_sockdata.pid 10:30:54.037639 Received PING (on stdin) 10:30:54.043651 Received PORT (on stdin) 10:30:54.052282 ====> Client connect 10:30:54.064766 Received DATA (on stdin) 10:30:54.064990 > 17 bytes data, server => client 10:30:54.065095 'WE ROOLZ: 79480\r\n' 10:30:54.065449 Received DISC (on stdin) 10:30:54.065636 ====> Client forcibly disconnected 10:30:54.067547 Received QUIT (on stdin) 10:30:54.067792 quits 10:30:54.068233 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 108 === End of file server.cmd === Start of file upload108 Moooooooooooo upload this === End of file upload108 === Start of file valgrind108 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind108 test 0109...[FTP PASV upload append] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind109 ../src/curl -q --output log/8/curl109.out --include --trace-ascii log/8/trace109 --trace-time ftp://127.0.0.1:38061/109 -T log/8/upload109 --append > log/8/stdout109 2> log/8/stderr109 109: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 109 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind109 ../src/curl -q --output log/8/curl109.out --include --trace-ascii log/8/trace109 --trace-time ftp://127.0.0.1:38061/109 -T log/8/upload109 --append > log/8/stdout109 2> log/8/stderr109 === End of file commands.log === Start of file ftp_server.log 10:30:54.425737 ====> Client connect 10:30:54.427173 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:54.430295 < "USER anonymous" 10:30:54.431051 > "331 We are happy you popped in![CR][LF]" 10:30:54.433077 < "PASS ftp@example.com" 10:30:54.433896 > "230 Welcome you silly person[CR][LF]" 10:30:54.436044 < "PWD" 10:30:54.436602 > "257 "/" is current directory[CR][LF]" 10:30:54.439076 < "EPSV" 10:30:54.439643 ====> Passive DATA channel requested by client 10:30:54.440047 DATA sockfilt for passive data channel starting... 10:30:54.453747 DATA sockfilt for passive data channel started (pid 79949) 10:30:54.462071 DATA sockfilt for passive data channel listens on port 42061 10:30:54.462707 > "229 Entering Passive Mode (|||42061|)[LF]" 10:30:54.463007 Client has been notified that DATA conn will be accepted on port 42061 10:30:54.466850 Client connects to port 42061 10:30:54.467365 ====> Client established passive DATA connection on port 42061 10:30:54.468299 < "TYPE I" 10:30:54.468769 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:54.470861 < "SIZE verifiedserver" 10:30:54.471368 > "213 17[CR][LF]" 10:30:54.473091 < "RETR verifiedserver" 10:30:54.473777 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:54.474708 =====> Closing passive DATA connection... 10:30:54.475021 Server disconnects passive DATA connection 10:30:54.475656 Server disconnected passive DATA connection 10:30:54.475986 DATA sockfilt for passive data channel quits (pid 79949) 10:30:54.477737 DATA sockfilt for passive data channel quit (pid 79949) 10:30:54.478023 =====> Closed passive DATA connection 10:30:54.478353 > "226 File transfer complete[CR][LF]" 10:30:54.526506 < "QUIT" 10:30:54.527130 > "221 bye bye baby[CR][LF]" 10:30:54.533937 MAIN sockfilt said DISC 10:30:54.534572 ====> Client disconnected 10:30:54.535587 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:55.092029 ====> Client connect 10:30:55.098320 Received DATA (on stdin) 10:30:55.098550 > 160 bytes data, server => client 10:30:55.098654 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:55.098742 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:55.098808 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:55.100014 < 16 bytes data, client => server 10:30:55.100290 'USER anonymous\r\n' 10:30:55.102238 Received DATA (on stdin) 10:30:55.102471 > 33 bytes data, server => client 10:30:55.102588 '331 We are happy you popped in!\r\n' 10:30:55.103357 < 22 bytes data, client => server 10:30:55.103605 'PASS ftp@example.com\r\n' 10:3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind110 ../src/curl -q --output log/4/curl110.out --include --trace-ascii log/4/trace110 --trace-time ftp://127.0.0.1:42635/110 -C 20 > log/4/stdout110 2> log/4/stderr110 0:55.105179 Received DATA (on stdin) 10:30:55.105429 > 30 bytes data, server => client 10:30:55.105553 '230 Welcome you silly person\r\n' 10:30:55.106332 < 5 bytes data, client => server 10:30:55.106611 'PWD\r\n' 10:30:55.107812 Received DATA (on stdin) 10:30:55.108001 > 30 bytes data, server => client 10:30:55.108126 '257 "/" is current directory\r\n' 10:30:55.109274 < 6 bytes data, client => server 10:30:55.109499 'EPSV\r\n' 10:30:55.133904 Received DATA (on stdin) 10:30:55.134119 > 38 bytes data, server => client 10:30:55.134260 '229 Entering Passive Mode (|||42061|)\n' 10:30:55.136220 < 8 bytes data, client => server 10:30:55.136533 'TYPE I\r\n' 10:30:55.139953 Received DATA (on stdin) 10:30:55.140157 > 33 bytes data, server => client 10:30:55.140293 '200 I modify TYPE as you wanted\r\n' 10:30:55.141222 < 21 bytes data, client => server 10:30:55.141479 'SIZE verifiedserver\r\n' 10:30:55.142549 Received DATA (on stdin) 10:30:55.142722 > 8 bytes data, server => client 10:30:55.142811 '213 17\r\n' 10:30:55.143644 < 21 bytes data, client => server 10:30:55.143836 'RETR verifiedserver\r\n' 10:30:55.144947 Received DATA (on stdin) 10:30:55.145138 > 29 bytes data, server => client 10:30:55.145231 '150 Binary junk (17 bytes).\r\n' 10:30:55.149566 Received DATA (on stdin) 10:30:55.149737 > 28 bytes data, server => client 10:30:55.149851 '226 File transfer complete\r\n' 10:30:55.192504 < 6 bytes data, client => server 10:30:55.192860 'QUIT\r\n' 10:30:55.199178 Received DATA (on stdin) 10:30:55.199449 > 18 bytes data, server => client 10:30:55.199586 '221 bye bye baby\r\n' 10:30:55.204363 ====> Client disconnect 10:30:55.205833 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:54.122341 Running IPv4 version 10:30:54.123131 Listening on port 42061 10:30:54.123881 Wrote pid 79949 to log/8/server/ftp_sockdata.pid 10:30:54.124156 Received PING (on stdin) 10:30:54.125583 Received PORT (on stdin) 10:30:54.137412 ====> Client connect 10:30:54.145485 Received DATA (on stdin) 10:30:54.145790 > 17 bytes data, server => client 10:30:54.145932 'WE ROOLZ: 79508\r\n' 10:30:54.146509 Received DISC (on stdin) 10:30:54.146743 ====> Client forcibly disconnected 10:30:54.147470 Received QUIT (on stdin) 10:30:54.147634 quits 10:30:54.148047 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 109 === End of file server.cmd === Start of file upload109 Moooooooooooo upload this === End of file upload109 === Start of file valgrind109 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind109 test 0110...[FTP download resume with set limit] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind110 ../src/curl -q --output log/4/curl110.out --include --trace-ascii log/4/trace110 --trace-time ftp://127.0.0.1:42635/110 -C 20 > log/4/stdout110 2> log/4/stderr110 110: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 110 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind110 ../src/curl -q --output log/4/curl110.out --include --trace-ascii log/4/trace110 --trace-time ftp://127.0.0.1:42635/110 -C 20 > log/4/stdout110 2> log/4/stderr110 === End of file commands.log === Start of file ftp_server.log 10:30:54.477645 ====> Client connect 10:30:54.478922 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:54.487232 < "USER anonymous" 10:30:54.487745 > "331 We are happy you popped in![CR][LF]" 10:30:54.490412 < "PASS ftp@example.com" 10:30:54.490946 > "230 Welcome you silly person[CR][LF]" 10:30:54.498329 < "PWD" 10:30:54.498870 > "257 "/" is current directory[CR][LF]" 10:30:54.500728 < "EPSV" 10:30:54.501109 ====> Passive DATA channel requested by client 10:30:54.501360 DATA sockfilt for passive data channel starting... 10:30:54.519356 DATA sockfilt for passive data channel started (pid 79955) 10:30:54.526662 DATA sockfilt for passive data channel listens on port 44399 10:30:54.527240 > "229 Entering Passive Mode (|||44399|)[LF]" 10:30:54.527524 Client has been notified that DATA conn will be accepted on port 44399 10:30:54.535767 Client connects to port 44399 10:30:54.536339 ====> Client established passive DATA connection on port 44399 10:30:54.537960 < "TYPE I" 10:30:54.540048 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:54.543850 < "SIZE verifiedserver" 10:30:54.544746 > "213 17[CR][LF]" 10:30:54.554777 < "RETR verifiedserver" 10:30:54.555733 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:54.559042 =====> Closing passive DATA connection... 10:30:54.559523 Server disconnects passive DATA connection 10:30:54.561551 Server disconnected passive DATA connection 10:30:54.562094 DATA sockfilt for passive data channel quits (pid 79955) 10:30:54.564366 DATA sockfilt for passive data channel quit (pid 79955) 10:30:54.564779 =====> Closed passive DATA connection 10:30:54.565198 > "226 File transfer complete[CR][LF]" 10:30:54.602293 < "QUIT" 10:30:54.602731 > "221 bye bye baby[CR][LF]" 10:30:54.607673 MAIN sockfilt said DISC 10:30:54.608263 ====> Client disconnected 10:30:54.608946 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:55.128802 ====> Client connect 10:30:55.150097 Received DATA (on stdin) 10:30:55.150335 > 160 bytes data, server => client 10:30:55.150440 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:55.150517 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:55.150584 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:55.157275 < 16 bytes data, client => server 10:30:55.157523 'USER anonymous\r\n' 10:30:55.158960 Received DATA (on stdin) 10:30:55.159178 > 33 bytes data, server => client 10:30:55.159286 '331 We are happy you popped in!\r\n' 10:30:55.160037 < 22 bytes data, client => server 10:30:55.160259 'PASS ftp@example.com\r\n' 10:30:55.162162 Received DATA (on stdin) 10:30:55.162395 > 30 bytes data, server => client 10:30:55.162501 '230 Welcome you silly person\r\n' 10:30:55.163306 < 5 bytes data, client => server 10:30:55.163519 'PWD\r\n' 10:30:55.170066 Received DATA (on stdin) 10:30:55.170288 > 30 bytes data, server => client 10:30:55.170392 '257 "/" is current directory\r\n' 10:30:55.17CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind111 ../src/curl -q --output log/7/curl111.out --include --trace-ascii log/7/trace111 --trace-time ftp://127.0.0.1:38253/111 -C 2000 > log/7/stdout111 2> log/7/stderr111 1188 < 6 bytes data, client => server 10:30:55.171409 'EPSV\r\n' 10:30:55.198473 Received DATA (on stdin) 10:30:55.198749 > 38 bytes data, server => client 10:30:55.198889 '229 Entering Passive Mode (|||44399|)\n' 10:30:55.204934 < 8 bytes data, client => server 10:30:55.205318 'TYPE I\r\n' 10:30:55.210241 Received DATA (on stdin) 10:30:55.210593 > 33 bytes data, server => client 10:30:55.212029 '200 I modify TYPE as you wanted\r\n' 10:30:55.213447 < 21 bytes data, client => server 10:30:55.213751 'SIZE verifiedserver\r\n' 10:30:55.220881 Received DATA (on stdin) 10:30:55.221163 > 8 bytes data, server => client 10:30:55.221328 '213 17\r\n' 10:30:55.222743 < 21 bytes data, client => server 10:30:55.223000 'RETR verifiedserver\r\n' 10:30:55.226970 Received DATA (on stdin) 10:30:55.227328 > 29 bytes data, server => client 10:30:55.227612 '150 Binary junk (17 bytes).\r\n' 10:30:55.236439 Received DATA (on stdin) 10:30:55.236705 > 28 bytes data, server => client 10:30:55.236924 '226 File transfer complete\r\n' 10:30:55.269753 < 6 bytes data, client => server 10:30:55.269975 'QUIT\r\n' 10:30:55.273967 Received DATA (on stdin) 10:30:55.274152 > 18 bytes data, server => client 10:30:55.274256 '221 bye bye baby\r\n' 10:30:55.278319 ====> Client disconnect 10:30:55.280159 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:54.186489 Running IPv4 version 10:30:54.187169 Listening on port 44399 10:30:54.187801 Wrote pid 79955 to log/4/server/ftp_sockdata.pid 10:30:54.188056 Received PING (on stdin) 10:30:54.193922 Received PORT (on stdin) 10:30:54.204415 ====> Client connect 10:30:54.228479 Received DATA (on stdin) 10:30:54.229364 > 17 bytes data, server => client 10:30:54.229530 'WE ROOLZ: 79516\r\n' 10:30:54.231825 Received DISC (on stdin) 10:30:54.232103 ====> Client forcibly disconnected 10:30:54.233806 Received QUIT (on stdin) 10:30:54.234045 quits 10:30:54.234549 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 110 === End of file server.cmd === Start of file valgrind110 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind110 test 0111...[FTP download resume beyond file size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind111 ../src/curl -q --output log/7/curl111.out --include --trace-ascii log/7/trace111 --trace-time ftp://127.0.0.1:38253/111 -C 2000 > log/7/stdout111 2> log/7/stderr111 111: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 111 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind111 ../src/curl -q --output log/7/curl111.out --include --trace-ascii log/7/trace111 --trace-time ftp://127.0.0.1:38253/111 -C 2000 > log/7/stdout111 2> log/7/stderr111 === End of file commands.log === Start of file ftp_server.log 10:30:54.722644 ====> Client connect 10:30:54.724218 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:54.730763 < "USER anonymous" 10:30:54.731376 > "331 We are happy you popped in![CR][LF]" 10:30:54.734254 < "PASS ftp@example.com" 10:30:54.734821 > "230 Welcome you silly person[CR][LF]" 10:30:54.740173 < "PWD" 10:30:54.740699 > "257 "/" is current directory[CR][LF]" 10:30:54.746497 < "EPSV" 10:30:54.746936 ====> Passive DATA channel requested by client 10:30:54.747234 DATA sockfilt for passive data channel starting... 10:30:54.758601 DATA sockfilt for passive data channel started (pid 80064) 10:30:54.761828 DATA sockfilt for passive data channel listens on port 40373 10:30:54.762468 > "229 Entering Passive Mode (|||40373|)[LF]" 10:30:54.762726 Client has been notified that DATA conn will be accepted on port 40373 10:30:54.767193 Client connects to port 40373 10:30:54.767721 ====> Client established passive DATA connection on port 40373 10:30:54.772305 < "TYPE I" 10:30:54.772909 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:54.774915 < "SIZE verifiedserver" 10:30:54.775525 > "213 17[CR][LF]" 10:30:54.777566 < "RETR verifiedserver" 10:30:54.778252 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:54.779117 =====> Closing passive DATA connection... 10:30:54.779457 Server disconnects passive DATA connection 10:30:54.785361 Server disconnected passive DATA connection 10:30:54.785972 DATA sockfilt for passive data channel quits (pid 80064) 10:30:54.788933 DATA sockfilt for passive data channel quit (pid 80064) 10:30:54.789359 =====> Closed passive DATA connection 10:30:54.789930 > "226 File transfer complete[CR][LF]" 10:30:54.824591 < "QUIT" 10:30:54.825155 > "221 bye bye baby[CR][LF]" 10:30:54.832694 MAIN sockfilt said DISC 10:30:54.833437 ====> Client disconnected 10:30:54.834376 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:55.392812 ====> Client connect 10:30:55.395362 Received DATA (on stdin) 10:30:55.395642 > 160 bytes data, server => client 10:30:55.395761 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:55.395857 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:55.395936 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:55.396800 < 16 bytes data, client => server 10:30:55.397048 'USER anonymous\r\n' 10:30:55.402551 Received DATA (on stdin) 10:30:55.402754 > 33 bytes data, server => client 10:30:55.402863 '331 We are happy you popped in!\r\n' 10:30:55.404571 < 22 bytes data, client => server 10:30:55.405205 'PASS ftp@example.com\r\n' 10:30:55.408411 Received DATA (on stdin) 10:30:55.408771 > 30 bytes data, server => client 10:30:55.408912 '230 Welcome you silly person\r\n' 10:30:55.409722 < 5 bytes data, client => server 10:30:55.409952 'PWD\r\n' 10:30:55.412825 Received DATA (on stdin) 10:30:55.413141 > 30 bytes data, server => client 10:30:55.413297 '257 "/" is current directory\r\n' 10:30:55.415729 < 6 bytes data, client => server 10:30:55.415945 'EPSV\r\n' 10:30:55.433659 Received DATA (on stdin) 10:30:55.433866 > 38 bytes data, server => client 10:30:55.433982 '229 Entering Passive Mode (|||40373|)\n' 10:30:55.440847 < 8 bytes data, client => server 10:30:55.441088 'TYPE I\r\n' 10:30:55.444112 Received DATA (on stdin) 10:30:55.444338 > 33 bytes data, server => client 10:30:55.444445 '200 I modiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind113 ../src/curl -q --output log/3/curl113.out --include --trace-ascii log/3/trace113 --trace-time ftp://127.0.0.1:33831/113 > log/3/stdout113 2> log/3/stderr113 fy TYPE as you wanted\r\n' 10:30:55.445213 < 21 bytes data, client => server 10:30:55.445412 'SIZE verifiedserver\r\n' 10:30:55.446726 Received DATA (on stdin) 10:30:55.446929 > 8 bytes data, server => client 10:30:55.447030 '213 17\r\n' 10:30:55.447760 < 21 bytes data, client => server 10:30:55.448005 'RETR verifiedserver\r\n' 10:30:55.449458 Received DATA (on stdin) 10:30:55.449669 > 29 bytes data, server => client 10:30:55.449784 '150 Binary junk (17 bytes).\r\n' 10:30:55.461069 Received DATA (on stdin) 10:30:55.461387 > 28 bytes data, server => client 10:30:55.461512 '226 File transfer complete\r\n' 10:30:55.494768 < 6 bytes data, client => server 10:30:55.495004 'QUIT\r\n' 10:30:55.499415 Received DATA (on stdin) 10:30:55.499675 > 18 bytes data, server => client 10:30:55.499831 '221 bye bye baby\r\n' 10:30:55.500819 ====> Client disconnect 10:30:55.507571 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:54.428014 Running IPv4 version 10:30:54.428578 Listening on port 40373 10:30:54.429236 Wrote pid 80064 to log/7/server/ftp_sockdata.pid 10:30:54.429425 Received PING (on stdin) 10:30:54.431845 Received PORT (on stdin) 10:30:54.436352 ====> Client connect 10:30:54.452749 Received DATA (on stdin) 10:30:54.453019 > 17 bytes data, server => client 10:30:54.453119 'WE ROOLZ: 79543\r\n' 10:30:54.453497 Received DISC (on stdin) 10:30:54.453720 ====> Client forcibly disconnected 10:30:54.457571 Received QUIT (on stdin) 10:30:54.457795 quits 10:30:54.458363 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 111 === End of file server.cmd === Start of file valgrind111 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind111 test 0113...[FTP download, failed login: USER not valid] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind113 ../src/curl -q --output log/3/curl113.out --include --trace-ascii log/3/trace113 --trace-time ftp://127.0.0.1:33831/113 > log/3/stdout113 2> log/3/stderr113 113: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 113 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind113 ../src/curl -q --output log/3/curl113.out --include --trace-ascii log/3/trace113 --trace-time ftp://127.0.0.1:33831/113 > log/3/stdout113 2> log/3/stderr113 === End of file commands.log === Start of file ftp_server.log 10:30:54.815757 ====> Client connect 10:30:54.823102 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:54.829313 < "USER anonymous" 10:30:54.830240 > "331 We are happy you popped in![CR][LF]" 10:30:54.837887 < "PASS ftp@example.com" 10:30:54.839585 > "230 Welcome you silly person[CR][LF]" 10:30:54.842493 < "PWD" 10:30:54.843219 > "257 "/" is current directory[CR][LF]" 10:30:54.847676 < "EPSV" 10:30:54.848276 ====> Passive DATA channel requested by client 10:30:54.848783 DATA sockfilt for passive data channel starting... 10:30:54.863625 DATA sockfilt for passive data channel started (pid 80122) 10:30:54.865023 DATA sockfilt for passive data channel listens on port 34905 10:30:54.865771 > "229 Entering Passive Mode (|||34905|)[LF]" 10:30:54.866097 Client has been notified that DATA conn will be accepted on port 34905 10:30:54.869361 Client connects to port 34905 10:30:54.869999 ====> Client established passive DATA connection on port 34905 10:30:54.871002 < "TYPE I" 10:30:54.871488 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:54.873865 < "SIZE verifiedserver" 10:30:54.874557 > "213 17[CR][LF]" 10:30:54.877136 < "RETR verifiedserver" 10:30:54.877955 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:54.878810 =====> Closing passive DATA connection... 10:30:54.879100 Server disconnects passive DATA connection 10:30:54.879972 Server disconnected passive DATA connection 10:30:54.880406 DATA sockfilt for passive data channel quits (pid 80122) 10:30:54.884221 DATA sockfilt for passive data channel quit (pid 80122) 10:30:54.884579 =====> Closed passive DATA connection 10:30:54.884998 > "226 File transfer complete[CR][LF]" 10:30:54.930474 < "QUIT" 10:30:54.930963 > "221 bye bye baby[CR][LF]" 10:30:54.936988 MAIN sockfilt said DISC 10:30:54.937427 ====> Client disconnected 10:30:54.938116 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:54.485947 ====> Client connect 10:30:54.496123 Received DATA (on stdin) 10:30:54.496442 > 160 bytes data, server => client 10:30:54.496586 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:54.497221 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:54.497357 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:54.498909 < 16 bytes data, client => server 10:30:54.499269 'USER anonymous\r\n' 10:30:54.504779 Received DATA (on stdin) 10:30:54.505040 > 33 bytes data, server => client 10:30:54.505195 '331 We are happy you popped in!\r\n' 10:30:54.506200 < 22 bytes data, client => server 10:30:54.506434 'PASS ftp@example.com\r\n' 10:30:54.509766 Received DATA (on stdin) 10:30:54.509973 > 30 bytes data, server => client 10:30:54.510203 '230 Welcome you silly person\r\n' 10:30:54.512276 < 5 bytes data, client => server 10:30:54.512554 'PWD\r\n' 10:30:54.514991 Received DATA (on stdin) 10:30:54.515332 > 30 bytes data, server => client 10:30:54.515640 '257 "/" is current directory\r\n' 10:30:54.517244 < 6 bytes data, client => server 10:30:54.517581 'EPSV\r\n' 10:30:54.537687 Received DATA (on stdin) 10:30:54.537922 > 38 bytes data, server => client 10:30:54.538016 '229 Entering Passive Mode (|||34905|)\n' 10:30:54.539528 < 8 bytes data, client => server 10:30:54.539766 'TYPE I\r\n' 10:30:54.543028 Received DATA (on stdin) 10:30:54.543156 > 33 bytes data, server => client 10:30:54.543254 '200 I modify TYPE as you wanted\r\n' 10:30:54.543899 < 21 bytes data, client => server 10:30:54.544019 'SIZE verifiedserver\r\n' 10:30:54.546212 Received DATA (on stdin) 10:30:54.546422 > 8 bytes data, server => client 10:30:54.546508 '213 17\r\n' 10:30:54.547314 < 21 bytes data, client => server 10:30:54.547536 'RETR verifiedserver\r\n' 10:30:54.549161 Received DATA (on stdin) 10:30:54.549404 > 29 bytes data, server => client 10:30:54.550324 '150 Binary juCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind112 ../src/curl -q --output log/2/curl112.out --include --trace-ascii log/2/trace112 --trace-time ftp://127.0.0.1:37959/112 -T log/2/upload112 -C 40 > log/2/stdout112 2> log/2/stderr112 nk (17 bytes).\r\n' 10:30:54.557774 Received DATA (on stdin) 10:30:54.557900 > 28 bytes data, server => client 10:30:54.558010 '226 File transfer complete\r\n' 10:30:54.594765 < 6 bytes data, client => server 10:30:54.594944 'QUIT\r\n' 10:30:54.606814 Received DATA (on stdin) 10:30:54.607030 > 18 bytes data, server => client 10:30:54.607125 '221 bye bye baby\r\n' 10:30:54.607761 ====> Client disconnect 10:30:54.608706 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:54.531734 Running IPv4 version 10:30:54.532350 Listening on port 34905 10:30:54.534273 Wrote pid 80122 to log/3/server/ftp_sockdata.pid 10:30:54.534507 Received PING (on stdin) 10:30:54.535395 Received PORT (on stdin) 10:30:54.540158 ====> Client connect 10:30:54.549607 Received DATA (on stdin) 10:30:54.549781 > 17 bytes data, server => client 10:30:54.549873 'WE ROOLZ: 79555\r\n' 10:30:54.550776 Received DISC (on stdin) 10:30:54.551013 ====> Client forcibly disconnected 10:30:54.552578 Received QUIT (on stdin) 10:30:54.552790 quits 10:30:54.553320 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY USER 314 bluah you fewl Testnum 113 === End of file server.cmd === Start of file valgrind113 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind113 test 0112...[FTP PASV upload resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind112 ../src/curl -q --output log/2/curl112.out --include --trace-ascii log/2/trace112 --trace-time ftp://127.0.0.1:37959/112 -T log/2/upload112 -C 40 > log/2/stdout112 2> log/2/stderr112 112: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 112 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind112 ../src/curl -q --output log/2/curl112.out --include --trace-ascii log/2/trace112 --trace-time ftp://127.0.0.1:37959/112 -T log/2/upload112 -C 40 > log/2/stdout112 2> log/2/stderr112 === End of file commands.log === Start of file ftp_server.log 10:30:54.806346 ====> Client connect 10:30:54.808321 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:54.811165 < "USER anonymous" 10:30:54.811743 > "331 We are happy you popped in![CR][LF]" 10:30:54.816991 < "PASS ftp@example.com" 10:30:54.817820 > "230 Welcome you silly person[CR][LF]" 10:30:54.819849 < "PWD" 10:30:54.820580 > "257 "/" is current directory[CR][LF]" 10:30:54.823768 < "EPSV" 10:30:54.824262 ====> Passive DATA channel requested by client 10:30:54.824548 DATA sockfilt for passive data channel starting... 10:30:54.840409 DATA sockfilt for passive data channel started (pid 80110) 10:30:54.846113 DATA sockfilt for passive data channel listens on port 33561 10:30:54.846907 > "229 Entering Passive Mode (|||33561|)[LF]" 10:30:54.847475 Client has been notified that DATA conn will be accepted on port 33561 10:30:54.852594 Client connects to port 33561 10:30:54.853236 ====> Client established passive DATA connection on port 33561 10:30:54.858971 < "TYPE I" 10:30:54.859536 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:54.870959 < "SIZE verifiedserver" 10:30:54.871504 > "213 17[CR][LF]" 10:30:54.874387 < "RETR verifiedserver" 10:30:54.875027 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:54.877143 =====> Closing passive DATA connection... 10:30:54.877932 Server disconnects passive DATA connection 10:30:54.882951 Server disconnected passive DATA connection 10:30:54.883425 DATA sockfilt for passive data channel quits (pid 80110) 10:30:54.885638 DATA sockfilt for passive data channel quit (pid 80110) 10:30:54.886039 =====> Closed passive DATA connection 10:30:54.886482 > "226 File transfer complete[CR][LF]" 10:30:54.919301 < "QUIT" 10:30:54.919808 > "221 bye bye baby[CR][LF]" 10:30:54.929893 MAIN sockfilt said DISC 10:30:54.930457 ====> Client disconnected 10:30:54.931188 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:54.476823 ====> Client connect 10:30:54.479491 Received DATA (on stdin) 10:30:54.479843 > 160 bytes data, server => client 10:30:54.480024 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:54.480128 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:54.480209 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:54.481095 < 16 bytes data, client => server 10:30:54.481398 'USER anonymous\r\n' 10:30:54.485934 Received DATA (on stdin) 10:30:54.486182 > 33 bytes data, server => client 10:30:54.486292 '331 We are happy you popped in!\r\n' 10:30:54.487234 < 22 bytes data, client => server 10:30:54.487477 'PASS ftp@example.com\r\n' 10:30:54.488976 Received DATA (on stdin) 10:30:54.489246 > 30 bytes data, server => client 10:30:54.489380 '230 Welcome you silly person\r\n' 10:30:54.490062 < 5 bytes data, client => server 10:30:54.490343 'PWD\r\n' 10:30:54.492460 Received DATA (on stdin) 10:30:54.492928 > 30 bytes data, server => client 10:30:54.493144 '257 "/" is current directory\r\n' 10:30:54.494054 < 6 bytes data, client => server 10:30:54.494309 'EPSV\r\n' 10:30:54.519745 Received DATA (on stdin) 10:30:54.519986 > 38 bytes data, server => client 10:30:54.520163 '229 Entering Passive Mode (|||33561|)\n' 10:30:54.522981 < 8 bytes data, client => server 10:30:54.523337 'TYPE I\r\n' 10:30:54.536799 Received DATA (on stdin) 10:30:54.537045 > 33 bytes data, server => client 10:30:54.537188 '200 I modify TYPE as you wanted\r\n' 10:30:54.541301 < 21 bytes data, client => server 10:30:54.541537 'SIZE verifiedserver\r\n' 10:30:54.542722 Received DATA (on stdin) 10:30:54.542898 > 8 bytes data, server => client 10:30:54.542989 '213 17\r\n' 10:30:54.543697 < 21 bytes data, client => server 10:30:54.543961 'RETR verifiedserver\r\n' 10:30:54.546211 Received DATA (on stdin) 10:30:54.546422 > 29 bytes data, server => client 10:30:54.546511 '150 Binary junk (17 bytes).\r\n' 10:30:54.557664 Received DATA (on stdin) 10:30:54.557876 > 28 bytes data, server => client 10:30:54.558010 '226 File transfer complete\r\n' 10:30:54.589693 < 6 bytes data, client => server 10:30:54.589968 'QUIT\r\n' 10:30:54.592758 Received DATA (on stdin) 10:30:54.593071 > 18 bytes data, server => client 10:30:54.593262 '221 bye bye baby\r\n' 10:30:54.597161 ====> CliCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind114 ../src/curl -q --output log/1/curl114.out --include --trace-ascii log/1/trace114 --trace-time ftp://127.0.0.1:38733/114 > log/1/stdout114 2> log/1/stderr114 ent disconnect 10:30:54.601710 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:54.508512 Running IPv4 version 10:30:54.509433 Listening on port 33561 10:30:54.509958 Wrote pid 80110 to log/2/server/ftp_sockdata.pid 10:30:54.510144 Received PING (on stdin) 10:30:54.512328 Received PORT (on stdin) 10:30:54.523388 ====> Client connect 10:30:54.546726 Received DATA (on stdin) 10:30:54.546936 > 17 bytes data, server => client 10:30:54.547087 'WE ROOLZ: 79558\r\n' 10:30:54.552205 Received DISC (on stdin) 10:30:54.552558 ====> Client forcibly disconnected 10:30:54.555033 Received QUIT (on stdin) 10:30:54.555295 quits 10:30:54.555809 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 112 === End of file server.cmd === Start of file upload112 this is the *****crap******** that we're gonna upload worx? === End of file upload112 === Start of file valgrind112 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind112 test 0114...[FTP download, failed login: PASS not valid] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind114 ../src/curl -q --output log/1/curl114.out --include --trace-ascii log/1/trace114 --trace-time ftp://127.0.0.1:38733/114 > log/1/stdout114 2> log/1/stderr114 114: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 114 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind114 ../src/curl -q --output log/1/curl114.out --include --trace-ascii log/1/trace114 --trace-time ftp://127.0.0.1:38733/114 > log/1/stdout114 2> log/1/stderr114 === End of file commands.log === Start of file ftp_server.log 10:30:55.117040 ====> Client connect 10:30:55.119338 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:55.127785 < "USER anonymous" 10:30:55.128447 > "331 We are happy you popped in![CR][LF]" 10:30:55.139255 < "PASS ftp@example.com" 10:30:55.139958 > "230 Welcome you silly person[CR][LF]" 10:30:55.146549 < "PWD" 10:30:55.147294 > "257 "/" is current directory[CR][LF]" 10:30:55.149657 < "EPSV" 10:30:55.150228 ====> Passive DATA channel requested by client 10:30:55.150619 DATA sockfilt for passive data channel starting... 10:30:55.168132 DATA sockfilt for passive data channel started (pid 80291) 10:30:55.174100 DATA sockfilt for passive data channel listens on port 34801 10:30:55.174791 > "229 Entering Passive Mode (|||34801|)[LF]" 10:30:55.175075 Client has been notified that DATA conn will be accepted on port 34801 10:30:55.178244 Client connects to port 34801 10:30:55.178721 ====> Client established passive DATA connection on port 34801 10:30:55.179861 < "TYPE I" 10:30:55.180394 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:55.190295 < "SIZE verifiedserver" 10:30:55.191044 > "213 17[CR][LF]" 10:30:55.196423 < "RETR verifiedserver" 10:30:55.197226 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:55.198434 =====> Closing passive DATA connection... 10:30:55.198802 Server disconnects passive DATA connection 10:30:55.202396 Server disconnected passive DATA connection 10:30:55.203050 DATA sockfilt for passive data channel quits (pid 80291) 10:30:55.205576 DATA sockfilt for passive data channel quit (pid 80291) 10:30:55.206144 =====> Closed passive DATA connection 10:30:55.206915 > "226 File transfer complete[CR][LF]" 10:30:55.247269 < "QUIT" 10:30:55.247941 > "221 bye bye baby[CR][LF]" 10:30:55.254315 MAIN sockfilt said DISC 10:30:55.254883 ====> Client disconnected 10:30:55.255725 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:54.784800 ====> Client connect 10:30:54.790464 Received DATA (on stdin) 10:30:54.790901 > 160 bytes data, server => client 10:30:54.791153 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:54.791384 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:54.791660 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:54.796902 < 16 bytes data, client => server 10:30:54.797152 'USER anonymous\r\n' 10:30:54.801630 Received DATA (on stdin) 10:30:54.802013 > 33 bytes data, server => client 10:30:54.802258 '331 We are happy you popped in!\r\n' 10:30:54.808046 < 22 bytes data, client => server 10:30:54.808330 'PASS ftp@example.com\r\n' 10:30:54.811156 Received DATA (on stdin) 10:30:54.811417 > 30 bytes data, server => client 10:30:54.811536 '230 Welcome you silly person\r\n' 10:30:54.812521 < 5 bytes data, client => server 10:30:54.813121 'PWD\r\n' 10:30:54.818486 Received DATA (on stdin) 10:30:54.818782 > 30 bytes data, server => client 10:30:54.818907 '257 "/" is current directory\r\n' 10:30:54.819884 < 6 bytes data, client => server 10:30:54.820160 'EPSV\r\n' 10:30:54.845993 Received DATA (on stdin) 10:30:54.846197 > 38 bytes data, server => client 10:30:54.846301 '229 Entering Passive Mode (|||34801|)\n' 10:30:54.849416 < 8 bytes data, client => server 10:30:54.849614 'TYPE I\r\n' 10:30:54.851589 Received DATA (on stdin) 10:30:54.851831 > 33 bytes data, server => client 10:30:54.851936 '200 I modify TYPE as you wanted\r\n' 10:30:54.859003 < 21 bytes data, client => server 10:30:54.859247 'SIZE verifiedserver\r\n' 10:30:54.862850 Received DATA (on stdin) 10:30:54.863110 > 8 bytes data, server => client 10:30:54.863262 '213 17\r\n' 10:30:54.866586 < 21 bytes data, client => server 10:30:54.866865 'RETR verifiedserver\r\n' 10:30:54.868868 Received DATA (on stdin) 10:30:54.869066 > 29 bytes data, server => client 10:30:54.869181 '150 Binary junk (17 bytes).\r\n' 10:30:54.879587 Received DATA (on stdin) 10:30:54.879865 > 28 bytes data, server => client 10:30:54.880065 '226 File transfer complete\r\n' 10:30:54.917443 < 6 bytes data, client => server 10:30:54.917731 'QUIT\r\n' 10:30:54.919450 Received DATA (on stdin) 10:30:54.919677 > 18 bytes data, server => client 10:30:54.919792 '221 bye bye baby\r\n' 10:30:54.924815 ====> Client disconnect 10:30:54.926133 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:55.837397 Running IPv4 version 10:30:55.838218 Listening on port 34801 10:30:55.838765 Wrote pid 80291 to log/1/server/ftp_sockdata.pid 10:30:55.838960 Received PING (on stdin) 10:30:55.841272 Received PORT (oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind115 ../src/curl -q --output log/5/curl115.out --include --trace-ascii log/5/trace115 --trace-time ftp://127.0.0.1:43393/115 > log/5/stdout115 2> log/5/stderr115 n stdin) 10:30:55.848930 ====> Client connect 10:30:55.869130 Received DATA (on stdin) 10:30:55.869263 > 17 bytes data, server => client 10:30:55.869362 'WE ROOLZ: 79585\r\n' 10:30:55.872943 Received DISC (on stdin) 10:30:55.873302 ====> Client forcibly disconnected 10:30:55.874734 Received QUIT (on stdin) 10:30:55.875001 quits 10:30:55.875537 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 314 bluah you f00l Testnum 114 === End of file server.cmd === Start of file valgrind114 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind114 test 0115...[FTP download, failed PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind115 ../src/curl -q --output log/5/curl115.out --include --trace-ascii log/5/trace115 --trace-time ftp://127.0.0.1:43393/115 > log/5/stdout115 2> log/5/stderr115 115: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 115 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind115 ../src/curl -q --output log/5/curl115.out --include --trace-ascii log/5/trace115 --trace-time ftp://127.0.0.1:43393/115 > log/5/stdout115 2> log/5/stderr115 === End of file commands.log === Start of file ftp_server.log 10:30:55.426272 ====> Client connect 10:30:55.427793 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:55.431209 < "USER anonymous" 10:30:55.431868 > "331 We are happy you popped in![CR][LF]" 10:30:55.435007 < "PASS ftp@example.com" 10:30:55.435638 > "230 Welcome you silly person[CR][LF]" 10:30:55.439442 < "PWD" 10:30:55.441140 > "257 "/" is current directory[CR][LF]" 10:30:55.443338 < "EPSV" 10:30:55.443915 ====> Passive DATA channel requested by client 10:30:55.444339 DATA sockfilt for passive data channel starting... 10:30:55.457226 DATA sockfilt for passive data channel started (pid 80435) 10:30:55.458600 DATA sockfilt for passive data channel listens on port 38093 10:30:55.459248 > "229 Entering Passive Mode (|||38093|)[LF]" 10:30:55.459658 Client has been notified that DATA conn will be accepted on port 38093 10:30:55.462739 Client connects to port 38093 10:30:55.463209 ====> Client established passive DATA connection on port 38093 10:30:55.464288 < "TYPE I" 10:30:55.464942 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:55.470945 < "SIZE verifiedserver" 10:30:55.471686 > "213 17[CR][LF]" 10:30:55.479394 < "RETR verifiedserver" 10:30:55.480664 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:55.483382 =====> Closing passive DATA connection... 10:30:55.483770 Server disconnects passive DATA connection 10:30:55.484608 Server disconnected passive DATA connection 10:30:55.485006 DATA sockfilt for passive data channel quits (pid 80435) 10:30:55.487540 DATA sockfilt for passive data channel quit (pid 80435) 10:30:55.487965 =====> Closed passive DATA connection 10:30:55.488503 > "226 File transfer complete[CR][LF]" 10:30:55.536884 < "QUIT" 10:30:55.537886 > "221 bye bye baby[CR][LF]" 10:30:55.539742 MAIN sockfilt said DISC 10:30:55.541018 ====> Client disconnected 10:30:55.542017 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:55.096553 ====> Client connect 10:30:55.098904 Received DATA (on stdin) 10:30:55.099173 > 160 bytes data, server => client 10:30:55.099280 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:55.099372 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:55.099454 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:55.101165 < 16 bytes data, client => server 10:30:55.101465 'USER anonymous\r\n' 10:30:55.103676 Received DATA (on stdin) 10:30:55.103889 > 33 bytes data, server => client 10:30:55.103994 '331 We are happy you popped in!\r\n' 10:30:55.104901 < 22 bytes data, client => server 10:30:55.105149 'PASS ftp@example.com\r\n' 10:30:55.108328 Received DATA (on stdin) 10:30:55.108562 > 30 bytes data, server => client 10:30:55.108781 '230 Welcome you silly person\r\n' 10:30:55.109507 < 5 bytes data, client => server 10:30:55.109696 'PWD\r\n' 10:30:55.111249 Received DATA (on stdin) 10:30:55.111506 > 30 bytes data, server => client 10:30:55.111736 '257 "/" is current directory\r\n' 10:30:55.113216 < 6 bytes data, client => server 10:30:55.113455 'EPSV\r\n' 10:30:55.131455 Received DATA (on stdin) 10:30:55.131667 > 38 bytes data, server => client 10:30:55.131789 '229 Entering Passive Mode (|||38093|)\n' 10:30:55.133514 < 8 bytes data, client => server 10:30:55.133676 'TYPE I\r\n' 10:30:55.136727 Received DATA (on stdin) 10:30:55.136972 > 33 bytes data, server => client 10:30:55.137117 '200 I modify TYPE as you wanted\r\n' 10:30:55.140773 < 21 bytes data, client => server 10:30:55.140992 'SIZE verifiedserver\r\n' 10:30:55.143396 Received DATA (on stdin) 10:30:55.143622 > 8 bytes data, server => client 10:30:55.143718 '213 17\r\n' 10:30:55.149305 < 21 bytes data, client => server 10:30:55.149547 'RETR verifiedserver\r\n' 10:30:55.151228 Received DATA (on stdin) 10:30:55.151473 > 29 bytes data, server => client 10:30:55.152916 '150 Binary junk (17 bytes).\r\n' 10:30:55.162172 Received DATA (on stdin) 10:30:55.162369 > 28 bytes data, server => client 10:30:55.162491 '226 File transfer complete\r\n' 10:30:55.207150 < 6 bytes data, client => server 10:30:55.207280 'QUIT\r\n' 10:30:55.208472 Received DATA (on stdin) 10:30:55.208671 > 18 bytes data, server => client 10:30:55.209561 '221 bye bye baby\r\n' 10:30:55.210425 ====> Client disconnect 10:30:55.211464 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:55.125936 Running IPv4 version 10:30:55.126486 Listening on port 38093 10:30:55.126921 Wrote pid 80435 to log/5/server/ftp_sockdata.pid 10:30:55.127961 Received PING (on stdin) 10:30:55.129009 Received PORT (on stdin) 10:30:55.133105 ====> Client connect 10:30:55.152419 Received DATA (on stdin) 10:30:55.152728 > 17 bytes data, server => client 10:30:55.153392 'WE ROOLZ: 79602\r\n' 10:30:55.155413 Received DISC (on stdin) 10:30:55.156542 ====> Client forcibly disconnected 10:30:55.157060 Received QUIT (on stdin) 10:30:55.157190 quits 10:30:55.157701 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind117 ../src/curl -q --output log/8/curl117.out --include --trace-ascii log/8/trace117 --trace-time ftp://127.0.0.1:38061/117 > log/8/stdout117 2> log/8/stderr117 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind116 ../src/curl -q --output log/6/curl116.out --include --trace-ascii log/6/trace116 --trace-time ftp://127.0.0.1:33323/116 -P 1.2.3.4 > log/6/stdout116 2> log/6/stderr116 REPLY PASV 314 bluah you f00l REPLY EPSV 314 bluah you f00l Testnum 115 === End of file server.cmd === Start of file valgrind115 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind115 test 0117...[FTP download, failed TYPE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind117 ../src/curl -q --output log/8/curl117.out --include --trace-ascii log/8/trace117 --trace-time ftp://127.0.0.1:38061/117 > log/8/stdout117 2> log/8/stderr117 117: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 117 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind117 ../src/curl -q --output log/8/curl117.out --include --trace-ascii log/8/trace117 --trace-time ftp://127.0.0.1:38061/117 > log/8/stdout117 2> log/8/stderr117 === End of file commands.log === Start of file ftp_server.log 10:30:55.529633 ====> Client connect 10:30:55.531037 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:55.536584 < "USER anonymous" 10:30:55.537041 > "331 We are happy you popped in![CR][LF]" 10:30:55.542871 < "PASS ftp@example.com" 10:30:55.543407 > "230 Welcome you silly person[CR][LF]" 10:30:55.546710 < "PWD" 10:30:55.547465 > "257 "/" is current directory[CR][LF]" 10:30:55.549419 < "EPSV" 10:30:55.550148 ====> Passive DATA channel requested by client 10:30:55.550499 DATA sockfilt for passive data channel starting... 10:30:55.565703 DATA sockfilt for passive data channel started (pid 80469) 10:30:55.567149 DATA sockfilt for passive data channel listens on port 43017 10:30:55.567812 > "229 Entering Passive Mode (|||43017|)[LF]" 10:30:55.568146 Client has been notified that DATA conn will be accepted on port 43017 10:30:55.570065 Client connects to port 43017 10:30:55.570681 ====> Client established passive DATA connection on port 43017 10:30:55.573101 < "TYPE I" 10:30:55.573936 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:55.576890 < "SIZE verifiedserver" 10:30:55.577634 > "213 17[CR][LF]" 10:30:55.580504 < "RETR verifiedserver" 10:30:55.581233 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:55.582661 =====> Closing passive DATA connection... 10:30:55.583019 Server disconnects passive DATA connection 10:30:55.585698 Server disconnected passive DATA connection 10:30:55.586051 DATA sockfilt for passive data channel quits (pid 80469) 10:30:55.588030 DATA sockfilt for passive data channel quit (pid 80469) 10:30:55.588595 =====> Closed passive DATA connection 10:30:55.589071 > "226 File transfer complete[CR][LF]" 10:30:55.630280 < "QUIT" 10:30:55.630751 > "221 bye bye baby[CR][LF]" 10:30:55.637285 MAIN sockfilt said DISC 10:30:55.637904 ====> Client disconnected 10:30:55.638570 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:56.195886 ====> Client connect 10:30:56.204760 Received DATA (on stdin) 10:30:56.205166 > 160 bytes data, server => client 10:30:56.205432 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:56.205666 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:56.205805 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:56.206798 < 16 bytes data, client => server 10:30:56.206991 'USER anonymous\r\n' 10:30:56.208215 Received DATA (on stdin) 10:30:56.208376 > 33 bytes data, server => client 10:30:56.208475 '331 We are happy you popped in!\r\n' 10:30:56.213222 < 22 bytes data, client => server 10:30:56.213367 'PASS ftp@example.com\r\n' 10:30:56.214571 Received DATA (on stdin) 10:30:56.214747 > 30 bytes data, server => client 10:30:56.214832 '230 Welcome you silly person\r\n' 10:30:56.215801 < 5 bytes data, client => server 10:30:56.216017 'PWD\r\n' 10:30:56.218657 Received DATA (on stdin) 10:30:56.218847 > 30 bytes data, server => client 10:30:56.218959 '257 "/" is current directory\r\n' 10:30:56.219855 < 6 bytes data, client => server 10:30:56.220000 'EPSV\r\n' 10:30:56.239004 Received DATA (on stdin) 10:30:56.239256 > 38 bytes data, server => client 10:30:56.239372 '229 Entering Passive Mode (|||43017|)\n' 10:30:56.242627 < 8 bytes data, client => server 10:30:56.242956 'TYPE I\r\n' 10:30:56.245672 Received DATA (on stdin) 10:30:56.245909 > 33 bytes data, server => client 10:30:56.246039 '200 I modify TYPE as you wanted\r\n' 10:30:56.246845 < 21 bytes data, client => server 10:30:56.247059 'SIZE verifiedserver\r\n' 10:30:56.249378 Received DATA (on stdin) 10:30:56.249560 > 8 bytes data, server => client 10:30:56.249700 '213 17\r\n' 10:30:56.250479 < 21 bytes data, client => server 10:30:56.250680 'RETR verifiedserver\r\n' 10:30:56.253328 Received DATA (on stdin) 10:30:56.253572 > 29 bytes data, server => client 10:30:56.253709 '150 Binary junk (17 bytes).\r\n' 10:30:56.261267 Received DATA (on stdin) 10:30:56.261485 > 28 bytes data, server => client 10:30:56.261635 '226 File transfer complete\r\n' 10:30:56.297700 < 6 bytes data, client => server 10:30:56.297969 'QUIT\r\n' 10:30:56.302085 Received DATA (on stdin) 10:30:56.302261 > 18 bytes data, server => client 10:30:56.302379 '221 bye bye baby\r\n' 10:30:56.307879 ====> Client disconnect 10:30:56.310061 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:55.234720 Running IPv4 version 10:30:55.235521 Listening on port 43017 10:30:55.236086 Wrote pid 80469 to log/8/server/ftp_sockdata.pid 10:30:55.236340 Received PING (on stdin) 10:30:55.237470 Received PORT (on stdin) 10:30:55.240697 ====> Client connect 10:30:55.255359 Received DATA (on stdin) 10:30:55.255587 > 17 bytes data, server => client 10:30:55.255696 'WE ROOLZ: 79508\r\n' 10:30:55.256088 Received DISC (on stdin) 10:30:55.256313 ====> Client forcibly disconnected 10:30:55.257508 Received QUIT (on stdin) 10:30:55.257727 quits 10:30:55.258234 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 314 bluah you f00l REPLY TYPE 314 bluah you f00l Testnum 117 === End of file server.cmd === Start of file valgrind117 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind117 test 0116...[FTP download, failed PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind116 ../src/curl -q --output log/6/curl116.out --include --trace-ascii log/6/trace116 --trace-time ftp://127.0.0.1:33323/116 -P 1.2.3.4 > log/6/stdout116 2> log/6/stderr116 116: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 116 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind116 ../src/curl -q --output log/6/curl116.out --include --trace-ascii log/6/trace116 --trace-time ftp://127.0.0.1:33323/116 -P 1.2.3.4 > log/6/stdout116 2> log/6/stderr116 === End of file commands.log === Start of file ftp_server.log 10:30:55.465714 ====> Client connect 10:30:55.467461 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:55.475541 < "USER anonymous" 10:30:55.476107 > "331 We are happy you popped in![CR][LF]" 10:30:55.484796 < "PASS ftp@example.com" 10:30:55.486416 > "230 Welcome you silly person[CR][LF]" 10:30:55.488056 < "PWD" 10:30:55.489625 > "257 "/" is current directory[CR][LF]" 10:30:55.491465 < "EPSV" 10:30:55.491885 ====> Passive DATA channel requested by client 10:30:55.492149 DATA sockfilt for passive data channel starting... 10:30:55.505921 DATA sockfilt for passive data channel started (pid 80460) 10:30:55.514265 DATA sockfilt for passive data channel listens on port 38929 10:30:55.515086 > "229 Entering Passive Mode (|||38929|)[LF]" 10:30:55.515548 Client has been notified that DATA conn will be accepted on port 38929 10:30:55.518139 Client connects to port 38929 10:30:55.518742 ====> Client established passive DATA connection on port 38929 10:30:55.520153 < "TYPE I" 10:30:55.520935 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:55.530346 < "SIZE verifiedserver" 10:30:55.532001 > "213 17[CR][LF]" 10:30:55.535756 < "RETR verifiedserver" 10:30:55.536392 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:55.537247 =====> Closing passive DATA connection... 10:30:55.538495 Server disconnects passive DATA connection 10:30:55.542812 Server disconnected passive DATA connection 10:30:55.543201 DATA sockfilt for passive data channel quits (pid 80460) 10:30:55.547247 DATA sockfilt for passive data channel quit (pid 80460) 10:30:55.547666 =====> Closed passive DATA connection 10:30:55.548033 > "226 File transfer complete[CR][LF]" 10:30:55.588154 < "QUIT" 10:30:55.588638 > "221 bye bye baby[CR][LF]" 10:30:55.591007 MAIN sockfilt said DISC 10:30:55.592055 ====> Client disconnected 10:30:55.592802 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:56.132211 ====> Client connect 10:30:56.139962 Received DATA (on stdin) 10:30:56.140252 > 160 bytes data, server => client 10:30:56.140377 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:56.140485 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:56.140566 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:56.145169 < 16 bytes data, client => server 10:30:56.145421 'USER anonymous\r\n' 10:30:56.149631 Received DATA (on stdin) 10:30:56.149817 > 33 bytes data, server => client 10:30:56.149928 '331 We are happy you popped in!\r\n' 10:30:56.154576 < 22 bytes data, client => server 10:30:56.154801 'PASS ftp@example.com\r\n' 10:30:56.156467 Received DATA (on stdin) 10:30:56.156788 > 30 bytes data, server => client 10:30:56.157018 '230 Welcome you silly person\r\n' 10:30:56.158030 < 5 bytes data, client => server 10:30:56.158206 'PWD\r\n' 10:30:56.159678 Received DATA (on stdin) 10:30:56.159895 > 30 bytes data, server => client 10:30:56.160119 '257 "/" is current directory\r\n' 10:30:56.161786 < 6 bytes data, client => server 10:30:56.161982 'EPSV\r\n' 10:30:56.186944 Received DATA (on stdin) 10:30:56.187178 > 38 bytes data, server => client 10:30:56.187317 '229 Entering Passive Mode (|||38929|)\n' 10:30:56.189457 < 8 bytes data, client => server 10:30:56.189850 'TYPE I\r\n' 10:30:56.196733 Received DATA (on stdin) 10:30:56.197022 > 33 bytes data, server => client 10:30:56.197133 '200 I modify TYPE as you wanted\r\n' 10:30:56.197919 < 21 bytes data, client => server 10:30:56.198146 'SIZE verifiedserver\r\n' 10:30:56.202111 Received DATA (on stdin) 10:30:56.202307 > 8 bytes data, server => client 10:30:56.202512 '213 17\r\n' 10:30:56.205591 < 21 bytes data, client => server 10:30:56.205803 'RETR verifiedserver\r\n' 10:30:56.208804 Received DATA (on stdin) 10:30:56.208995 > 29 bytes data, server => client 10:30:56.209146 '150 Binary junk (17 bytes).\r\n' 10:30:56.219557 Received DATA (on stdin) 10:30:56.219775 > 28 bytes data, server => client 10:30:56.219864 '226 File transfer complete\r\n' 10:30:56.255787 < 6 bytes data, client => server 10:30:56.255943 'QUIT\r\n' 10:30:56.260221 Received DATA (on stdin) 10:30:56.260460 > 18 bytes data, server => client 10:30:56.260737 '221 bye bye baby\r\n' 10:30:56.261865 ====> Client disconnect 10:30:56.262605 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:55.174793 Running IPv4 version 10:30:55.175448 Listening on port 38929 10:30:55.175965 Wrote pid 80460 to log/6/server/ftp_sockdata.pid 10:30:55.176200 Received PING (on stdin) 10:30:55.180771 Received PORT (on stdin) 10:30:55.188811 ====> Client connect 10:30:55.212759 Received DATA (on stdin) 10:30:55.213072 > 17 bytes data, server => client 10:30:55.213280 'WE ROOLZ: 79480\r\n' 10:30:55.213637 Received DISC (on stdin) 10:30:55.213833 ====> Client forcibly disconnected 10:30:55.214686 Received QUIT (on stdin) 10:30:55.214799 quits 10:30:55.215364 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPRT 500 we don't like EPRT now REPLY PORT 314 bluah you f00l Testnum 116 === End of file server.cmd === Start of file valgrind116 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind118 ../src/curl -q --output log/4/curl118.out --include --trace-ascii log/4/trace118 --trace-time ftp://127.0.0.1:42635/118 > log/4/stdout118 2> log/4/stderr118 your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind116 test 0118...[FTP download, failed RETR] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind118 ../src/curl -q --output log/4/curl118.out --include --trace-ascii log/4/trace118 --trace-time ftp://127.0.0.1:42635/118 > log/4/stdout118 2> log/4/stderr118 118: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 118 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind118 ../src/curl -q --output log/4/curl118.out --include --trace-ascii log/4/trace118 --trace-time ftp://127.0.0.1:42635/118 > log/4/stdout118 2> log/4/stderr118 === End of file commands.log === Start of file ftp_server.log 10:30:55.543630 ====> Client connect 10:30:55.545328 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:55.550281 < "USER anonymous" 10:30:55.550738 > "331 We are happy you popped in![CR][LF]" 10:30:55.553142 < "PASS ftp@example.com" 10:30:55.554005 > "230 Welcome you silly person[CR][LF]" 10:30:55.556324 < "PWD" 10:30:55.557015 > "257 "/" is current directory[CR][LF]" 10:30:55.565874 < "EPSV" 10:30:55.566292 ====> Passive DATA channel requested by client 10:30:55.566534 DATA sockfilt for passive data channel starting... 10:30:55.582105 DATA sockfilt for passive data channel started (pid 80473) 10:30:55.583594 DATA sockfilt for passive data channel listens on port 41241 10:30:55.584255 > "229 Entering Passive Mode (|||41241|)[LF]" 10:30:55.584582 Client has been notified that DATA conn will be accepted on port 41241 10:30:55.587647 Client connects to port 41241 10:30:55.588108 ====> Client established passive DATA connection on port 41241 10:30:55.592578 < "TYPE I" 10:30:55.593113 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:55.598699 < "SIZE verifiedserver" 10:30:55.599237 > "213 17[CR][LF]" 10:30:55.600769 < "RETR verifiedserver" 10:30:55.601313 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:55.602242 =====> Closing passive DATA connection... 10:30:55.602601 Server disconnects passive DATA connection 10:30:55.604271 Server disconnected passive DATA connection 10:30:55.604726 DATA sockfilt for passive data channel quits (pid 80473) 10:30:55.606905 DATA sockfilt for passive data channel quit (pid 80473) 10:30:55.607380 =====> Closed passive DATA connection 10:30:55.607815 > "226 File transfer complete[CR][LF]" 10:30:55.649241 < "QUIT" 10:30:55.650015 > "221 bye bye baby[CR][LF]" 10:30:55.656430 MAIN sockfilt said DISC 10:30:55.657041 ====> Client disconnected 10:30:55.658796 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:56.212890 ====> Client connect 10:30:56.216534 Received DATA (on stdin) 10:30:56.216971 > 160 bytes data, server => client 10:30:56.217229 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:56.217372 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:56.217478 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:56.220122 < 16 bytes data, client => server 10:30:56.220316 'USER anonymous\r\n' 10:30:56.221957 Received DATA (on stdin) 10:30:56.222163 > 33 bytes data, server => client 10:30:56.222304 '331 We are happy you popped in!\r\n' 10:30:56.223168 < 22 bytes data, client => server 10:30:56.223501 'PASS ftp@example.com\r\n' 10:30:56.225169 Received DATA (on stdin) 10:30:56.225462 > 30 bytes data, server => client 10:30:56.225633 '230 Welcome you silly person\r\n' 10:30:56.226487 < 5 bytes data, client => server 10:30:56.226827 'PWD\r\n' 10:30:56.232786 Received DATA (on stdin) 10:30:56.233094 > 30 bytes data, server => client 10:30:56.233250 '257 "/" is current directory\r\n' 10:30:56.235583 < 6 bytes data, client => server 10:30:56.235739 'EPSV\r\n' 10:30:56.256778 Received DATA (on stdin) 10:30:56.257107 > 38 bytes data, server => client 10:30:56.257234 '229 Entering Passive Mode (|||41241|)\n' 10:30:56.260996 < 8 bytes data, client => server 10:30:56.261168 'TYPE I\r\n' 10:30:56.264336 Received DATA (on stdin) 10:30:56.264513 > 33 bytes data, server => client 10:30:56.264755 '200 I modify TYPE as you wanted\r\n' 10:30:56.269169 < 21 bytes data, client => server 10:30:56.269442 'SIZE verifiedserver\r\n' 10:30:56.270447 Received DATA (on stdin) 10:30:56.270637 > 8 bytes data, server => client 10:30:56.270719 '213 17\r\n' 10:30:56.271316 < 21 bytes data, client => server 10:30:56.271468 'RETR verifiedserver\r\n' 10:30:56.272508 Received DATA (on stdin) 10:30:56.272871 > 29 bytes data, server => client 10:30:56.272995 '150 Binary junk (17 bytes).\r\n' 10:30:56.280746 Received DATA (on stdin) 10:30:56.280989 > 28 bytes data, server => client 10:30:56.281124 '226 File transfer complete\r\n' 10:30:56.318044 < 6 bytes data, client => server 10:30:56.318324 'QUIT\r\n' 10:30:56.321217 Received DATA (on stdin) 10:30:56.321542 > 18 bytes data, server => client 10:30:56.321703 '221 bye bye baby\r\n' 10:30:56.327032 ====> Client disconnect 10:30:56.328799 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:55.248465 Running IPv4 version 10:30:55.249220 Listening on port 41241 10:30:55.249831 Wrote pid 80473 to log/4/server/ftp_sockdata.pid 10:30:55.250087 Received PING (on stdin) 10:30:55.253910 Received PORT (on stdin) 10:30:55.258450 ====> Client connect 10:30:55.274248 Received DATA (on stdin) 10:30:55.274542 > 17 bytes data, server => client 10:30:55.274673 'WE ROOLZ: 79516\r\n' 10:30:55.275034 Received DISC (on stdin) 10:30:55.275235 ====> Client forcibly disconnected 10:30:55.276312 Received QUIT (on stdin) 10:30:55.276512 quits 10:30:55.277019 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY RETR 314 bluah you f00l REPLY EPSV 314 bluah you f00l REPLY SIZE 500 command not understood Testnum 118 === End of file server.cmd === Start of file valgrind118 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind119 ../src/curl -q --output log/7/curl119.out --include --trace-ascii log/7/trace119 --trace-time ftp://127.0.0.1:38253/119 -P - > log/7/stdout119 2> log/7/stderr119 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind120 ../src/curl -q --output log/3/curl120.out --include --trace-ascii log/3/trace120 --trace-time ftp://127.0.0.1:33831/120 -Q "-DELE file" > log/3/stdout120 2> log/3/stderr120 libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind118 test 0119...[FTP download, failed RETR with PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind119 ../src/curl -q --output log/7/curl119.out --include --trace-ascii log/7/trace119 --trace-time ftp://127.0.0.1:38253/119 -P - > log/7/stdout119 2> log/7/stderr119 119: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 119 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind119 ../src/curl -q --output log/7/curl119.out --include --trace-ascii log/7/trace119 --trace-time ftp://127.0.0.1:38253/119 -P - > log/7/stdout119 2> log/7/stderr119 === End of file commands.log === Start of file ftp_server.log 10:30:55.810229 ====> Client connect 10:30:55.811532 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:55.814774 < "USER anonymous" 10:30:55.815381 > "331 We are happy you popped in![CR][LF]" 10:30:55.817403 < "PASS ftp@example.com" 10:30:55.818064 > "230 Welcome you silly person[CR][LF]" 10:30:55.819822 < "PWD" 10:30:55.820303 > "257 "/" is current directory[CR][LF]" 10:30:55.824315 < "EPSV" 10:30:55.824710 ====> Passive DATA channel requested by client 10:30:55.824937 DATA sockfilt for passive data channel starting... 10:30:55.839158 DATA sockfilt for passive data channel started (pid 80578) 10:30:55.840407 DATA sockfilt for passive data channel listens on port 33755 10:30:55.840964 > "229 Entering Passive Mode (|||33755|)[LF]" 10:30:55.841295 Client has been notified that DATA conn will be accepted on port 33755 10:30:55.845263 Client connects to port 33755 10:30:55.845827 ====> Client established passive DATA connection on port 33755 10:30:55.846871 < "TYPE I" 10:30:55.847342 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:55.858304 < "SIZE verifiedserver" 10:30:55.858878 > "213 17[CR][LF]" 10:30:55.860710 < "RETR verifiedserver" 10:30:55.861306 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:55.862156 =====> Closing passive DATA connection... 10:30:55.862416 Server disconnects passive DATA connection 10:30:55.866572 Server disconnected passive DATA connection 10:30:55.866950 DATA sockfilt for passive data channel quits (pid 80578) 10:30:55.868994 DATA sockfilt for passive data channel quit (pid 80578) 10:30:55.869618 =====> Closed passive DATA connection 10:30:55.870281 > "226 File transfer complete[CR][LF]" 10:30:55.911303 < "QUIT" 10:30:55.911925 > "221 bye bye baby[CR][LF]" 10:30:55.913602 MAIN sockfilt said DISC 10:30:55.914385 ====> Client disconnected 10:30:55.915237 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:56.480777 ====> Client connect 10:30:56.482685 Received DATA (on stdin) 10:30:56.482923 > 160 bytes data, server => client 10:30:56.483042 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:56.483134 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:56.483204 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:56.484818 < 16 bytes data, client => server 10:30:56.485119 'USER anonymous\r\n' 10:30:56.486573 Received DATA (on stdin) 10:30:56.486816 > 33 bytes data, server => client 10:30:56.486939 '331 We are happy you popped in!\r\n' 10:30:56.487691 < 22 bytes data, client => server 10:30:56.487922 'PASS ftp@example.com\r\n' 10:30:56.489226 Received DATA (on stdin) 10:30:56.489435 > 30 bytes data, server => client 10:30:56.489525 '230 Welcome you silly person\r\n' 10:30:56.490276 < 5 bytes data, client => server 10:30:56.490527 'PWD\r\n' 10:30:56.491483 Received DATA (on stdin) 10:30:56.491728 > 30 bytes data, server => client 10:30:56.491865 '257 "/" is current directory\r\n' 10:30:56.493334 < 6 bytes data, client => server 10:30:56.493599 'EPSV\r\n' 10:30:56.514053 Received DATA (on stdin) 10:30:56.514201 > 38 bytes data, server => client 10:30:56.514307 '229 Entering Passive Mode (|||33755|)\n' 10:30:56.516325 < 8 bytes data, client => server 10:30:56.516543 'TYPE I\r\n' 10:30:56.524757 Received DATA (on stdin) 10:30:56.525033 > 33 bytes data, server => client 10:30:56.525145 '200 I modify TYPE as you wanted\r\n' 10:30:56.526267 < 21 bytes data, client => server 10:30:56.526532 'SIZE verifiedserver\r\n' 10:30:56.530060 Received DATA (on stdin) 10:30:56.530286 > 8 bytes data, server => client 10:30:56.530376 '213 17\r\n' 10:30:56.531121 < 21 bytes data, client => server 10:30:56.531347 'RETR verifiedserver\r\n' 10:30:56.532478 Received DATA (on stdin) 10:30:56.532723 > 29 bytes data, server => client 10:30:56.532835 '150 Binary junk (17 bytes).\r\n' 10:30:56.541443 Received DATA (on stdin) 10:30:56.541727 > 28 bytes data, server => client 10:30:56.541850 '226 File transfer complete\r\n' 10:30:56.581536 < 6 bytes data, client => server 10:30:56.581777 'QUIT\r\n' 10:30:56.583118 Received DATA (on stdin) 10:30:56.583316 > 18 bytes data, server => client 10:30:56.583431 '221 bye bye baby\r\n' 10:30:56.584184 ====> Client disconnect 10:30:56.585672 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:55.508593 Running IPv4 version 10:30:55.509294 Listening on port 33755 10:30:55.509723 Wrote pid 80578 to log/7/server/ftp_sockdata.pid 10:30:55.509894 Received PING (on stdin) 10:30:55.510888 Received PORT (on stdin) 10:30:55.515462 ====> Client connect 10:30:55.536104 Received DATA (on stdin) 10:30:55.536397 > 17 bytes data, server => client 10:30:55.536510 'WE ROOLZ: 79543\r\n' 10:30:55.537103 Received DISC (on stdin) 10:30:55.537314 ====> Client forcibly disconnected 10:30:55.538374 Received QUIT (on stdin) 10:30:55.538581 quits 10:30:55.539065 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY RETR 314 bluah you f00l REPLY SIZE 500 command not understood Testnum 119 === End of file server.cmd === Start of file valgrind119 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind119 test 0120...[ftp downloCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind121 ../src/curl -q --output log/2/curl121.out --include --trace-ascii log/2/trace121 --trace-time ftp://127.0.0.1:37959/121 -Q "-DELE after_transfer" -Q "DELE before_transfer" > log/2/stdout121 2> log/2/stderr121 ad with post-quote delete operation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind120 ../src/curl -q --output log/3/curl120.out --include --trace-ascii log/3/trace120 --trace-time ftp://127.0.0.1:33831/120 -Q "-DELE file" > log/3/stdout120 2> log/3/stderr120 120: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 120 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind120 ../src/curl -q --output log/3/curl120.out --include --trace-ascii log/3/trace120 --trace-time ftp://127.0.0.1:33831/120 -Q "-DELE file" > log/3/stdout120 2> log/3/stderr120 === End of file commands.log === Start of file ftp_server.log 10:30:55.841039 ====> Client connect 10:30:55.842408 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:55.846491 < "USER anonymous" 10:30:55.846957 > "331 We are happy you popped in![CR][LF]" 10:30:55.851033 < "PASS ftp@example.com" 10:30:55.851589 > "230 Welcome you silly person[CR][LF]" 10:30:55.862159 < "PWD" 10:30:55.862657 > "257 "/" is current directory[CR][LF]" 10:30:55.865389 < "EPSV" 10:30:55.865952 ====> Passive DATA channel requested by client 10:30:55.866202 DATA sockfilt for passive data channel starting... 10:30:55.879391 DATA sockfilt for passive data channel started (pid 80603) 10:30:55.880880 DATA sockfilt for passive data channel listens on port 39525 10:30:55.881663 > "229 Entering Passive Mode (|||39525|)[LF]" 10:30:55.882007 Client has been notified that DATA conn will be accepted on port 39525 10:30:55.883664 Client connects to port 39525 10:30:55.884164 ====> Client established passive DATA connection on port 39525 10:30:55.886835 < "TYPE I" 10:30:55.887425 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:55.889355 < "SIZE verifiedserver" 10:30:55.890215 > "213 17[CR][LF]" 10:30:55.893445 < "RETR verifiedserver" 10:30:55.894656 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:55.895644 =====> Closing passive DATA connection... 10:30:55.896009 Server disconnects passive DATA connection 10:30:55.896766 Server disconnected passive DATA connection 10:30:55.897196 DATA sockfilt for passive data channel quits (pid 80603) 10:30:55.900419 DATA sockfilt for passive data channel quit (pid 80603) 10:30:55.900934 =====> Closed passive DATA connection 10:30:55.901427 > "226 File transfer complete[CR][LF]" 10:30:55.943344 < "QUIT" 10:30:55.943844 > "221 bye bye baby[CR][LF]" 10:30:55.948304 MAIN sockfilt said DISC 10:30:55.948933 ====> Client disconnected 10:30:55.949923 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:55.509605 ====> Client connect 10:30:55.513625 Received DATA (on stdin) 10:30:55.513909 > 160 bytes data, server => client 10:30:55.514055 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:55.514147 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:55.514224 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:55.515932 < 16 bytes data, client => server 10:30:55.516178 'USER anonymous\r\n' 10:30:55.518441 Received DATA (on stdin) 10:30:55.518655 > 33 bytes data, server => client 10:30:55.518791 '331 We are happy you popped in!\r\n' 10:30:55.520915 < 22 bytes data, client => server 10:30:55.521180 'PASS ftp@example.com\r\n' 10:30:55.524757 Received DATA (on stdin) 10:30:55.525034 > 30 bytes data, server => client 10:30:55.525145 '230 Welcome you silly person\r\n' 10:30:55.529123 < 5 bytes data, client => server 10:30:55.529319 'PWD\r\n' 10:30:55.534294 Received DATA (on stdin) 10:30:55.534473 > 30 bytes data, server => client 10:30:55.534564 '257 "/" is current directory\r\n' 10:30:55.535371 < 6 bytes data, client => server 10:30:55.535622 'EPSV\r\n' 10:30:55.552822 Received DATA (on stdin) 10:30:55.553052 > 38 bytes data, server => client 10:30:55.553161 '229 Entering Passive Mode (|||39525|)\n' 10:30:55.557038 < 8 bytes data, client => server 10:30:55.557333 'TYPE I\r\n' 10:30:55.558572 Received DATA (on stdin) 10:30:55.558815 > 33 bytes data, server => client 10:30:55.558925 '200 I modify TYPE as you wanted\r\n' 10:30:55.559713 < 21 bytes data, client => server 10:30:55.559930 'SIZE verifiedserver\r\n' 10:30:55.561464 Received DATA (on stdin) 10:30:55.561694 > 8 bytes data, server => client 10:30:55.561835 '213 17\r\n' 10:30:55.563811 < 21 bytes data, client => server 10:30:55.564073 'RETR verifiedserver\r\n' 10:30:55.567015 Received DATA (on stdin) 10:30:55.567194 > 29 bytes data, server => client 10:30:55.567292 '150 Binary junk (17 bytes).\r\n' 10:30:55.576348 Received DATA (on stdin) 10:30:55.576737 > 28 bytes data, server => client 10:30:55.576871 '226 File transfer complete\r\n' 10:30:55.609584 < 6 bytes data, client => server 10:30:55.609881 'QUIT\r\n' 10:30:55.615023 Received DATA (on stdin) 10:30:55.615228 > 18 bytes data, server => client 10:30:55.615328 '221 bye bye baby\r\n' 10:30:55.618948 ====> Client disconnect 10:30:55.623516 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:55.548724 Running IPv4 version 10:30:55.549365 Listening on port 39525 10:30:55.549887 Wrote pid 80603 to log/3/server/ftp_sockdata.pid 10:30:55.550093 Received PING (on stdin) 10:30:55.551208 Received PORT (on stdin) 10:30:55.554369 ====> Client connect 10:30:55.567013 Received DATA (on stdin) 10:30:55.567194 > 17 bytes data, server => client 10:30:55.567290 'WE ROOLZ: 79555\r\n' 10:30:55.567589 Received DISC (on stdin) 10:30:55.567793 ====> Client forcibly disconnected 10:30:55.568794 Received QUIT (on stdin) 10:30:55.569061 quits 10:30:55.569723 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 314 bluah you f00l Testnum 120 === End of file server.cmd === Start of file valgrind120 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind120 test 0121...[ftp download with post- and pre-transfer delete operations] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind121 ../src/curl -q --output log/2/curl121.out --include --trace-ascii log/2/trace121 --trace-time ftp://127.0.0.1:37959/121 -Q "-DELE after_transfer" -Q "DELE beCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind122 ../src/curl -q --output log/1/curl122.out --include --trace-ascii log/1/trace122 --trace-time ftp://127.0.0.1:38733/122 -C 5 > log/1/stdout122 2> log/1/stderr122 fore_transfer" > log/2/stdout121 2> log/2/stderr121 121: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 121 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind121 ../src/curl -q --output log/2/curl121.out --include --trace-ascii log/2/trace121 --trace-time ftp://127.0.0.1:37959/121 -Q "-DELE after_transfer" -Q "DELE before_transfer" > log/2/stdout121 2> log/2/stderr121 === End of file commands.log === Start of file ftp_server.log 10:30:55.935236 ====> Client connect 10:30:55.936786 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:55.950777 < "USER anonymous" 10:30:55.951476 > "331 We are happy you popped in![CR][LF]" 10:30:55.954707 < "PASS ftp@example.com" 10:30:55.955370 > "230 Welcome you silly person[CR][LF]" 10:30:55.957255 < "PWD" 10:30:55.957879 > "257 "/" is current directory[CR][LF]" 10:30:55.962513 < "EPSV" 10:30:55.962976 ====> Passive DATA channel requested by client 10:30:55.963242 DATA sockfilt for passive data channel starting... 10:30:55.976022 DATA sockfilt for passive data channel started (pid 80654) 10:30:55.980426 DATA sockfilt for passive data channel listens on port 46785 10:30:55.981152 > "229 Entering Passive Mode (|||46785|)[LF]" 10:30:55.981594 Client has been notified that DATA conn will be accepted on port 46785 10:30:55.989650 Client connects to port 46785 10:30:55.990177 ====> Client established passive DATA connection on port 46785 10:30:55.991111 < "TYPE I" 10:30:55.991613 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:55.996884 < "SIZE verifiedserver" 10:30:55.997736 > "213 17[CR][LF]" 10:30:56.002838 < "RETR verifiedserver" 10:30:56.003589 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:56.006094 =====> Closing passive DATA connection... 10:30:56.006479 Server disconnects passive DATA connection 10:30:56.007320 Server disconnected passive DATA connection 10:30:56.007791 DATA sockfilt for passive data channel quits (pid 80654) 10:30:56.010621 DATA sockfilt for passive data channel quit (pid 80654) 10:30:56.011111 =====> Closed passive DATA connection 10:30:56.011664 > "226 File transfer complete[CR][LF]" 10:30:56.051220 < "QUIT" 10:30:56.051725 > "221 bye bye baby[CR][LF]" 10:30:56.053746 MAIN sockfilt said DISC 10:30:56.054217 ====> Client disconnected 10:30:56.054755 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:55.603613 ====> Client connect 10:30:55.612736 Received DATA (on stdin) 10:30:55.613052 > 160 bytes data, server => client 10:30:55.613156 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:55.613235 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:55.613306 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:55.615422 < 16 bytes data, client => server 10:30:55.615553 'USER anonymous\r\n' 10:30:55.622685 Received DATA (on stdin) 10:30:55.622957 > 33 bytes data, server => client 10:30:55.623088 '331 We are happy you popped in!\r\n' 10:30:55.624874 < 22 bytes data, client => server 10:30:55.625154 'PASS ftp@example.com\r\n' 10:30:55.626539 Received DATA (on stdin) 10:30:55.626736 > 30 bytes data, server => client 10:30:55.626854 '230 Welcome you silly person\r\n' 10:30:55.627665 < 5 bytes data, client => server 10:30:55.627916 'PWD\r\n' 10:30:55.629093 Received DATA (on stdin) 10:30:55.629323 > 30 bytes data, server => client 10:30:55.629427 '257 "/" is current directory\r\n' 10:30:55.632802 < 6 bytes data, client => server 10:30:55.633066 'EPSV\r\n' 10:30:55.652341 Received DATA (on stdin) 10:30:55.652786 > 38 bytes data, server => client 10:30:55.653027 '229 Entering Passive Mode (|||46785|)\n' 10:30:55.656477 < 8 bytes data, client => server 10:30:55.656726 'TYPE I\r\n' 10:30:55.663146 Received DATA (on stdin) 10:30:55.663381 > 33 bytes data, server => client 10:30:55.663534 '200 I modify TYPE as you wanted\r\n' 10:30:55.667287 < 21 bytes data, client => server 10:30:55.667534 'SIZE verifiedserver\r\n' 10:30:55.668981 Received DATA (on stdin) 10:30:55.669222 > 8 bytes data, server => client 10:30:55.669356 '213 17\r\n' 10:30:55.671511 < 21 bytes data, client => server 10:30:55.671791 'RETR verifiedserver\r\n' 10:30:55.676858 Received DATA (on stdin) 10:30:55.677152 > 29 bytes data, server => client 10:30:55.677330 '150 Binary junk (17 bytes).\r\n' 10:30:55.682835 Received DATA (on stdin) 10:30:55.683134 > 28 bytes data, server => client 10:30:55.683275 '226 File transfer complete\r\n' 10:30:55.721670 < 6 bytes data, client => server 10:30:55.721912 'QUIT\r\n' 10:30:55.722890 Received DATA (on stdin) 10:30:55.723062 > 18 bytes data, server => client 10:30:55.723161 '221 bye bye baby\r\n' 10:30:55.724413 ====> Client disconnect 10:30:55.725393 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:55.645274 Running IPv4 version 10:30:55.646086 Listening on port 46785 10:30:55.646576 Wrote pid 80654 to log/2/server/ftp_sockdata.pid 10:30:55.646801 Received PING (on stdin) 10:30:55.650707 Received PORT (on stdin) 10:30:55.656200 ====> Client connect 10:30:55.675399 Received DATA (on stdin) 10:30:55.675678 > 17 bytes data, server => client 10:30:55.675959 'WE ROOLZ: 79558\r\n' 10:30:55.678125 Received DISC (on stdin) 10:30:55.679441 ====> Client forcibly disconnected 10:30:55.680090 Received QUIT (on stdin) 10:30:55.680310 quits 10:30:55.680878 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 121 === End of file server.cmd === Start of file valgrind121 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind121 test 0122...[FTP download resume with whole file already downloaded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind122 ../src/curl -q --output log/1/curl122.out --include --trace-ascii log/1/trace122 --trace-time ftp://127.0.0.1:38733/122 -C 5 > log/1/stdout122 2> log/1/stderr122 122: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 122 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind123 ../src/curl -q --output log/5/curl123.out --include --trace-ascii log/5/trace123 --trace-time ftp://127.0.0.1:43393/123 -T log/5/upload123 -C 51 > log/5/stdout123 2> log/5/stderr123 tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind122 ../src/curl -q --output log/1/curl122.out --include --trace-ascii log/1/trace122 --trace-time ftp://127.0.0.1:38733/122 -C 5 > log/1/stdout122 2> log/1/stderr122 === End of file commands.log === Start of file ftp_server.log 10:30:56.217750 ====> Client connect 10:30:56.219658 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:56.230801 < "USER anonymous" 10:30:56.231394 > "331 We are happy you popped in![CR][LF]" 10:30:56.233293 < "PASS ftp@example.com" 10:30:56.236001 > "230 Welcome you silly person[CR][LF]" 10:30:56.240989 < "PWD" 10:30:56.242668 > "257 "/" is current directory[CR][LF]" 10:30:56.248088 < "EPSV" 10:30:56.249020 ====> Passive DATA channel requested by client 10:30:56.249722 DATA sockfilt for passive data channel starting... 10:30:56.263950 DATA sockfilt for passive data channel started (pid 80796) 10:30:56.265773 DATA sockfilt for passive data channel listens on port 32941 10:30:56.266580 > "229 Entering Passive Mode (|||32941|)[LF]" 10:30:56.267161 Client has been notified that DATA conn will be accepted on port 32941 10:30:56.272660 Client connects to port 32941 10:30:56.273367 ====> Client established passive DATA connection on port 32941 10:30:56.275137 < "TYPE I" 10:30:56.275839 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:56.279150 < "SIZE verifiedserver" 10:30:56.280344 > "213 17[CR][LF]" 10:30:56.285036 < "RETR verifiedserver" 10:30:56.285826 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:56.286873 =====> Closing passive DATA connection... 10:30:56.287245 Server disconnects passive DATA connection 10:30:56.290358 Server disconnected passive DATA connection 10:30:56.290888 DATA sockfilt for passive data channel quits (pid 80796) 10:30:56.297727 DATA sockfilt for passive data channel quit (pid 80796) 10:30:56.298194 =====> Closed passive DATA connection 10:30:56.298583 > "226 File transfer complete[CR][LF]" 10:30:56.337907 < "QUIT" 10:30:56.338612 > "221 bye bye baby[CR][LF]" 10:30:56.344746 MAIN sockfilt said DISC 10:30:56.345384 ====> Client disconnected 10:30:56.346264 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:55.884863 ====> Client connect 10:30:55.890796 Received DATA (on stdin) 10:30:55.891134 > 160 bytes data, server => client 10:30:55.891267 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:55.891358 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:55.891461 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:55.897327 < 16 bytes data, client => server 10:30:55.897635 'USER anonymous\r\n' 10:30:55.902567 Received DATA (on stdin) 10:30:55.902751 > 33 bytes data, server => client 10:30:55.902856 '331 We are happy you popped in!\r\n' 10:30:55.903562 < 22 bytes data, client => server 10:30:55.903752 'PASS ftp@example.com\r\n' 10:30:55.907900 Received DATA (on stdin) 10:30:55.908213 > 30 bytes data, server => client 10:30:55.908366 '230 Welcome you silly person\r\n' 10:30:55.909642 < 5 bytes data, client => server 10:30:55.909954 'PWD\r\n' 10:30:55.914894 Received DATA (on stdin) 10:30:55.915271 > 30 bytes data, server => client 10:30:55.915576 '257 "/" is current directory\r\n' 10:30:55.916998 < 6 bytes data, client => server 10:30:55.917379 'EPSV\r\n' 10:30:55.939028 Received DATA (on stdin) 10:30:55.939429 > 38 bytes data, server => client 10:30:55.939744 '229 Entering Passive Mode (|||32941|)\n' 10:30:55.942982 < 8 bytes data, client => server 10:30:55.943286 'TYPE I\r\n' 10:30:55.947572 Received DATA (on stdin) 10:30:55.947819 > 33 bytes data, server => client 10:30:55.947916 '200 I modify TYPE as you wanted\r\n' 10:30:55.948953 < 21 bytes data, client => server 10:30:55.949216 'SIZE verifiedserver\r\n' 10:30:55.950965 Received DATA (on stdin) 10:30:55.951202 > 8 bytes data, server => client 10:30:55.951899 '213 17\r\n' 10:30:55.954778 < 21 bytes data, client => server 10:30:55.955024 'RETR verifiedserver\r\n' 10:30:55.960844 Received DATA (on stdin) 10:30:55.961103 > 29 bytes data, server => client 10:30:55.961205 '150 Binary junk (17 bytes).\r\n' 10:30:55.971162 Received DATA (on stdin) 10:30:55.971403 > 28 bytes data, server => client 10:30:55.971507 '226 File transfer complete\r\n' 10:30:56.008036 < 6 bytes data, client => server 10:30:56.008251 'QUIT\r\n' 10:30:56.009795 Received DATA (on stdin) 10:30:56.010065 > 18 bytes data, server => client 10:30:56.010190 '221 bye bye baby\r\n' 10:30:56.012521 ====> Client disconnect 10:30:56.016578 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:56.932857 Running IPv4 version 10:30:56.933704 Listening on port 32941 10:30:56.934318 Wrote pid 80796 to log/1/server/ftp_sockdata.pid 10:30:56.934604 Received PING (on stdin) 10:30:56.935894 Received PORT (on stdin) 10:30:56.942171 ====> Client connect 10:30:56.959258 Received DATA (on stdin) 10:30:56.959547 > 17 bytes data, server => client 10:30:56.959671 'WE ROOLZ: 79585\r\n' 10:30:56.960034 Received DISC (on stdin) 10:30:56.960271 ====> Client forcibly disconnected 10:30:56.962605 Received QUIT (on stdin) 10:30:56.962871 quits 10:30:56.963372 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 122 === End of file server.cmd === Start of file valgrind122 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind122 test 0123...[FTP upload resume with whole file already downloaded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind123 ../src/curl -q --output log/5/curl123.out --include --trace-ascii log/5/trace123 --trace-time ftp://127.0.0.1:43393/123 -T log/5/upload123 -C 51 > log/5/stdout123 2> log/5/stderr123 123: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 123 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind123 ../src/curl -q --output log/5/curl123.out --include --trace-ascii log/5/trace123 --trace-time ftp://127.0.0.1:43393/123 -T log/5/upload123 -C 51 > log/5/stdout123 2> log/5/stderr123 === End of file commands.log === Start of file ftp_server.log 10:30:56.510373 ====> Client connect 10:30:56.513051 > "220- _ _ __CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind125 ../src/curl -q --output log/6/curl125.out --include --trace-ascii log/6/trace125 --trace-time ftp://127.0.0.1:33323/path/to/file/125 > log/6/stdout125 2> log/6/stderr125 __ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:56.515352 < "USER anonymous" 10:30:56.518387 > "331 We are happy you popped in![CR][LF]" 10:30:56.520014 < "PASS ftp@example.com" 10:30:56.525769 > "230 Welcome you silly person[CR][LF]" 10:30:56.531222 < "PWD" 10:30:56.531817 > "257 "/" is current directory[CR][LF]" 10:30:56.540049 < "EPSV" 10:30:56.540429 ====> Passive DATA channel requested by client 10:30:56.540788 DATA sockfilt for passive data channel starting... 10:30:56.553108 DATA sockfilt for passive data channel started (pid 80941) 10:30:56.554499 DATA sockfilt for passive data channel listens on port 42339 10:30:56.555147 > "229 Entering Passive Mode (|||42339|)[LF]" 10:30:56.555473 Client has been notified that DATA conn will be accepted on port 42339 10:30:56.557195 Client connects to port 42339 10:30:56.557849 ====> Client established passive DATA connection on port 42339 10:30:56.559052 < "TYPE I" 10:30:56.559639 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:56.562534 < "SIZE verifiedserver" 10:30:56.563133 > "213 17[CR][LF]" 10:30:56.566349 < "RETR verifiedserver" 10:30:56.566919 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:56.567852 =====> Closing passive DATA connection... 10:30:56.568135 Server disconnects passive DATA connection 10:30:56.569886 Server disconnected passive DATA connection 10:30:56.570309 DATA sockfilt for passive data channel quits (pid 80941) 10:30:56.572570 DATA sockfilt for passive data channel quit (pid 80941) 10:30:56.572973 =====> Closed passive DATA connection 10:30:56.573963 > "226 File transfer complete[CR][LF]" 10:30:56.612328 < "QUIT" 10:30:56.613047 > "221 bye bye baby[CR][LF]" 10:30:56.621032 MAIN sockfilt said DISC 10:30:56.621837 ====> Client disconnected 10:30:56.622737 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:56.180770 ====> Client connect 10:30:56.182864 Received DATA (on stdin) 10:30:56.183107 > 160 bytes data, server => client 10:30:56.183308 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:56.183433 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:56.183529 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:56.185068 < 16 bytes data, client => server 10:30:56.185292 'USER anonymous\r\n' 10:30:56.187047 Received DATA (on stdin) 10:30:56.187210 > 33 bytes data, server => client 10:30:56.188944 '331 We are happy you popped in!\r\n' 10:30:56.189748 < 22 bytes data, client => server 10:30:56.189946 'PASS ftp@example.com\r\n' 10:30:56.191706 Received DATA (on stdin) 10:30:56.191902 > 30 bytes data, server => client 10:30:56.197510 '230 Welcome you silly person\r\n' 10:30:56.201199 < 5 bytes data, client => server 10:30:56.201413 'PWD\r\n' 10:30:56.203343 Received DATA (on stdin) 10:30:56.203518 > 30 bytes data, server => client 10:30:56.203619 '257 "/" is current directory\r\n' 10:30:56.208798 < 6 bytes data, client => server 10:30:56.209034 'EPSV\r\n' 10:30:56.226319 Received DATA (on stdin) 10:30:56.226562 > 38 bytes data, server => client 10:30:56.226682 '229 Entering Passive Mode (|||42339|)\n' 10:30:56.228259 < 8 bytes data, client => server 10:30:56.228474 'TYPE I\r\n' 10:30:56.230811 Received DATA (on stdin) 10:30:56.231068 > 33 bytes data, server => client 10:30:56.231201 '200 I modify TYPE as you wanted\r\n' 10:30:56.232476 < 21 bytes data, client => server 10:30:56.232662 'SIZE verifiedserver\r\n' 10:30:56.234614 Received DATA (on stdin) 10:30:56.234876 > 8 bytes data, server => client 10:30:56.234983 '213 17\r\n' 10:30:56.235878 < 21 bytes data, client => server 10:30:56.236143 'RETR verifiedserver\r\n' 10:30:56.238078 Received DATA (on stdin) 10:30:56.238286 > 29 bytes data, server => client 10:30:56.238436 '150 Binary junk (17 bytes).\r\n' 10:30:56.245438 Received DATA (on stdin) 10:30:56.245640 > 28 bytes data, server => client 10:30:56.245748 '226 File transfer complete\r\n' 10:30:56.281964 < 6 bytes data, client => server 10:30:56.282262 'QUIT\r\n' 10:30:56.284944 Received DATA (on stdin) 10:30:56.285142 > 18 bytes data, server => client 10:30:56.285272 '221 bye bye baby\r\n' 10:30:56.288098 ====> Client disconnect 10:30:56.293011 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:56.222570 Running IPv4 version 10:30:56.223188 Listening on port 42339 10:30:56.223635 Wrote pid 80941 to log/5/server/ftp_sockdata.pid 10:30:56.223834 Received PING (on stdin) 10:30:56.224858 Received PORT (on stdin) 10:30:56.227926 ====> Client connect 10:30:56.239629 Received DATA (on stdin) 10:30:56.239863 > 17 bytes data, server => client 10:30:56.239952 'WE ROOLZ: 79602\r\n' 10:30:56.240315 Received DISC (on stdin) 10:30:56.240558 ====> Client forcibly disconnected 10:30:56.241796 Received QUIT (on stdin) 10:30:56.241968 quits 10:30:56.242406 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 123 === End of file server.cmd === Start of file upload123 -------------------------------------------------- === End of file upload123 === Start of file valgrind123 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind123 test 0125...[FTP download, failed CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind125 ../src/curl -q --output log/6/curl125.out --include --trace-ascii log/6/trace125 --trace-time ftp://127.0.0.1:33323/path/to/file/125 > log/6/stdout125 2> log/6/stderr125 125: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 125 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind125 ../src/curl -q --output log/6/curl125.out --include --trace-ascii log/6/trace125 --trace-time ftp://127.0.0.1:33323/path/to/file/125 > log/6/stdout125 2> log/6/stderr125 === End of file commands.log === Start of file ftp_server.log 10:30:56.560605 ====> Client connect 10:30:56.562273 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:56.571089 < "USER anonymous" 10:30:56.571674 > "331 We are happy you popped in![CR][LF]" 10:30:56.575791 < "PASS ftp@example.com" 10:30:56.576458 > "230 Welcome you CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind124 ../src/curl -q --output log/8/curl124.out --include --trace-ascii log/8/trace124 --trace-time ftp://127.0.0.1:38061/124 > log/8/stdout124 2> log/8/stderr124 silly person[CR][LF]" 10:30:56.578816 < "PWD" 10:30:56.579424 > "257 "/" is current directory[CR][LF]" 10:30:56.582580 < "EPSV" 10:30:56.583017 ====> Passive DATA channel requested by client 10:30:56.583280 DATA sockfilt for passive data channel starting... 10:30:56.599261 DATA sockfilt for passive data channel started (pid 80958) 10:30:56.600674 DATA sockfilt for passive data channel listens on port 36091 10:30:56.601196 > "229 Entering Passive Mode (|||36091|)[LF]" 10:30:56.602490 Client has been notified that DATA conn will be accepted on port 36091 10:30:56.603588 Client connects to port 36091 10:30:56.604106 ====> Client established passive DATA connection on port 36091 10:30:56.605299 < "TYPE I" 10:30:56.607871 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:56.615248 < "SIZE verifiedserver" 10:30:56.615974 > "213 17[CR][LF]" 10:30:56.619978 < "RETR verifiedserver" 10:30:56.620702 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:56.622053 =====> Closing passive DATA connection... 10:30:56.622489 Server disconnects passive DATA connection 10:30:56.626137 Server disconnected passive DATA connection 10:30:56.626696 DATA sockfilt for passive data channel quits (pid 80958) 10:30:56.628960 DATA sockfilt for passive data channel quit (pid 80958) 10:30:56.629414 =====> Closed passive DATA connection 10:30:56.630047 > "226 File transfer complete[CR][LF]" 10:30:56.670502 < "QUIT" 10:30:56.671021 > "221 bye bye baby[CR][LF]" 10:30:56.672345 MAIN sockfilt said DISC 10:30:56.672860 ====> Client disconnected 10:30:56.673558 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:57.231102 ====> Client connect 10:30:57.233901 Received DATA (on stdin) 10:30:57.234115 > 160 bytes data, server => client 10:30:57.234266 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:57.234375 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:57.234472 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:57.240847 < 16 bytes data, client => server 10:30:57.241053 'USER anonymous\r\n' 10:30:57.242807 Received DATA (on stdin) 10:30:57.243070 > 33 bytes data, server => client 10:30:57.243187 '331 We are happy you popped in!\r\n' 10:30:57.244237 < 22 bytes data, client => server 10:30:57.244386 'PASS ftp@example.com\r\n' 10:30:57.247611 Received DATA (on stdin) 10:30:57.247813 > 30 bytes data, server => client 10:30:57.247915 '230 Welcome you silly person\r\n' 10:30:57.248670 < 5 bytes data, client => server 10:30:57.248928 'PWD\r\n' 10:30:57.251009 Received DATA (on stdin) 10:30:57.251194 > 30 bytes data, server => client 10:30:57.251289 '257 "/" is current directory\r\n' 10:30:57.252143 < 6 bytes data, client => server 10:30:57.252359 'EPSV\r\n' 10:30:57.272371 Received DATA (on stdin) 10:30:57.272718 > 38 bytes data, server => client 10:30:57.272904 '229 Entering Passive Mode (|||36091|)\n' 10:30:57.274733 < 8 bytes data, client => server 10:30:57.274961 'TYPE I\r\n' 10:30:57.279783 Received DATA (on stdin) 10:30:57.280055 > 33 bytes data, server => client 10:30:57.280170 '200 I modify TYPE as you wanted\r\n' 10:30:57.284871 < 21 bytes data, client => server 10:30:57.285027 'SIZE verifiedserver\r\n' 10:30:57.287104 Received DATA (on stdin) 10:30:57.287315 > 8 bytes data, server => client 10:30:57.287465 '213 17\r\n' 10:30:57.289874 < 21 bytes data, client => server 10:30:57.290116 'RETR verifiedserver\r\n' 10:30:57.291912 Received DATA (on stdin) 10:30:57.292160 > 29 bytes data, server => client 10:30:57.292302 '150 Binary junk (17 bytes).\r\n' 10:30:57.302019 Received DATA (on stdin) 10:30:57.302259 > 28 bytes data, server => client 10:30:57.302382 '226 File transfer complete\r\n' 10:30:57.337616 < 6 bytes data, client => server 10:30:57.337895 'QUIT\r\n' 10:30:57.342194 Received DATA (on stdin) 10:30:57.342404 > 18 bytes data, server => client 10:30:57.342536 '221 bye bye baby\r\n' 10:30:57.343116 ====> Client disconnect 10:30:57.344026 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:56.266363 Running IPv4 version 10:30:56.266980 Listening on port 36091 10:30:56.267423 Wrote pid 80958 to log/6/server/ftp_sockdata.pid 10:30:56.269813 Received PING (on stdin) 10:30:56.271038 Received PORT (on stdin) 10:30:56.274255 ====> Client connect 10:30:56.295434 Received DATA (on stdin) 10:30:56.295733 > 17 bytes data, server => client 10:30:56.295863 'WE ROOLZ: 79480\r\n' 10:30:56.296268 Received DISC (on stdin) 10:30:56.296564 ====> Client forcibly disconnected 10:30:56.298396 Received QUIT (on stdin) 10:30:56.298629 quits 10:30:56.299135 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 314 bluah you f00l Testnum 125 === End of file server.cmd === Start of file valgrind125 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind125 test 0124...[FTP download, failed PWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind124 ../src/curl -q --output log/8/curl124.out --include --trace-ascii log/8/trace124 --trace-time ftp://127.0.0.1:38061/124 > log/8/stdout124 2> log/8/stderr124 124: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 124 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind124 ../src/curl -q --output log/8/curl124.out --include --trace-ascii log/8/trace124 --trace-time ftp://127.0.0.1:38061/124 > log/8/stdout124 2> log/8/stderr124 === End of file commands.log === Start of file ftp_server.log 10:30:56.538199 ====> Client connect 10:30:56.539770 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:56.546735 < "USER anonymous" 10:30:56.547409 > "331 We are happy you popped in![CR][LF]" 10:30:56.559629 < "PASS ftp@example.com" 10:30:56.560176 > "230 Welcome you silly person[CR][LF]" 10:30:56.568159 < "PWD" 10:30:56.568580 > "257 "/" is current directory[CR][LF]" 10:30:56.575791 < "EPSV" 10:30:56.576279 ====> Passive DATA channel requested by client 10:30:56.576609 DATA sockfilt for passive data channel starting... 10:30:56.589754 DATA sockfilt for passive data channel started (pid 80954) 10:30:56.591111 DATA sockfilt for passive data channel listens on port 34293 10:30:56.591802 > "229 EnteringCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind126 ../src/curl -q --output log/4/curl126.out --include --trace-ascii log/4/trace126 --trace-time ftp://127.0.0.1:42635/blalbla/lululul/126 > log/4/stdout126 2> log/4/stderr126 Passive Mode (|||34293|)[LF]" 10:30:56.592159 Client has been notified that DATA conn will be accepted on port 34293 10:30:56.594036 Client connects to port 34293 10:30:56.594628 ====> Client established passive DATA connection on port 34293 10:30:56.596353 < "TYPE I" 10:30:56.597010 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:56.600939 < "SIZE verifiedserver" 10:30:56.601565 > "213 17[CR][LF]" 10:30:56.607070 < "RETR verifiedserver" 10:30:56.607886 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:56.609083 =====> Closing passive DATA connection... 10:30:56.609536 Server disconnects passive DATA connection 10:30:56.614893 Server disconnected passive DATA connection 10:30:56.615360 DATA sockfilt for passive data channel quits (pid 80954) 10:30:56.617922 DATA sockfilt for passive data channel quit (pid 80954) 10:30:56.618565 =====> Closed passive DATA connection 10:30:56.619280 > "226 File transfer complete[CR][LF]" 10:30:56.655395 < "QUIT" 10:30:56.655974 > "221 bye bye baby[CR][LF]" 10:30:56.657912 MAIN sockfilt said DISC 10:30:56.658467 ====> Client disconnected 10:30:56.659272 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:57.204742 ====> Client connect 10:30:57.210918 Received DATA (on stdin) 10:30:57.211140 > 160 bytes data, server => client 10:30:57.211268 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:57.211374 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:57.211455 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:57.215835 < 16 bytes data, client => server 10:30:57.216064 'USER anonymous\r\n' 10:30:57.218580 Received DATA (on stdin) 10:30:57.218805 > 33 bytes data, server => client 10:30:57.218925 '331 We are happy you popped in!\r\n' 10:30:57.223924 < 22 bytes data, client => server 10:30:57.224214 'PASS ftp@example.com\r\n' 10:30:57.232218 Received DATA (on stdin) 10:30:57.232473 > 30 bytes data, server => client 10:30:57.232782 '230 Welcome you silly person\r\n' 10:30:57.236830 < 5 bytes data, client => server 10:30:57.237050 'PWD\r\n' 10:30:57.240463 Received DATA (on stdin) 10:30:57.240651 > 30 bytes data, server => client 10:30:57.240748 '257 "/" is current directory\r\n' 10:30:57.244707 < 6 bytes data, client => server 10:30:57.244885 'EPSV\r\n' 10:30:57.263006 Received DATA (on stdin) 10:30:57.263253 > 38 bytes data, server => client 10:30:57.263383 '229 Entering Passive Mode (|||34293|)\n' 10:30:57.266583 < 8 bytes data, client => server 10:30:57.266811 'TYPE I\r\n' 10:30:57.268211 Received DATA (on stdin) 10:30:57.268538 > 33 bytes data, server => client 10:30:57.268863 '200 I modify TYPE as you wanted\r\n' 10:30:57.269813 < 21 bytes data, client => server 10:30:57.270068 'SIZE verifiedserver\r\n' 10:30:57.272871 Received DATA (on stdin) 10:30:57.273006 > 8 bytes data, server => client 10:30:57.273117 '213 17\r\n' 10:30:57.276061 < 21 bytes data, client => server 10:30:57.276247 'RETR verifiedserver\r\n' 10:30:57.279920 Received DATA (on stdin) 10:30:57.280078 > 29 bytes data, server => client 10:30:57.280169 '150 Binary junk (17 bytes).\r\n' 10:30:57.291132 Received DATA (on stdin) 10:30:57.291415 > 28 bytes data, server => client 10:30:57.291596 '226 File transfer complete\r\n' 10:30:57.325371 < 6 bytes data, client => server 10:30:57.325630 'QUIT\r\n' 10:30:57.327563 Received DATA (on stdin) 10:30:57.327766 > 18 bytes data, server => client 10:30:57.327889 '221 bye bye baby\r\n' 10:30:57.328498 ====> Client disconnect 10:30:57.330978 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:56.257686 Running IPv4 version 10:30:56.258308 Listening on port 34293 10:30:56.259110 Wrote pid 80954 to log/8/server/ftp_sockdata.pid 10:30:56.259427 Received PING (on stdin) 10:30:56.261518 Received PORT (on stdin) 10:30:56.264731 ====> Client connect 10:30:56.284719 Received DATA (on stdin) 10:30:56.285005 > 17 bytes data, server => client 10:30:56.285112 'WE ROOLZ: 79508\r\n' 10:30:56.285564 Received DISC (on stdin) 10:30:56.285862 ====> Client forcibly disconnected 10:30:56.286932 Received QUIT (on stdin) 10:30:56.287220 quits 10:30:56.287804 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 314 bluah you f00l REPLY EPSV 314 bluah you f00l Testnum 124 === End of file server.cmd === Start of file valgrind124 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind124 test 0126...[FTP download with multiple replies at once in RETR] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind126 ../src/curl -q --output log/4/curl126.out --include --trace-ascii log/4/trace126 --trace-time ftp://127.0.0.1:42635/blalbla/lululul/126 > log/4/stdout126 2> log/4/stderr126 126: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 126 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind126 ../src/curl -q --output log/4/curl126.out --include --trace-ascii log/4/trace126 --trace-time ftp://127.0.0.1:42635/blalbla/lululul/126 > log/4/stdout126 2> log/4/stderr126 === End of file commands.log === Start of file ftp_server.log 10:30:56.715237 ====> Client connect 10:30:56.716632 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:56.719875 < "USER anonymous" 10:30:56.720877 > "331 We are happy you popped in![CR][LF]" 10:30:56.723452 < "PASS ftp@example.com" 10:30:56.723958 > "230 Welcome you silly person[CR][LF]" 10:30:56.727146 < "PWD" 10:30:56.727749 > "257 "/" is current directory[CR][LF]" 10:30:56.730769 < "EPSV" 10:30:56.731243 ====> Passive DATA channel requested by client 10:30:56.731696 DATA sockfilt for passive data channel starting... 10:30:56.744622 DATA sockfilt for passive data channel started (pid 80993) 10:30:56.749158 DATA sockfilt for passive data channel listens on port 42123 10:30:56.750018 > "229 Entering Passive Mode (|||42123|)[LF]" 10:30:56.750447 Client has been notified that DATA conn will be accepted on port 42123 10:30:56.754541 Client connects to port 42123 10:30:56.755176 ====> Client established passive DATA connection on port 42123 10:30:56.756449 < "TYPE I" 10:30:56.757151 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:56.759987 < "SIZE CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind127 ../src/curl -q --output log/7/curl127.out --include --trace-ascii log/7/trace127 --trace-time ftp://127.0.0.1:38253/path/to/file/127 --disable-epsv > log/7/stdout127 2> log/7/stderr127 verifiedserver" 10:30:56.760899 > "213 17[CR][LF]" 10:30:56.765308 < "RETR verifiedserver" 10:30:56.766327 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:56.767651 =====> Closing passive DATA connection... 10:30:56.768177 Server disconnects passive DATA connection 10:30:56.775709 Server disconnected passive DATA connection 10:30:56.776250 DATA sockfilt for passive data channel quits (pid 80993) 10:30:56.778564 DATA sockfilt for passive data channel quit (pid 80993) 10:30:56.779013 =====> Closed passive DATA connection 10:30:56.780011 > "226 File transfer complete[CR][LF]" 10:30:56.818117 < "QUIT" 10:30:56.819885 > "221 bye bye baby[CR][LF]" 10:30:56.820954 MAIN sockfilt said DISC 10:30:56.822234 ====> Client disconnected 10:30:56.823193 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:57.385637 ====> Client connect 10:30:57.388240 Received DATA (on stdin) 10:30:57.388470 > 160 bytes data, server => client 10:30:57.388573 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:57.388799 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:57.388886 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:57.389768 < 16 bytes data, client => server 10:30:57.389971 'USER anonymous\r\n' 10:30:57.391541 Received DATA (on stdin) 10:30:57.391721 > 33 bytes data, server => client 10:30:57.392516 '331 We are happy you popped in!\r\n' 10:30:57.393444 < 22 bytes data, client => server 10:30:57.393676 'PASS ftp@example.com\r\n' 10:30:57.395617 Received DATA (on stdin) 10:30:57.395885 > 30 bytes data, server => client 10:30:57.396035 '230 Welcome you silly person\r\n' 10:30:57.396892 < 5 bytes data, client => server 10:30:57.397140 'PWD\r\n' 10:30:57.399387 Received DATA (on stdin) 10:30:57.399613 > 30 bytes data, server => client 10:30:57.399714 '257 "/" is current directory\r\n' 10:30:57.400732 < 6 bytes data, client => server 10:30:57.400998 'EPSV\r\n' 10:30:57.422856 Received DATA (on stdin) 10:30:57.423213 > 38 bytes data, server => client 10:30:57.423369 '229 Entering Passive Mode (|||42123|)\n' 10:30:57.426185 < 8 bytes data, client => server 10:30:57.426405 'TYPE I\r\n' 10:30:57.428377 Received DATA (on stdin) 10:30:57.428709 > 33 bytes data, server => client 10:30:57.428904 '200 I modify TYPE as you wanted\r\n' 10:30:57.430003 < 21 bytes data, client => server 10:30:57.430355 'SIZE verifiedserver\r\n' 10:30:57.432912 Received DATA (on stdin) 10:30:57.433277 > 8 bytes data, server => client 10:30:57.433594 '213 17\r\n' 10:30:57.434764 < 21 bytes data, client => server 10:30:57.435091 'RETR verifiedserver\r\n' 10:30:57.439989 Received DATA (on stdin) 10:30:57.440343 > 29 bytes data, server => client 10:30:57.440732 '150 Binary junk (17 bytes).\r\n' 10:30:57.451960 Received DATA (on stdin) 10:30:57.452121 > 28 bytes data, server => client 10:30:57.452526 '226 File transfer complete\r\n' 10:30:57.487963 < 6 bytes data, client => server 10:30:57.488193 'QUIT\r\n' 10:30:57.489889 Received DATA (on stdin) 10:30:57.490164 > 18 bytes data, server => client 10:30:57.490421 '221 bye bye baby\r\n' 10:30:57.491692 ====> Client disconnect 10:30:57.492669 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:56.414236 Running IPv4 version 10:30:56.414851 Listening on port 42123 10:30:56.415251 Wrote pid 80993 to log/4/server/ftp_sockdata.pid 10:30:56.415424 Received PING (on stdin) 10:30:56.419320 Received PORT (on stdin) 10:30:56.424903 ====> Client connect 10:30:56.438284 Received DATA (on stdin) 10:30:56.438605 > 17 bytes data, server => client 10:30:56.438843 'WE ROOLZ: 79516\r\n' 10:30:56.444755 Received DISC (on stdin) 10:30:56.445165 ====> Client forcibly disconnected 10:30:56.447834 Received QUIT (on stdin) 10:30:56.448060 quits 10:30:56.448570 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd RETRWEIRDO Testnum 126 === End of file server.cmd === Start of file valgrind126 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind126 test 0127...[FTP --disable-epsv] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind127 ../src/curl -q --output log/7/curl127.out --include --trace-ascii log/7/trace127 --trace-time ftp://127.0.0.1:38253/path/to/file/127 --disable-epsv > log/7/stdout127 2> log/7/stderr127 127: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 127 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind127 ../src/curl -q --output log/7/curl127.out --include --trace-ascii log/7/trace127 --trace-time ftp://127.0.0.1:38253/path/to/file/127 --disable-epsv > log/7/stdout127 2> log/7/stderr127 === End of file commands.log === Start of file ftp_server.log 10:30:56.895078 ====> Client connect 10:30:56.896737 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:56.902625 < "USER anonymous" 10:30:56.903220 > "331 We are happy you popped in![CR][LF]" 10:30:56.914353 < "PASS ftp@example.com" 10:30:56.914897 > "230 Welcome you silly person[CR][LF]" 10:30:56.916707 < "PWD" 10:30:56.917258 > "257 "/" is current directory[CR][LF]" 10:30:56.919526 < "EPSV" 10:30:56.920036 ====> Passive DATA channel requested by client 10:30:56.920402 DATA sockfilt for passive data channel starting... 10:30:56.933991 DATA sockfilt for passive data channel started (pid 81099) 10:30:56.935204 DATA sockfilt for passive data channel listens on port 37623 10:30:56.935771 > "229 Entering Passive Mode (|||37623|)[LF]" 10:30:56.936058 Client has been notified that DATA conn will be accepted on port 37623 10:30:56.937580 Client connects to port 37623 10:30:56.938043 ====> Client established passive DATA connection on port 37623 10:30:56.938902 < "TYPE I" 10:30:56.939315 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:56.943307 < "SIZE verifiedserver" 10:30:56.944127 > "213 17[CR][LF]" 10:30:56.951991 < "RETR verifiedserver" 10:30:56.953438 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:56.954673 =====> Closing passive DATA connection... 10:30:56.954950 Server disconnects passive DATA connection 10:30:56.957091 Server disconnected passive DATA connection 10:30:56.958412 DATA sockfilt for passive data channel quits (pid 81099) 10:30:56.960CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind129 ../src/curl -q --output log/2/curl129.out --include --trace-ascii log/2/trace129 --trace-time http://127.0.0.1:43789/129 > log/2/stdout129 2> log/2/stderr129 604 DATA sockfilt for passive data channel quit (pid 81099) 10:30:56.961139 =====> Closed passive DATA connection 10:30:56.961935 > "226 File transfer complete[CR][LF]" 10:30:57.005335 < "QUIT" 10:30:57.006069 > "221 bye bye baby[CR][LF]" 10:30:57.017107 MAIN sockfilt said DISC 10:30:57.017712 ====> Client disconnected 10:30:57.022156 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:57.561161 ====> Client connect 10:30:57.569347 Received DATA (on stdin) 10:30:57.569602 > 160 bytes data, server => client 10:30:57.569717 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:57.569806 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:57.569880 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:57.570660 < 16 bytes data, client => server 10:30:57.570881 'USER anonymous\r\n' 10:30:57.576733 Received DATA (on stdin) 10:30:57.576993 > 33 bytes data, server => client 10:30:57.577100 '331 We are happy you popped in!\r\n' 10:30:57.581189 < 22 bytes data, client => server 10:30:57.581417 'PASS ftp@example.com\r\n' 10:30:57.586052 Received DATA (on stdin) 10:30:57.586239 > 30 bytes data, server => client 10:30:57.586342 '230 Welcome you silly person\r\n' 10:30:57.587141 < 5 bytes data, client => server 10:30:57.587356 'PWD\r\n' 10:30:57.588803 Received DATA (on stdin) 10:30:57.588992 > 30 bytes data, server => client 10:30:57.589096 '257 "/" is current directory\r\n' 10:30:57.589835 < 6 bytes data, client => server 10:30:57.590068 'EPSV\r\n' 10:30:57.606908 Received DATA (on stdin) 10:30:57.607102 > 38 bytes data, server => client 10:30:57.607217 '229 Entering Passive Mode (|||37623|)\n' 10:30:57.609089 < 8 bytes data, client => server 10:30:57.609256 'TYPE I\r\n' 10:30:57.610441 Received DATA (on stdin) 10:30:57.610574 > 33 bytes data, server => client 10:30:57.610651 '200 I modify TYPE as you wanted\r\n' 10:30:57.613231 < 21 bytes data, client => server 10:30:57.613407 'SIZE verifiedserver\r\n' 10:30:57.615821 Received DATA (on stdin) 10:30:57.616071 > 8 bytes data, server => client 10:30:57.616192 '213 17\r\n' 10:30:57.621814 < 21 bytes data, client => server 10:30:57.622030 'RETR verifiedserver\r\n' 10:30:57.623930 Received DATA (on stdin) 10:30:57.624181 > 29 bytes data, server => client 10:30:57.626319 '150 Binary junk (17 bytes).\r\n' 10:30:57.634075 Received DATA (on stdin) 10:30:57.634251 > 28 bytes data, server => client 10:30:57.634335 '226 File transfer complete\r\n' 10:30:57.675257 < 6 bytes data, client => server 10:30:57.675405 'QUIT\r\n' 10:30:57.679696 Received DATA (on stdin) 10:30:57.680055 > 18 bytes data, server => client 10:30:57.680215 '221 bye bye baby\r\n' 10:30:57.683482 ====> Client disconnect 10:30:57.689807 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:56.602463 Running IPv4 version 10:30:56.603058 Listening on port 37623 10:30:56.603508 Wrote pid 81099 to log/7/server/ftp_sockdata.pid 10:30:56.604401 Received PING (on stdin) 10:30:56.605643 Received PORT (on stdin) 10:30:56.608332 ====> Client connect 10:30:56.625407 Received DATA (on stdin) 10:30:56.625650 > 17 bytes data, server => client 10:30:56.625770 'WE ROOLZ: 79543\r\n' 10:30:56.627912 Received DISC (on stdin) 10:30:56.628112 ====> Client forcibly disconnected 10:30:56.630022 Received QUIT (on stdin) 10:30:56.630227 quits 10:30:56.630697 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 127 === End of file server.cmd === Start of file valgrind127 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind127 test 0129...[HTTP/1.2 is rejected] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind129 ../src/curl -q --output log/2/curl129.out --include --trace-ascii log/2/trace129 --trace-time http://127.0.0.1:43789/129 > log/2/stdout129 2> log/2/stderr129 129: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 129 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind129 ../src/curl -q --output log/2/curl129.out --include --trace-ascii log/2/trace129 --trace-time http://127.0.0.1:43789/129 > log/2/stdout129 2> log/2/stderr129 === End of file commands.log === Start of file http_server.log 10:30:56.696106 ====> Client connect 10:30:56.696487 accept_connection 3 returned 4 10:30:56.696740 accept_connection 3 returned 0 10:30:56.696864 Read 93 bytes 10:30:56.696965 Process 93 bytes request 10:30:56.697143 Got request: GET /verifiedserver HTTP/1.1 10:30:56.697263 Are-we-friendly question received 10:30:56.697540 Wrote request (93 bytes) input to log/2/server.input 10:30:56.697781 Identifying ourselves as friends 10:30:56.698675 Response sent (56 bytes) and written to log/2/server.response 10:30:56.698830 special request received, no persistency 10:30:56.698900 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60786 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 129 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind129 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a nonCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind128 ../src/curl -q --output log/3/curl128.out --include --trace-ascii log/3/trace128 --trace-time ftp://127.0.0.1:33831/128 -T log/3/upload128 --crlf > log/3/stdout128 2> log/3/stderr128 - valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind129 test 0128...[FTP upload with --crlf] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind128 ../src/curl -q --output log/3/curl128.out --include --trace-ascii log/3/trace128 --trace-time ftp://127.0.0.1:33831/128 -T log/3/upload128 --crlf > log/3/stdout128 2> log/3/stderr128 128: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 128 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind128 ../src/curl -q --output log/3/curl128.out --include --trace-ascii log/3/trace128 --trace-time ftp://127.0.0.1:33831/128 -T log/3/upload128 --crlf > log/3/stdout128 2> log/3/stderr128 === End of file commands.log === Start of file ftp_server.log 10:30:56.937726 ====> Client connect 10:30:56.938911 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:56.941091 < "USER anonymous" 10:30:56.941710 > "331 We are happy you popped in![CR][LF]" 10:30:56.948268 < "PASS ftp@example.com" 10:30:56.948946 > "230 Welcome you silly person[CR][LF]" 10:30:56.956567 < "PWD" 10:30:56.957192 > "257 "/" is current directory[CR][LF]" 10:30:56.962361 < "EPSV" 10:30:56.962758 ====> Passive DATA channel requested by client 10:30:56.963014 DATA sockfilt for passive data channel starting... 10:30:56.980816 DATA sockfilt for passive data channel started (pid 81128) 10:30:56.982890 DATA sockfilt for passive data channel listens on port 41263 10:30:56.983776 > "229 Entering Passive Mode (|||41263|)[LF]" 10:30:56.984254 Client has been notified that DATA conn will be accepted on port 41263 10:30:56.987113 Client connects to port 41263 10:30:56.987767 ====> Client established passive DATA connection on port 41263 10:30:56.994915 < "TYPE I" 10:30:56.995728 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:56.999054 < "SIZE verifiedserver" 10:30:56.999850 > "213 17[CR][LF]" 10:30:57.002626 < "RETR verifiedserver" 10:30:57.003603 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:57.005289 =====> Closing passive DATA connection... 10:30:57.007675 Server disconnects passive DATA connection 10:30:57.016244 Server disconnected passive DATA connection 10:30:57.016804 DATA sockfilt for passive data channel quits (pid 81128) 10:30:57.024353 DATA sockfilt for passive data channel quit (pid 81128) 10:30:57.024790 =====> Closed passive DATA connection 10:30:57.025225 > "226 File transfer complete[CR][LF]" 10:30:57.047645 < "QUIT" 10:30:57.048156 > "221 bye bye baby[CR][LF]" 10:30:57.052860 MAIN sockfilt said DISC 10:30:57.055270 ====> Client disconnected 10:30:57.056164 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:56.606499 ====> Client connect 10:30:56.610050 Received DATA (on stdin) 10:30:56.610277 > 160 bytes data, server => client 10:30:56.610386 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:56.610466 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:56.610535 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:56.611232 < 16 bytes data, client => server 10:30:56.611484 'USER anonymous\r\n' 10:30:56.612844 Received DATA (on stdin) 10:30:56.613078 > 33 bytes data, server => client 10:30:56.613194 '331 We are happy you popped in!\r\n' 10:30:56.616917 < 22 bytes data, client => server 10:30:56.617168 'PASS ftp@example.com\r\n' 10:30:56.620770 Received DATA (on stdin) 10:30:56.621029 > 30 bytes data, server => client 10:30:56.621251 '230 Welcome you silly person\r\n' 10:30:56.626389 < 5 bytes data, client => server 10:30:56.626529 'PWD\r\n' 10:30:56.628291 Received DATA (on stdin) 10:30:56.628469 > 30 bytes data, server => client 10:30:56.628565 '257 "/" is current directory\r\n' 10:30:56.630084 < 6 bytes data, client => server 10:30:56.630230 'EPSV\r\n' 10:30:56.654886 Received DATA (on stdin) 10:30:56.655268 > 38 bytes data, server => client 10:30:56.655429 '229 Entering Passive Mode (|||41263|)\n' 10:30:56.664875 < 8 bytes data, client => server 10:30:56.665168 'TYPE I\r\n' 10:30:56.666839 Received DATA (on stdin) 10:30:56.667144 > 33 bytes data, server => client 10:30:56.667293 '200 I modify TYPE as you wanted\r\n' 10:30:56.668131 < 21 bytes data, client => server 10:30:56.668420 'SIZE verifiedserver\r\n' 10:30:56.671022 Received DATA (on stdin) 10:30:56.671276 > 8 bytes data, server => client 10:30:56.671414 '213 17\r\n' 10:30:56.672206 < 21 bytes data, client => server 10:30:56.672463 'RETR verifiedserver\r\n' 10:30:56.674716 Received DATA (on stdin) 10:30:56.675024 > 29 bytes data, server => client 10:30:56.675162 '150 Binary junk (17 bytes).\r\n' 10:30:56.696405 Received DATA (on stdin) 10:30:56.696543 > 28 bytes data, server => client 10:30:56.696690 '226 File transfer complete\r\n' 10:30:56.717597 < 6 bytes data, client => server 10:30:56.717858 'QUIT\r\n' 10:30:56.719596 Received DATA (on stdin) 10:30:56.719832 > 18 bytes data, server => client 10:30:56.719948 '221 bye bye baby\r\n' 10:30:56.721635 ====> Client disconnect 10:30:56.724758 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:56.648552 Running IPv4 version 10:30:56.650648 Listening on port 41263 10:30:56.651235 Wrote pid 81128 to log/3/server/ftp_sockdata.pid 10:30:56.651490 Received PING (on stdin) 10:30:56.652779 Received PORT (on stdin) 10:30:56.657063 ====> Client connect 10:30:56.677137 Received DATA (on stdin) 10:30:56.677491 > 17 bytes data, server => client 10:30:56.677671 'WE ROOLZ: 79555\r\n' 10:30:56.684142 Received DISC (on stdin) 10:30:56.684497 ====> Client forcibly disconnected 10:30:56.688974 Received QUIT (on stdin) 10:30:56.689198 quits 10:30:56.694401 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 128 === End of file server.cmd === Start of file upload128 file with Unix newlines meant to be converted with the --crlf option === End of file upload128 === Start of file valgrind128 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On DebianCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind130 ../src/curl -q --output log/1/curl130.out --include --trace-ascii log/1/trace130 --trace-time --netrc-optional --netrc-file log/1/netrc130 ftp://127.0.0.1:38733/ > log/1/stdout130 2> log/1/stderr130 , Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind128 test 0130...[FTP (optional .netrc; no user/pass) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind130 ../src/curl -q --output log/1/curl130.out --include --trace-ascii log/1/trace130 --trace-time --netrc-optional --netrc-file log/1/netrc130 ftp://127.0.0.1:38733/ > log/1/stdout130 2> log/1/stderr130 130: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 130 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind130 ../src/curl -q --output log/1/curl130.out --include --trace-ascii log/1/trace130 --trace-time --netrc-optional --netrc-file log/1/netrc130 ftp://127.0.0.1:38733/ > log/1/stdout130 2> log/1/stderr130 === End of file commands.log === Start of file ftp_server.log 10:30:57.317778 ====> Client connect 10:30:57.319510 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:57.325529 < "USER anonymous" 10:30:57.326328 > "331 We are happy you popped in![CR][LF]" 10:30:57.330128 < "PASS ftp@example.com" 10:30:57.330949 > "230 Welcome you silly person[CR][LF]" 10:30:57.333692 < "PWD" 10:30:57.334467 > "257 "/" is current directory[CR][LF]" 10:30:57.339939 < "EPSV" 10:30:57.340484 ====> Passive DATA channel requested by client 10:30:57.340783 DATA sockfilt for passive data channel starting... 10:30:57.355755 DATA sockfilt for passive data channel started (pid 81320) 10:30:57.357883 DATA sockfilt for passive data channel listens on port 34089 10:30:57.358602 > "229 Entering Passive Mode (|||34089|)[LF]" 10:30:57.358900 Client has been notified that DATA conn will be accepted on port 34089 10:30:57.362119 Client connects to port 34089 10:30:57.362707 ====> Client established passive DATA connection on port 34089 10:30:57.364193 < "TYPE I" 10:30:57.364845 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:57.368037 < "SIZE verifiedserver" 10:30:57.368683 > "213 17[CR][LF]" 10:30:57.373620 < "RETR verifiedserver" 10:30:57.374337 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:57.375375 =====> Closing passive DATA connection... 10:30:57.375781 Server disconnects passive DATA connection 10:30:57.377600 Server disconnected passive DATA connection 10:30:57.378167 DATA sockfilt for passive data channel quits (pid 81320) 10:30:57.380296 DATA sockfilt for passive data channel quit (pid 81320) 10:30:57.381038 =====> Closed passive DATA connection 10:30:57.381814 > "226 File transfer complete[CR][LF]" 10:30:57.420940 < "QUIT" 10:30:57.421662 > "221 bye bye baby[CR][LF]" 10:30:57.428005 MAIN sockfilt said DISC 10:30:57.429126 ====> Client disconnected 10:30:57.429886 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:56.984993 ====> Client connect 10:30:56.990718 Received DATA (on stdin) 10:30:56.991058 > 160 bytes data, server => client 10:30:56.991247 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:56.991363 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:56.991458 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:56.992529 < 16 bytes data, client => server 10:30:56.992866 'USER anonymous\r\n' 10:30:56.997493 Received DATA (on stdin) 10:30:56.997879 > 33 bytes data, server => client 10:30:56.998096 '331 We are happy you popped in!\r\n' 10:30:56.999730 < 22 bytes data, client => server 10:30:57.000085 'PASS ftp@example.com\r\n' 10:30:57.002096 Received DATA (on stdin) 10:30:57.002380 > 30 bytes data, server => client 10:30:57.002519 '230 Welcome you silly person\r\n' 10:30:57.003516 < 5 bytes data, client => server 10:30:57.003808 'PWD\r\n' 10:30:57.008752 Received DATA (on stdin) 10:30:57.009044 > 30 bytes data, server => client 10:30:57.009164 '257 "/" is current directory\r\n' 10:30:57.010159 < 6 bytes data, client => server 10:30:57.010428 'EPSV\r\n' 10:30:57.029743 Received DATA (on stdin) 10:30:57.029947 > 38 bytes data, server => client 10:30:57.030065 '229 Entering Passive Mode (|||34089|)\n' 10:30:57.031758 < 8 bytes data, client => server 10:30:57.032012 'TYPE I\r\n' 10:30:57.037016 Received DATA (on stdin) 10:30:57.037306 > 33 bytes data, server => client 10:30:57.037431 '200 I modify TYPE as you wanted\r\n' 10:30:57.038304 < 21 bytes data, client => server 10:30:57.038574 'SIZE verifiedserver\r\n' 10:30:57.040401 Received DATA (on stdin) 10:30:57.040837 > 8 bytes data, server => client 10:30:57.041005 '213 17\r\n' 10:30:57.042311 < 21 bytes data, client => server 10:30:57.042555 'RETR verifiedserver\r\n' 10:30:57.046891 Received DATA (on stdin) 10:30:57.047121 > 29 bytes data, server => client 10:30:57.047247 '150 Binary junk (17 bytes).\r\n' 10:30:57.054101 Received DATA (on stdin) 10:30:57.054370 > 28 bytes data, server => client 10:30:57.054507 '226 File transfer complete\r\n' 10:30:57.090657 < 6 bytes data, client => server 10:30:57.090936 'QUIT\r\n' 10:30:57.093321 Received DATA (on stdin) 10:30:57.093539 > 18 bytes data, server => client 10:30:57.093673 '221 bye bye baby\r\n' 10:30:57.098657 ====> Client disconnect 10:30:57.099662 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:57.023563 Running IPv4 version 10:30:57.024318 Listening on port 34089 10:30:57.026010 Wrote pid 81320 to log/1/server/ftp_sockdata.pid 10:30:57.026355 Received PING (on stdin) 10:30:57.027732 Received PORT (on stdin) 10:30:57.032668 ====> Client connect 10:30:57.047280 Received DATA (on stdin) 10:30:57.047443 > 17 bytes data, server => client 10:30:57.047541 'WE ROOLZ: 79585\r\n' 10:30:57.047880 Received DISC (on stdin) 10:30:57.048158 ====> Client forcibly disconnected 10:30:57.049763 Received QUIT (on stdin) 10:30:57.049957 quits 10:30:57.050458 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc130 # the following two lines were created while testing curl # machine 127.0.0.1 login user1 password commented machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 default login userdef password passwddef === End of file netrc130 === Start of file server.cmd Testnum 130 === End of file server.cmd === Start of file valgrind130 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind131 ../src/curl -q --output log/5/curl131.out --include --trace-ascii log/5/trace131 --trace-time --netrc-optional --netrc-file log/5/netrc131 ftp://user2@127.0.0.1:43393/ > log/5/stdout131 2> log/5/stderr131 Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind130 test 0131...[FTP (optional .netrc; user/no pass) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind131 ../src/curl -q --output log/5/curl131.out --include --trace-ascii log/5/trace131 --trace-time --netrc-optional --netrc-file log/5/netrc131 ftp://user2@127.0.0.1:43393/ > log/5/stdout131 2> log/5/stderr131 131: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 131 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind131 ../src/curl -q --output log/5/curl131.out --include --trace-ascii log/5/trace131 --trace-time --netrc-optional --netrc-file log/5/netrc131 ftp://user2@127.0.0.1:43393/ > log/5/stdout131 2> log/5/stderr131 === End of file commands.log === Start of file ftp_server.log 10:30:57.556803 ====> Client connect 10:30:57.558345 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:57.563511 < "USER anonymous" 10:30:57.564069 > "331 We are happy you popped in![CR][LF]" 10:30:57.567830 < "PASS ftp@example.com" 10:30:57.569084 > "230 Welcome you silly person[CR][LF]" 10:30:57.573106 < "PWD" 10:30:57.573798 > "257 "/" is current directory[CR][LF]" 10:30:57.579167 < "EPSV" 10:30:57.579677 ====> Passive DATA channel requested by client 10:30:57.580000 DATA sockfilt for passive data channel starting... 10:30:57.597666 DATA sockfilt for passive data channel started (pid 81443) 10:30:57.601433 DATA sockfilt for passive data channel listens on port 37809 10:30:57.603111 > "229 Entering Passive Mode (|||37809|)[LF]" 10:30:57.603427 Client has been notified that DATA conn will be accepted on port 37809 10:30:57.606985 Client connects to port 37809 10:30:57.607367 ====> Client established passive DATA connection on port 37809 10:30:57.608147 < "TYPE I" 10:30:57.608586 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:57.611009 < "SIZE verifiedserver" 10:30:57.611589 > "213 17[CR][LF]" 10:30:57.614414 < "RETR verifiedserver" 10:30:57.615124 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:57.616001 =====> Closing passive DATA connection... 10:30:57.616333 Server disconnects passive DATA connection 10:30:57.618727 Server disconnected passive DATA connection 10:30:57.619286 DATA sockfilt for passive data channel quits (pid 81443) 10:30:57.621716 DATA sockfilt for passive data channel quit (pid 81443) 10:30:57.622148 =====> Closed passive DATA connection 10:30:57.623282 > "226 File transfer complete[CR][LF]" 10:30:57.664193 < "QUIT" 10:30:57.664863 > "221 bye bye baby[CR][LF]" 10:30:57.673091 MAIN sockfilt said DISC 10:30:57.673817 ====> Client disconnected 10:30:57.674568 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:57.223389 ====> Client connect 10:30:57.230053 Received DATA (on stdin) 10:30:57.230344 > 160 bytes data, server => client 10:30:57.230483 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:57.230576 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:57.230660 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:57.232904 < 16 bytes data, client => server 10:30:57.233206 'USER anonymous\r\n' 10:30:57.235613 Received DATA (on stdin) 10:30:57.235829 > 33 bytes data, server => client 10:30:57.235962 '331 We are happy you popped in!\r\n' 10:30:57.237755 < 22 bytes data, client => server 10:30:57.237974 'PASS ftp@example.com\r\n' 10:30:57.239577 Received DATA (on stdin) 10:30:57.239834 > 30 bytes data, server => client 10:30:57.240775 '230 Welcome you silly person\r\n' 10:30:57.243021 < 5 bytes data, client => server 10:30:57.243277 'PWD\r\n' 10:30:57.245460 Received DATA (on stdin) 10:30:57.245710 > 30 bytes data, server => client 10:30:57.245824 '257 "/" is current directory\r\n' 10:30:57.248899 < 6 bytes data, client => server 10:30:57.249176 'EPSV\r\n' 10:30:57.275889 Received DATA (on stdin) 10:30:57.276074 > 38 bytes data, server => client 10:30:57.276172 '229 Entering Passive Mode (|||37809|)\n' 10:30:57.277688 < 8 bytes data, client => server 10:30:57.277880 'TYPE I\r\n' 10:30:57.280071 Received DATA (on stdin) 10:30:57.280238 > 33 bytes data, server => client 10:30:57.280337 '200 I modify TYPE as you wanted\r\n' 10:30:57.281157 < 21 bytes data, client => server 10:30:57.281351 'SIZE verifiedserver\r\n' 10:30:57.283114 Received DATA (on stdin) 10:30:57.283339 > 8 bytes data, server => client 10:30:57.283452 '213 17\r\n' 10:30:57.284349 < 21 bytes data, client => server 10:30:57.284567 'RETR verifiedserver\r\n' 10:30:57.287779 Received DATA (on stdin) 10:30:57.287985 > 29 bytes data, server => client 10:30:57.288093 '150 Binary junk (17 bytes).\r\n' 10:30:57.293682 Received DATA (on stdin) 10:30:57.293912 > 28 bytes data, server => client 10:30:57.294111 '226 File transfer complete\r\n' 10:30:57.333780 < 6 bytes data, client => server 10:30:57.334122 'QUIT\r\n' 10:30:57.336882 Received DATA (on stdin) 10:30:57.337196 > 18 bytes data, server => client 10:30:57.337312 '221 bye bye baby\r\n' 10:30:57.342579 ====> Client disconnect 10:30:57.345005 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:57.263901 Running IPv4 version 10:30:57.264454 Listening on port 37809 10:30:57.265040 Wrote pid 81443 to log/5/server/ftp_sockdata.pid 10:30:57.265261 Received PING (on stdin) 10:30:57.271859 Received PORT (on stdin) 10:30:57.277311 ====> Client connect 10:30:57.287773 Received DATA (on stdin) 10:30:57.287985 > 17 bytes data, server => client 10:30:57.288092 'WE ROOLZ: 79602\r\n' 10:30:57.288437 Received DISC (on stdin) 10:30:57.288718 ====> Client forcibly disconnected 10:30:57.291005 Received QUIT (on stdin) 10:30:57.291273 quits 10:30:57.291840 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc131 # the following two lines were created while testing curl machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc131 === Start of file server.cmd Testnum 131 === End of file server.cmd === Start of file valgrind131 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind132 ../src/curl -q --output log/6/curl132.out --include --trace-ascii log/6/trace132 --trace-time --netrc-optional --netrc-file log/6/netrc132 ftp://mary:mark@127.0.0.1:33323/ > log/6/stdout132 2> log/6/stderr132 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind133 ../src/curl -q --output log/8/curl133.out --include --trace-ascii log/8/trace133 --trace-time -n --netrc-file log/8/netrc133 ftp://mary:mark@127.0.0.1:38061/ > log/8/stdout133 2> log/8/stderr133 a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind131 test 0132...[FTP (optional .netrc; user/passwd supplied) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind132 ../src/curl -q --output log/6/curl132.out --include --trace-ascii log/6/trace132 --trace-time --netrc-optional --netrc-file log/6/netrc132 ftp://mary:mark@127.0.0.1:33323/ > log/6/stdout132 2> log/6/stderr132 132: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 132 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind132 ../src/curl -q --output log/6/curl132.out --include --trace-ascii log/6/trace132 --trace-time --netrc-optional --netrc-file log/6/netrc132 ftp://mary:mark@127.0.0.1:33323/ > log/6/stdout132 2> log/6/stderr132 === End of file commands.log === Start of file ftp_server.log 10:30:57.595726 ====> Client connect 10:30:57.597137 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:57.600555 < "USER anonymous" 10:30:57.601078 > "331 We are happy you popped in![CR][LF]" 10:30:57.603673 < "PASS ftp@example.com" 10:30:57.604154 > "230 Welcome you silly person[CR][LF]" 10:30:57.607786 < "PWD" 10:30:57.608243 > "257 "/" is current directory[CR][LF]" 10:30:57.611007 < "EPSV" 10:30:57.611362 ====> Passive DATA channel requested by client 10:30:57.611610 DATA sockfilt for passive data channel starting... 10:30:57.626955 DATA sockfilt for passive data channel started (pid 81452) 10:30:57.628220 DATA sockfilt for passive data channel listens on port 42587 10:30:57.628773 > "229 Entering Passive Mode (|||42587|)[LF]" 10:30:57.629052 Client has been notified that DATA conn will be accepted on port 42587 10:30:57.632162 Client connects to port 42587 10:30:57.632666 ====> Client established passive DATA connection on port 42587 10:30:57.633982 < "TYPE I" 10:30:57.634587 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:57.637295 < "SIZE verifiedserver" 10:30:57.637990 > "213 17[CR][LF]" 10:30:57.640822 < "RETR verifiedserver" 10:30:57.641539 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:57.642985 =====> Closing passive DATA connection... 10:30:57.643438 Server disconnects passive DATA connection 10:30:57.644609 Server disconnected passive DATA connection 10:30:57.645135 DATA sockfilt for passive data channel quits (pid 81452) 10:30:57.647330 DATA sockfilt for passive data channel quit (pid 81452) 10:30:57.647777 =====> Closed passive DATA connection 10:30:57.648228 > "226 File transfer complete[CR][LF]" 10:30:57.694451 < "QUIT" 10:30:57.695103 > "221 bye bye baby[CR][LF]" 10:30:57.705641 MAIN sockfilt said DISC 10:30:57.706159 ====> Client disconnected 10:30:57.706747 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:58.266075 ====> Client connect 10:30:58.268817 Received DATA (on stdin) 10:30:58.269063 > 160 bytes data, server => client 10:30:58.269190 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:58.269286 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:58.269359 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:58.270372 < 16 bytes data, client => server 10:30:58.270586 'USER anonymous\r\n' 10:30:58.272659 Received DATA (on stdin) 10:30:58.272881 > 33 bytes data, server => client 10:30:58.272994 '331 We are happy you popped in!\r\n' 10:30:58.273784 < 22 bytes data, client => server 10:30:58.273957 'PASS ftp@example.com\r\n' 10:30:58.275720 Received DATA (on stdin) 10:30:58.275930 > 30 bytes data, server => client 10:30:58.276031 '230 Welcome you silly person\r\n' 10:30:58.278021 < 5 bytes data, client => server 10:30:58.278208 'PWD\r\n' 10:30:58.279665 Received DATA (on stdin) 10:30:58.279872 > 30 bytes data, server => client 10:30:58.279984 '257 "/" is current directory\r\n' 10:30:58.280966 < 6 bytes data, client => server 10:30:58.281224 'EPSV\r\n' 10:30:58.300548 Received DATA (on stdin) 10:30:58.300802 > 38 bytes data, server => client 10:30:58.300904 '229 Entering Passive Mode (|||42587|)\n' 10:30:58.302855 < 8 bytes data, client => server 10:30:58.303022 'TYPE I\r\n' 10:30:58.306222 Received DATA (on stdin) 10:30:58.306505 > 33 bytes data, server => client 10:30:58.306653 '200 I modify TYPE as you wanted\r\n' 10:30:58.307394 < 21 bytes data, client => server 10:30:58.307580 'SIZE verifiedserver\r\n' 10:30:58.309571 Received DATA (on stdin) 10:30:58.309746 > 8 bytes data, server => client 10:30:58.309840 '213 17\r\n' 10:30:58.310617 < 21 bytes data, client => server 10:30:58.310860 'RETR verifiedserver\r\n' 10:30:58.312756 Received DATA (on stdin) 10:30:58.312990 > 29 bytes data, server => client 10:30:58.313120 '150 Binary junk (17 bytes).\r\n' 10:30:58.319385 Received DATA (on stdin) 10:30:58.319609 > 28 bytes data, server => client 10:30:58.319745 '226 File transfer complete\r\n' 10:30:58.362846 < 6 bytes data, client => server 10:30:58.363175 'QUIT\r\n' 10:30:58.366923 Received DATA (on stdin) 10:30:58.367176 > 18 bytes data, server => client 10:30:58.367284 '221 bye bye baby\r\n' 10:30:58.372388 ====> Client disconnect 10:30:58.377358 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:57.296419 Running IPv4 version 10:30:57.297059 Listening on port 42587 10:30:57.297460 Wrote pid 81452 to log/6/server/ftp_sockdata.pid 10:30:57.297645 Received PING (on stdin) 10:30:57.298705 Received PORT (on stdin) 10:30:57.301999 ====> Client connect 10:30:57.313632 Received DATA (on stdin) 10:30:57.313856 > 17 bytes data, server => client 10:30:57.313964 'WE ROOLZ: 79480\r\n' 10:30:57.314950 Received DISC (on stdin) 10:30:57.315143 ====> Client forcibly disconnected 10:30:57.316767 Received QUIT (on stdin) 10:30:57.317014 quits 10:30:57.317506 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc132 # the following two lines were created while testing curl machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc132 === Start of file server.cmd Testnum 132 === End of file server.cmd === Start of file valgrind132 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. SCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind134 ../src/curl -q --output log/4/curl134.out --include --trace-ascii log/4/trace134 --trace-time --netrc-optional --netrc-file log/4/netrc134 -u romulus:rhemus ftp://mary:mark@127.0.0.1:42635/ > log/4/stdout134 2> log/4/stderr134 orry. === End of file valgrind132 test 0133...[FTP compulsory .netrc; ignore passwd in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind133 ../src/curl -q --output log/8/curl133.out --include --trace-ascii log/8/trace133 --trace-time -n --netrc-file log/8/netrc133 ftp://mary:mark@127.0.0.1:38061/ > log/8/stdout133 2> log/8/stderr133 133: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 133 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind133 ../src/curl -q --output log/8/curl133.out --include --trace-ascii log/8/trace133 --trace-time -n --netrc-file log/8/netrc133 ftp://mary:mark@127.0.0.1:38061/ > log/8/stdout133 2> log/8/stderr133 === End of file commands.log === Start of file ftp_server.log 10:30:57.673574 ====> Client connect 10:30:57.678456 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:57.680056 < "USER anonymous" 10:30:57.680636 > "331 We are happy you popped in![CR][LF]" 10:30:57.694453 < "PASS ftp@example.com" 10:30:57.695154 > "230 Welcome you silly person[CR][LF]" 10:30:57.702542 < "PWD" 10:30:57.703055 > "257 "/" is current directory[CR][LF]" 10:30:57.712036 < "EPSV" 10:30:57.712500 ====> Passive DATA channel requested by client 10:30:57.712831 DATA sockfilt for passive data channel starting... 10:30:57.726682 DATA sockfilt for passive data channel started (pid 81483) 10:30:57.728231 DATA sockfilt for passive data channel listens on port 36633 10:30:57.728895 > "229 Entering Passive Mode (|||36633|)[LF]" 10:30:57.729251 Client has been notified that DATA conn will be accepted on port 36633 10:30:57.734142 Client connects to port 36633 10:30:57.734749 ====> Client established passive DATA connection on port 36633 10:30:57.735746 < "TYPE I" 10:30:57.736220 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:57.738175 < "SIZE verifiedserver" 10:30:57.738752 > "213 17[CR][LF]" 10:30:57.740642 < "RETR verifiedserver" 10:30:57.741326 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:57.742264 =====> Closing passive DATA connection... 10:30:57.742676 Server disconnects passive DATA connection 10:30:57.743998 Fancy that; client wants to DISC, too 10:30:57.744602 Server disconnected passive DATA connection 10:30:57.744965 DATA sockfilt for passive data channel quits (pid 81483) 10:30:57.747706 DATA sockfilt for passive data channel quit (pid 81483) 10:30:57.748129 =====> Closed passive DATA connection 10:30:57.748614 > "226 File transfer complete[CR][LF]" 10:30:57.788189 < "QUIT" 10:30:57.788613 > "221 bye bye baby[CR][LF]" 10:30:57.793918 MAIN sockfilt said DISC 10:30:57.794421 ====> Client disconnected 10:30:57.797777 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:58.343720 ====> Client connect 10:30:58.346084 Received DATA (on stdin) 10:30:58.346334 > 160 bytes data, server => client 10:30:58.348158 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:58.348509 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:58.348855 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:58.349988 < 16 bytes data, client => server 10:30:58.350149 'USER anonymous\r\n' 10:30:58.351792 Received DATA (on stdin) 10:30:58.352039 > 33 bytes data, server => client 10:30:58.352177 '331 We are happy you popped in!\r\n' 10:30:58.359278 < 22 bytes data, client => server 10:30:58.359523 'PASS ftp@example.com\r\n' 10:30:58.367560 Received DATA (on stdin) 10:30:58.367853 > 30 bytes data, server => client 10:30:58.368002 '230 Welcome you silly person\r\n' 10:30:58.370021 < 5 bytes data, client => server 10:30:58.370287 'PWD\r\n' 10:30:58.380699 Received DATA (on stdin) 10:30:58.381027 > 30 bytes data, server => client 10:30:58.381189 '257 "/" is current directory\r\n' 10:30:58.382175 < 6 bytes data, client => server 10:30:58.382455 'EPSV\r\n' 10:30:58.400034 Received DATA (on stdin) 10:30:58.400320 > 38 bytes data, server => client 10:30:58.400485 '229 Entering Passive Mode (|||36633|)\n' 10:30:58.402641 < 8 bytes data, client => server 10:30:58.402841 'TYPE I\r\n' 10:30:58.407382 Received DATA (on stdin) 10:30:58.407589 > 33 bytes data, server => client 10:30:58.407693 '200 I modify TYPE as you wanted\r\n' 10:30:58.408482 < 21 bytes data, client => server 10:30:58.408782 'SIZE verifiedserver\r\n' 10:30:58.409898 Received DATA (on stdin) 10:30:58.410117 > 8 bytes data, server => client 10:30:58.410229 '213 17\r\n' 10:30:58.411009 < 21 bytes data, client => server 10:30:58.411229 'RETR verifiedserver\r\n' 10:30:58.412463 Received DATA (on stdin) 10:30:58.412731 > 29 bytes data, server => client 10:30:58.412838 '150 Binary junk (17 bytes).\r\n' 10:30:58.421038 Received DATA (on stdin) 10:30:58.421282 > 28 bytes data, server => client 10:30:58.421411 '226 File transfer complete\r\n' 10:30:58.458015 < 6 bytes data, client => server 10:30:58.458280 'QUIT\r\n' 10:30:58.459738 Received DATA (on stdin) 10:30:58.459909 > 18 bytes data, server => client 10:30:58.460031 '221 bye bye baby\r\n' 10:30:58.464680 ====> Client disconnect 10:30:58.465631 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:57.394772 Running IPv4 version 10:30:57.395497 Listening on port 36633 10:30:57.396058 Wrote pid 81483 to log/8/server/ftp_sockdata.pid 10:30:57.397250 Received PING (on stdin) 10:30:57.398494 Received PORT (on stdin) 10:30:57.402302 ====> Client connect 10:30:57.412964 Received DATA (on stdin) 10:30:57.413139 > 17 bytes data, server => client 10:30:57.413244 'WE ROOLZ: 79508\r\n' 10:30:57.414008 ====> Client disconnect 10:30:57.414296 Received DISC (on stdin) 10:30:57.414438 Crikey! Client also wants to disconnect 10:30:57.416806 Received ACKD (on stdin) 10:30:57.417296 Received QUIT (on stdin) 10:30:57.417480 quits 10:30:57.417881 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc133 # the following two lines were created while testing curl machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login mary password drfrank === End of file netrc133 === Start of file server.cmd Testnum 133 === End of file server.cmd === Start of file valgrind133 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind133 tCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind135 ../src/curl -q --output log/7/curl135.out --include --trace-ascii log/7/trace135 --trace-time -r 4-16 ftp://127.0.0.1:38253/135 > log/7/stdout135 2> log/7/stderr135 est 0134...[FTP (optional .netrc; programmatic user/passwd) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind134 ../src/curl -q --output log/4/curl134.out --include --trace-ascii log/4/trace134 --trace-time --netrc-optional --netrc-file log/4/netrc134 -u romulus:rhemus ftp://mary:mark@127.0.0.1:42635/ > log/4/stdout134 2> log/4/stderr134 134: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 134 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind134 ../src/curl -q --output log/4/curl134.out --include --trace-ascii log/4/trace134 --trace-time --netrc-optional --netrc-file log/4/netrc134 -u romulus:rhemus ftp://mary:mark@127.0.0.1:42635/ > log/4/stdout134 2> log/4/stderr134 === End of file commands.log === Start of file ftp_server.log 10:30:57.781708 ====> Client connect 10:30:57.783283 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:57.786570 < "USER anonymous" 10:30:57.787130 > "331 We are happy you popped in![CR][LF]" 10:30:57.790247 < "PASS ftp@example.com" 10:30:57.790755 > "230 Welcome you silly person[CR][LF]" 10:30:57.796042 < "PWD" 10:30:57.796536 > "257 "/" is current directory[CR][LF]" 10:30:57.802720 < "EPSV" 10:30:57.803020 ====> Passive DATA channel requested by client 10:30:57.803177 DATA sockfilt for passive data channel starting... 10:30:57.814821 DATA sockfilt for passive data channel started (pid 81498) 10:30:57.816897 DATA sockfilt for passive data channel listens on port 34581 10:30:57.817428 > "229 Entering Passive Mode (|||34581|)[LF]" 10:30:57.817927 Client has been notified that DATA conn will be accepted on port 34581 10:30:57.819981 Client connects to port 34581 10:30:57.820480 ====> Client established passive DATA connection on port 34581 10:30:57.821386 < "TYPE I" 10:30:57.822145 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:57.824195 < "SIZE verifiedserver" 10:30:57.824739 > "213 17[CR][LF]" 10:30:57.826497 < "RETR verifiedserver" 10:30:57.826987 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:57.827851 =====> Closing passive DATA connection... 10:30:57.828213 Server disconnects passive DATA connection 10:30:57.830859 Server disconnected passive DATA connection 10:30:57.831267 DATA sockfilt for passive data channel quits (pid 81498) 10:30:57.833169 DATA sockfilt for passive data channel quit (pid 81498) 10:30:57.833674 =====> Closed passive DATA connection 10:30:57.834171 > "226 File transfer complete[CR][LF]" 10:30:57.872003 < "QUIT" 10:30:57.872614 > "221 bye bye baby[CR][LF]" 10:30:57.882155 MAIN sockfilt said DISC 10:30:57.882690 ====> Client disconnected 10:30:57.883387 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:58.451079 ====> Client connect 10:30:58.454390 Received DATA (on stdin) 10:30:58.454720 > 160 bytes data, server => client 10:30:58.454964 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:58.455164 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:58.455307 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:58.456540 < 16 bytes data, client => server 10:30:58.456956 'USER anonymous\r\n' 10:30:58.458535 Received DATA (on stdin) 10:30:58.458781 > 33 bytes data, server => client 10:30:58.458949 '331 We are happy you popped in!\r\n' 10:30:58.460658 < 22 bytes data, client => server 10:30:58.460948 'PASS ftp@example.com\r\n' 10:30:58.463838 Received DATA (on stdin) 10:30:58.464442 > 30 bytes data, server => client 10:30:58.464748 '230 Welcome you silly person\r\n' 10:30:58.465719 < 5 bytes data, client => server 10:30:58.465854 'PWD\r\n' 10:30:58.467699 Received DATA (on stdin) 10:30:58.467885 > 30 bytes data, server => client 10:30:58.468103 '257 "/" is current directory\r\n' 10:30:58.472818 < 6 bytes data, client => server 10:30:58.473034 'EPSV\r\n' 10:30:58.488825 Received DATA (on stdin) 10:30:58.488993 > 38 bytes data, server => client 10:30:58.489098 '229 Entering Passive Mode (|||34581|)\n' 10:30:58.490656 < 8 bytes data, client => server 10:30:58.490885 'TYPE I\r\n' 10:30:58.493599 Received DATA (on stdin) 10:30:58.493804 > 33 bytes data, server => client 10:30:58.493919 '200 I modify TYPE as you wanted\r\n' 10:30:58.494606 < 21 bytes data, client => server 10:30:58.494824 'SIZE verifiedserver\r\n' 10:30:58.495882 Received DATA (on stdin) 10:30:58.496069 > 8 bytes data, server => client 10:30:58.496176 '213 17\r\n' 10:30:58.496941 < 21 bytes data, client => server 10:30:58.497193 'RETR verifiedserver\r\n' 10:30:58.498112 Received DATA (on stdin) 10:30:58.498280 > 29 bytes data, server => client 10:30:58.498373 '150 Binary junk (17 bytes).\r\n' 10:30:58.505874 Received DATA (on stdin) 10:30:58.506112 > 28 bytes data, server => client 10:30:58.506225 '226 File transfer complete\r\n' 10:30:58.541761 < 6 bytes data, client => server 10:30:58.542009 'QUIT\r\n' 10:30:58.545368 Received DATA (on stdin) 10:30:58.545577 > 18 bytes data, server => client 10:30:58.545688 '221 bye bye baby\r\n' 10:30:58.550536 ====> Client disconnect 10:30:58.553826 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:57.484195 Running IPv4 version 10:30:57.484904 Listening on port 34581 10:30:57.485394 Wrote pid 81498 to log/4/server/ftp_sockdata.pid 10:30:57.485593 Received PING (on stdin) 10:30:57.487263 Received PORT (on stdin) 10:30:57.490721 ====> Client connect 10:30:57.499695 Received DATA (on stdin) 10:30:57.499889 > 17 bytes data, server => client 10:30:57.500183 'WE ROOLZ: 79516\r\n' 10:30:57.500542 Received DISC (on stdin) 10:30:57.501685 ====> Client forcibly disconnected 10:30:57.502734 Received QUIT (on stdin) 10:30:57.502904 quits 10:30:57.503367 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc134 # the following two lines were created while testing curl machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc134 === Start of file server.cmd Testnum 134 === End of file server.cmd === Start of file valgrind134 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind134 test 0135...[FTP retrieve a byte-range] ../libtool --mode=execute /usr/bin/valgrind --tool=memchCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind136 ../src/curl -q --output log/2/curl136.out --include --trace-ascii log/2/trace136 --trace-time -u user: ftp://127.0.0.1:37959/136 > log/2/stdout136 2> log/2/stderr136 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind137 ../src/curl -q --output log/3/curl137.out --include --trace-ascii log/3/trace137 --trace-time ftp://127.0.0.1:33831/blalbla/lululul/137 > log/3/stdout137 2> log/3/stderr137 eck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind135 ../src/curl -q --output log/7/curl135.out --include --trace-ascii log/7/trace135 --trace-time -r 4-16 ftp://127.0.0.1:38253/135 > log/7/stdout135 2> log/7/stderr135 135: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 135 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind135 ../src/curl -q --output log/7/curl135.out --include --trace-ascii log/7/trace135 --trace-time -r 4-16 ftp://127.0.0.1:38253/135 > log/7/stdout135 2> log/7/stderr135 === End of file commands.log === Start of file ftp_server.log 10:30:57.939613 ====> Client connect 10:30:57.940946 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:57.947052 < "USER anonymous" 10:30:57.947634 > "331 We are happy you popped in![CR][LF]" 10:30:57.949345 < "PASS ftp@example.com" 10:30:57.949968 > "230 Welcome you silly person[CR][LF]" 10:30:57.952340 < "PWD" 10:30:57.952926 > "257 "/" is current directory[CR][LF]" 10:30:57.956103 < "EPSV" 10:30:57.956539 ====> Passive DATA channel requested by client 10:30:57.956825 DATA sockfilt for passive data channel starting... 10:30:57.969940 DATA sockfilt for passive data channel started (pid 81578) 10:30:57.973102 DATA sockfilt for passive data channel listens on port 33989 10:30:57.973853 > "229 Entering Passive Mode (|||33989|)[LF]" 10:30:57.974276 Client has been notified that DATA conn will be accepted on port 33989 10:30:57.982740 Client connects to port 33989 10:30:57.983326 ====> Client established passive DATA connection on port 33989 10:30:57.984445 < "TYPE I" 10:30:57.985033 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:57.987136 < "SIZE verifiedserver" 10:30:57.987767 > "213 17[CR][LF]" 10:30:57.993385 < "RETR verifiedserver" 10:30:57.994215 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:57.995182 =====> Closing passive DATA connection... 10:30:57.995487 Server disconnects passive DATA connection 10:30:58.003448 Server disconnected passive DATA connection 10:30:58.003911 DATA sockfilt for passive data channel quits (pid 81578) 10:30:58.006405 DATA sockfilt for passive data channel quit (pid 81578) 10:30:58.006852 =====> Closed passive DATA connection 10:30:58.008568 > "226 File transfer complete[CR][LF]" 10:30:58.054308 < "QUIT" 10:30:58.054762 > "221 bye bye baby[CR][LF]" 10:30:58.058957 MAIN sockfilt said DISC 10:30:58.059472 ====> Client disconnected 10:30:58.060075 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:58.610217 ====> Client connect 10:30:58.615726 Received DATA (on stdin) 10:30:58.616004 > 160 bytes data, server => client 10:30:58.616130 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:58.616222 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:58.616302 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:58.617105 < 16 bytes data, client => server 10:30:58.617353 'USER anonymous\r\n' 10:30:58.618790 Received DATA (on stdin) 10:30:58.618991 > 33 bytes data, server => client 10:30:58.619093 '331 We are happy you popped in!\r\n' 10:30:58.619807 < 22 bytes data, client => server 10:30:58.620048 'PASS ftp@example.com\r\n' 10:30:58.621101 Received DATA (on stdin) 10:30:58.621314 > 30 bytes data, server => client 10:30:58.621433 '230 Welcome you silly person\r\n' 10:30:58.622678 < 5 bytes data, client => server 10:30:58.622940 'PWD\r\n' 10:30:58.624554 Received DATA (on stdin) 10:30:58.624904 > 30 bytes data, server => client 10:30:58.625037 '257 "/" is current directory\r\n' 10:30:58.626065 < 6 bytes data, client => server 10:30:58.626316 'EPSV\r\n' 10:30:58.648740 Received DATA (on stdin) 10:30:58.648971 > 38 bytes data, server => client 10:30:58.649081 '229 Entering Passive Mode (|||33989|)\n' 10:30:58.650727 < 8 bytes data, client => server 10:30:58.650957 'TYPE I\r\n' 10:30:58.656189 Received DATA (on stdin) 10:30:58.656411 > 33 bytes data, server => client 10:30:58.656529 '200 I modify TYPE as you wanted\r\n' 10:30:58.657422 < 21 bytes data, client => server 10:30:58.657624 'SIZE verifiedserver\r\n' 10:30:58.659568 Received DATA (on stdin) 10:30:58.659917 > 8 bytes data, server => client 10:30:58.660081 '213 17\r\n' 10:30:58.663244 < 21 bytes data, client => server 10:30:58.663515 'RETR verifiedserver\r\n' 10:30:58.672121 Received DATA (on stdin) 10:30:58.673918 > 29 bytes data, server => client 10:30:58.674047 '150 Binary junk (17 bytes).\r\n' 10:30:58.679661 Received DATA (on stdin) 10:30:58.679871 > 28 bytes data, server => client 10:30:58.679976 '226 File transfer complete\r\n' 10:30:58.720917 < 6 bytes data, client => server 10:30:58.721216 'QUIT\r\n' 10:30:58.725897 Received DATA (on stdin) 10:30:58.726078 > 18 bytes data, server => client 10:30:58.726174 '221 bye bye baby\r\n' 10:30:58.729597 ====> Client disconnect 10:30:58.730570 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:57.639215 Running IPv4 version 10:30:57.639773 Listening on port 33989 10:30:57.640155 Wrote pid 81578 to log/7/server/ftp_sockdata.pid 10:30:57.640655 Received PING (on stdin) 10:30:57.642455 Received PORT (on stdin) 10:30:57.652739 ====> Client connect 10:30:57.665913 Received DATA (on stdin) 10:30:57.666128 > 17 bytes data, server => client 10:30:57.666247 'WE ROOLZ: 79543\r\n' 10:30:57.666954 Received DISC (on stdin) 10:30:57.667137 ====> Client forcibly disconnected 10:30:57.675415 Received QUIT (on stdin) 10:30:57.675634 quits 10:30:57.676124 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 135 === End of file server.cmd === Start of file valgrind135 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind135 test 0136...[FTP with user and no password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind136 ../src/curl -q --output log/2/curl136.out --include --trace-ascii log/2/trace136 --trace-time -u user: ftp://127.0.0.1:37959/136 > log/2/stdout136 2> log/2/stderr136 136: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 136 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind136 ../src/curl -q --output log/2/curl136.out --include --trace-ascii log/2/trace136 --trace-time -u user: ftp://127.0.0.1:37959/136 > log/2/stdout136 2> log/2/stderr136 === End of file commands.log === Start of file ftp_server.log 10:30:58.008025 ====> Client connect 10:30:58.018094 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:58.019564 < "USER anonymous" 10:30:58.020078 > "331 We are happy you popped in![CR][LF]" 10:30:58.034419 < "PASS ftp@example.com" 10:30:58.035006 > "230 Welcome you silly person[CR][LF]" 10:30:58.038318 < "PWD" 10:30:58.038823 > "257 "/" is current directory[CR][LF]" 10:30:58.046213 < "EPSV" 10:30:58.046581 ====> Passive DATA channel requested by client 10:30:58.046771 DATA sockfilt for passive data channel starting... 10:30:58.064943 DATA sockfilt for passive data channel started (pid 81631) 10:30:58.066731 DATA sockfilt for passive data channel listens on port 35463 10:30:58.067303 > "229 Entering Passive Mode (|||35463|)[LF]" 10:30:58.067593 Client has been notified that DATA conn will be accepted on port 35463 10:30:58.069704 Client connects to port 35463 10:30:58.070149 ====> Client established passive DATA connection on port 35463 10:30:58.070984 < "TYPE I" 10:30:58.071345 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:58.075269 < "SIZE verifiedserver" 10:30:58.075739 > "213 17[CR][LF]" 10:30:58.077653 < "RETR verifiedserver" 10:30:58.078281 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:58.078989 =====> Closing passive DATA connection... 10:30:58.079271 Server disconnects passive DATA connection 10:30:58.080288 Server disconnected passive DATA connection 10:30:58.080667 DATA sockfilt for passive data channel quits (pid 81631) 10:30:58.089667 DATA sockfilt for passive data channel quit (pid 81631) 10:30:58.090096 =====> Closed passive DATA connection 10:30:58.090605 > "226 File transfer complete[CR][LF]" 10:30:58.127487 < "QUIT" 10:30:58.128160 > "221 bye bye baby[CR][LF]" 10:30:58.131154 MAIN sockfilt said DISC 10:30:58.131796 ====> Client disconnected 10:30:58.132635 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:57.678375 ====> Client connect 10:30:57.684779 Received DATA (on stdin) 10:30:57.685070 > 160 bytes data, server => client 10:30:57.685214 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:57.685317 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:57.685410 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:57.686375 < 16 bytes data, client => server 10:30:57.686608 'USER anonymous\r\n' 10:30:57.691222 Received DATA (on stdin) 10:30:57.691410 > 33 bytes data, server => client 10:30:57.691530 '331 We are happy you popped in!\r\n' 10:30:57.701186 < 22 bytes data, client => server 10:30:57.701485 'PASS ftp@example.com\r\n' 10:30:57.706148 Received DATA (on stdin) 10:30:57.706400 > 30 bytes data, server => client 10:30:57.706564 '230 Welcome you silly person\r\n' 10:30:57.708177 < 5 bytes data, client => server 10:30:57.708447 'PWD\r\n' 10:30:57.709961 Received DATA (on stdin) 10:30:57.710159 > 30 bytes data, server => client 10:30:57.710294 '257 "/" is current directory\r\n' 10:30:57.712900 < 6 bytes data, client => server 10:30:57.713156 'EPSV\r\n' 10:30:57.738431 Received DATA (on stdin) 10:30:57.738657 > 38 bytes data, server => client 10:30:57.738777 '229 Entering Passive Mode (|||35463|)\n' 10:30:57.740531 < 8 bytes data, client => server 10:30:57.740824 'TYPE I\r\n' 10:30:57.744751 Received DATA (on stdin) 10:30:57.744937 > 33 bytes data, server => client 10:30:57.745031 '200 I modify TYPE as you wanted\r\n' 10:30:57.745717 < 21 bytes data, client => server 10:30:57.745933 'SIZE verifiedserver\r\n' 10:30:57.746885 Received DATA (on stdin) 10:30:57.747036 > 8 bytes data, server => client 10:30:57.747128 '213 17\r\n' 10:30:57.747841 < 21 bytes data, client => server 10:30:57.748040 'RETR verifiedserver\r\n' 10:30:57.752705 Received DATA (on stdin) 10:30:57.752907 > 29 bytes data, server => client 10:30:57.753023 '150 Binary junk (17 bytes).\r\n' 10:30:57.761708 Received DATA (on stdin) 10:30:57.761967 > 28 bytes data, server => client 10:30:57.762081 '226 File transfer complete\r\n' 10:30:57.797764 < 6 bytes data, client => server 10:30:57.798064 'QUIT\r\n' 10:30:57.799300 Received DATA (on stdin) 10:30:57.799548 > 18 bytes data, server => client 10:30:57.799670 '221 bye bye baby\r\n' 10:30:57.801745 ====> Client disconnect 10:30:57.806742 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:58.727966 Running IPv4 version 10:30:58.734312 Listening on port 35463 10:30:58.734648 Wrote pid 81631 to log/2/server/ftp_sockdata.pid 10:30:58.734809 Received PING (on stdin) 10:30:58.737025 Received PORT (on stdin) 10:30:58.740282 ====> Client connect 10:30:58.750520 Received DATA (on stdin) 10:30:58.750699 > 17 bytes data, server => client 10:30:58.750837 'WE ROOLZ: 79558\r\n' 10:30:58.751110 Received DISC (on stdin) 10:30:58.751292 ====> Client forcibly disconnected 10:30:58.755110 Received QUIT (on stdin) 10:30:58.755377 quits 10:30:58.755887 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 136 === End of file server.cmd === Start of file valgrind136 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind136 test 0137...[FTP download without size in RETR string] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind137 ../src/curl -q --output log/3/curl137.out --include --trace-ascii log/3/trace137 --trace-time ftp://127.0.0.1:33831/blalbla/lululul/137 > log/3/stdout137 2> log/3/stderr137 137: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 137 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind137 ../src/curl -q --output log/3/curl137.out --include --trace-ascii log/3/trace137 --trace-time ftp://127.0.0.1:33831/blalbla/lululul/137 > log/3/stdout137 2> log/3/stderr137 === End of file coCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind138 ../src/curl -q --output log/1/curl138.out --include --trace-ascii log/1/trace138 --trace-time ftp://127.0.0.1:38733/blalbla/lululul/138 > log/1/stdout138 2> log/1/stderr138 mmands.log === Start of file ftp_server.log 10:30:58.062824 ====> Client connect 10:30:58.063950 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:58.070426 < "USER anonymous" 10:30:58.070907 > "331 We are happy you popped in![CR][LF]" 10:30:58.075621 < "PASS ftp@example.com" 10:30:58.076089 > "230 Welcome you silly person[CR][LF]" 10:30:58.078127 < "PWD" 10:30:58.078620 > "257 "/" is current directory[CR][LF]" 10:30:58.082061 < "EPSV" 10:30:58.082609 ====> Passive DATA channel requested by client 10:30:58.082994 DATA sockfilt for passive data channel starting... 10:30:58.096292 DATA sockfilt for passive data channel started (pid 81648) 10:30:58.098047 DATA sockfilt for passive data channel listens on port 40189 10:30:58.098762 > "229 Entering Passive Mode (|||40189|)[LF]" 10:30:58.099179 Client has been notified that DATA conn will be accepted on port 40189 10:30:58.103442 Client connects to port 40189 10:30:58.103936 ====> Client established passive DATA connection on port 40189 10:30:58.105053 < "TYPE I" 10:30:58.106335 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:58.110877 < "SIZE verifiedserver" 10:30:58.111612 > "213 17[CR][LF]" 10:30:58.115684 < "RETR verifiedserver" 10:30:58.116385 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:58.118076 =====> Closing passive DATA connection... 10:30:58.118473 Server disconnects passive DATA connection 10:30:58.120507 Server disconnected passive DATA connection 10:30:58.121055 DATA sockfilt for passive data channel quits (pid 81648) 10:30:58.123652 DATA sockfilt for passive data channel quit (pid 81648) 10:30:58.124086 =====> Closed passive DATA connection 10:30:58.124574 > "226 File transfer complete[CR][LF]" 10:30:58.170256 < "QUIT" 10:30:58.170763 > "221 bye bye baby[CR][LF]" 10:30:58.175941 MAIN sockfilt said DISC 10:30:58.176490 ====> Client disconnected 10:30:58.177164 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:57.733276 ====> Client connect 10:30:57.735048 Received DATA (on stdin) 10:30:57.735230 > 160 bytes data, server => client 10:30:57.735331 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:57.735419 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:57.735489 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:57.739540 < 16 bytes data, client => server 10:30:57.739762 'USER anonymous\r\n' 10:30:57.744686 Received DATA (on stdin) 10:30:57.744937 > 33 bytes data, server => client 10:30:57.745031 '331 We are happy you popped in!\r\n' 10:30:57.746067 < 22 bytes data, client => server 10:30:57.746218 'PASS ftp@example.com\r\n' 10:30:57.747203 Received DATA (on stdin) 10:30:57.747331 > 30 bytes data, server => client 10:30:57.747424 '230 Welcome you silly person\r\n' 10:30:57.748473 < 5 bytes data, client => server 10:30:57.748760 'PWD\r\n' 10:30:57.749764 Received DATA (on stdin) 10:30:57.749960 > 30 bytes data, server => client 10:30:57.750086 '257 "/" is current directory\r\n' 10:30:57.752227 < 6 bytes data, client => server 10:30:57.752494 'EPSV\r\n' 10:30:57.770706 Received DATA (on stdin) 10:30:57.770935 > 38 bytes data, server => client 10:30:57.771055 '229 Entering Passive Mode (|||40189|)\n' 10:30:57.774138 < 8 bytes data, client => server 10:30:57.774305 'TYPE I\r\n' 10:30:57.776859 Received DATA (on stdin) 10:30:57.777128 > 33 bytes data, server => client 10:30:57.778014 '200 I modify TYPE as you wanted\r\n' 10:30:57.779259 < 21 bytes data, client => server 10:30:57.779556 'SIZE verifiedserver\r\n' 10:30:57.784120 Received DATA (on stdin) 10:30:57.784394 > 8 bytes data, server => client 10:30:57.784501 '213 17\r\n' 10:30:57.785362 < 21 bytes data, client => server 10:30:57.785608 'RETR verifiedserver\r\n' 10:30:57.788838 Received DATA (on stdin) 10:30:57.789137 > 29 bytes data, server => client 10:30:57.789311 '150 Binary junk (17 bytes).\r\n' 10:30:57.795706 Received DATA (on stdin) 10:30:57.795980 > 28 bytes data, server => client 10:30:57.796109 '226 File transfer complete\r\n' 10:30:57.838615 < 6 bytes data, client => server 10:30:57.838878 'QUIT\r\n' 10:30:57.844131 Received DATA (on stdin) 10:30:57.844426 > 18 bytes data, server => client 10:30:57.844544 '221 bye bye baby\r\n' 10:30:57.846563 ====> Client disconnect 10:30:57.847647 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:58.765249 Running IPv4 version 10:30:58.765910 Listening on port 40189 10:30:58.766336 Wrote pid 81648 to log/3/server/ftp_sockdata.pid 10:30:58.766513 Received PING (on stdin) 10:30:58.768196 Received PORT (on stdin) 10:30:58.773694 ====> Client connect 10:30:58.788058 Received DATA (on stdin) 10:30:58.788276 > 17 bytes data, server => client 10:30:58.790099 'WE ROOLZ: 79555\r\n' 10:30:58.790735 Received DISC (on stdin) 10:30:58.791062 ====> Client forcibly disconnected 10:30:58.792848 Received QUIT (on stdin) 10:30:58.793135 quits 10:30:58.793679 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd RETRNOSIZE Testnum 137 === End of file server.cmd === Start of file valgrind137 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind137 test 0138...[FTP download without size in RETR string and no SIZE command] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind138 ../src/curl -q --output log/1/curl138.out --include --trace-ascii log/1/trace138 --trace-time ftp://127.0.0.1:38733/blalbla/lululul/138 > log/1/stdout138 2> log/1/stderr138 138: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 138 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind138 ../src/curl -q --output log/1/curl138.out --include --trace-ascii log/1/trace138 --trace-time ftp://127.0.0.1:38733/blalbla/lululul/138 > log/1/stdout138 2> log/1/stderr138 === End of file commands.log === Start of file ftp_server.log 10:30:58.428236 ====> Client connect 10:30:58.429780 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:58.436671 < "USER anonymous" 10:30:58.437293 > "331 We are happy you popped in![CR][LF]" 10:30:5CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind139 ../src/curl -q --output log/5/curl139.out --include --trace-ascii log/5/trace139 --trace-time ftp://127.0.0.1:43393/blalbla/139 -z "1 jan 1989" > log/5/stdout139 2> log/5/stderr139 8.445944 < "PASS ftp@example.com" 10:30:58.446601 > "230 Welcome you silly person[CR][LF]" 10:30:58.450422 < "PWD" 10:30:58.451070 > "257 "/" is current directory[CR][LF]" 10:30:58.458458 < "EPSV" 10:30:58.458957 ====> Passive DATA channel requested by client 10:30:58.459264 DATA sockfilt for passive data channel starting... 10:30:58.487622 DATA sockfilt for passive data channel started (pid 81860) 10:30:58.489340 DATA sockfilt for passive data channel listens on port 39589 10:30:58.490284 > "229 Entering Passive Mode (|||39589|)[LF]" 10:30:58.490870 Client has been notified that DATA conn will be accepted on port 39589 10:30:58.495559 Client connects to port 39589 10:30:58.496041 ====> Client established passive DATA connection on port 39589 10:30:58.497017 < "TYPE I" 10:30:58.497654 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:58.500985 < "SIZE verifiedserver" 10:30:58.502124 > "213 17[CR][LF]" 10:30:58.505371 < "RETR verifiedserver" 10:30:58.506916 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:58.508087 =====> Closing passive DATA connection... 10:30:58.508523 Server disconnects passive DATA connection 10:30:58.512242 Server disconnected passive DATA connection 10:30:58.512817 DATA sockfilt for passive data channel quits (pid 81860) 10:30:58.515203 DATA sockfilt for passive data channel quit (pid 81860) 10:30:58.515670 =====> Closed passive DATA connection 10:30:58.516102 > "226 File transfer complete[CR][LF]" 10:30:58.559866 < "QUIT" 10:30:58.560538 > "221 bye bye baby[CR][LF]" 10:30:58.566079 MAIN sockfilt said DISC 10:30:58.567442 ====> Client disconnected 10:30:58.568237 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:58.096216 ====> Client connect 10:30:58.103250 Received DATA (on stdin) 10:30:58.103577 > 160 bytes data, server => client 10:30:58.103715 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:58.103811 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:58.103898 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:58.104928 < 16 bytes data, client => server 10:30:58.105187 'USER anonymous\r\n' 10:30:58.109227 Received DATA (on stdin) 10:30:58.109498 > 33 bytes data, server => client 10:30:58.109616 '331 We are happy you popped in!\r\n' 10:30:58.113218 < 22 bytes data, client => server 10:30:58.113446 'PASS ftp@example.com\r\n' 10:30:58.117698 Received DATA (on stdin) 10:30:58.117923 > 30 bytes data, server => client 10:30:58.118035 '230 Welcome you silly person\r\n' 10:30:58.118881 < 5 bytes data, client => server 10:30:58.119098 'PWD\r\n' 10:30:58.124702 Received DATA (on stdin) 10:30:58.124989 > 30 bytes data, server => client 10:30:58.125117 '257 "/" is current directory\r\n' 10:30:58.126220 < 6 bytes data, client => server 10:30:58.126483 'EPSV\r\n' 10:30:58.162651 Received DATA (on stdin) 10:30:58.162933 > 38 bytes data, server => client 10:30:58.163135 '229 Entering Passive Mode (|||39589|)\n' 10:30:58.166116 < 8 bytes data, client => server 10:30:58.166367 'TYPE I\r\n' 10:30:58.169341 Received DATA (on stdin) 10:30:58.169578 > 33 bytes data, server => client 10:30:58.169717 '200 I modify TYPE as you wanted\r\n' 10:30:58.170664 < 21 bytes data, client => server 10:30:58.170940 'SIZE verifiedserver\r\n' 10:30:58.173873 Received DATA (on stdin) 10:30:58.174064 > 8 bytes data, server => client 10:30:58.174162 '213 17\r\n' 10:30:58.175026 < 21 bytes data, client => server 10:30:58.175321 'RETR verifiedserver\r\n' 10:30:58.177319 Received DATA (on stdin) 10:30:58.177606 > 29 bytes data, server => client 10:30:58.180135 '150 Binary junk (17 bytes).\r\n' 10:30:58.187643 Received DATA (on stdin) 10:30:58.187892 > 28 bytes data, server => client 10:30:58.188040 '226 File transfer complete\r\n' 10:30:58.229520 < 6 bytes data, client => server 10:30:58.229726 'QUIT\r\n' 10:30:58.232137 Received DATA (on stdin) 10:30:58.232351 > 18 bytes data, server => client 10:30:58.232450 '221 bye bye baby\r\n' 10:30:58.236700 ====> Client disconnect 10:30:58.237778 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:58.154141 Running IPv4 version 10:30:58.154908 Listening on port 39589 10:30:58.155446 Wrote pid 81860 to log/1/server/ftp_sockdata.pid 10:30:58.158047 Received PING (on stdin) 10:30:58.159504 Received PORT (on stdin) 10:30:58.164971 ====> Client connect 10:30:58.180786 Received DATA (on stdin) 10:30:58.181040 > 17 bytes data, server => client 10:30:58.181142 'WE ROOLZ: 79585\r\n' 10:30:58.181541 Received DISC (on stdin) 10:30:58.181799 ====> Client forcibly disconnected 10:30:58.184362 Received QUIT (on stdin) 10:30:58.184625 quits 10:30:58.185182 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd RETRNOSIZE REPLY SIZE 500 command not understood Testnum 138 === End of file server.cmd === Start of file valgrind138 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind138 test 0139...[FTP download a newer file with -z] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind139 ../src/curl -q --output log/5/curl139.out --include --trace-ascii log/5/trace139 --trace-time ftp://127.0.0.1:43393/blalbla/139 -z "1 jan 1989" > log/5/stdout139 2> log/5/stderr139 139: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 139 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind139 ../src/curl -q --output log/5/curl139.out --include --trace-ascii log/5/trace139 --trace-time ftp://127.0.0.1:43393/blalbla/139 -z "1 jan 1989" > log/5/stdout139 2> log/5/stderr139 === End of file commands.log === Start of file ftp_server.log 10:30:58.642749 ====> Client connect 10:30:58.644309 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:58.649671 < "USER anonymous" 10:30:58.650530 > "331 We are happy you popped in![CR][LF]" 10:30:58.654673 < "PASS ftp@example.com" 10:30:58.655391 > "230 Welcome you silly person[CR][LF]" 10:30:58.659354 < "PWD" 10:30:58.660146 > "257 "/" is current directory[CR][LF]" 10:30:58.663841 < "EPSV" 10:30:58.664316 ====> Passive DATA channel requested by client 10:30:58.664654 DATA sockfilt for passive data channel starting... 10:30:58.678404 DATA sockfilt for pasCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind140 ../src/curl -q --output log/6/curl140.out --include --trace-ascii log/6/trace140 --trace-time ftp://127.0.0.1:33323/blalbla/140 -z "1 jan 2004" > log/6/stdout140 2> log/6/stderr140 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind141 ../src/curl -q --include --trace-ascii log/8/trace141 --trace-time ftp://127.0.0.1:38061/blalbla/141 -I > log/8/stdout141 2> log/8/stderr141 sive data channel started (pid 81954) 10:30:58.679896 DATA sockfilt for passive data channel listens on port 45075 10:30:58.680529 > "229 Entering Passive Mode (|||45075|)[LF]" 10:30:58.680948 Client has been notified that DATA conn will be accepted on port 45075 10:30:58.683548 Client connects to port 45075 10:30:58.684074 ====> Client established passive DATA connection on port 45075 10:30:58.686487 < "TYPE I" 10:30:58.688056 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:58.690851 < "SIZE verifiedserver" 10:30:58.691440 > "213 17[CR][LF]" 10:30:58.703417 < "RETR verifiedserver" 10:30:58.704886 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:58.708793 =====> Closing passive DATA connection... 10:30:58.709305 Server disconnects passive DATA connection 10:30:58.713129 Fancy that; client wants to DISC, too 10:30:58.715130 Server disconnected passive DATA connection 10:30:58.715785 DATA sockfilt for passive data channel quits (pid 81954) 10:30:58.718134 DATA sockfilt for passive data channel quit (pid 81954) 10:30:58.718648 =====> Closed passive DATA connection 10:30:58.719255 > "226 File transfer complete[CR][LF]" 10:30:58.754394 < "QUIT" 10:30:58.754928 > "221 bye bye baby[CR][LF]" 10:30:58.762042 MAIN sockfilt said DISC 10:30:58.762498 ====> Client disconnected 10:30:58.763133 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:58.312726 ====> Client connect 10:30:58.316037 Received DATA (on stdin) 10:30:58.316414 > 160 bytes data, server => client 10:30:58.316751 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:58.316934 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:58.317056 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:58.318754 < 16 bytes data, client => server 10:30:58.319071 'USER anonymous\r\n' 10:30:58.322409 Received DATA (on stdin) 10:30:58.322734 > 33 bytes data, server => client 10:30:58.323009 '331 We are happy you popped in!\r\n' 10:30:58.324070 < 22 bytes data, client => server 10:30:58.324337 'PASS ftp@example.com\r\n' 10:30:58.327148 Received DATA (on stdin) 10:30:58.327442 > 30 bytes data, server => client 10:30:58.327694 '230 Welcome you silly person\r\n' 10:30:58.328899 < 5 bytes data, client => server 10:30:58.329184 'PWD\r\n' 10:30:58.331838 Received DATA (on stdin) 10:30:58.332076 > 30 bytes data, server => client 10:30:58.332188 '257 "/" is current directory\r\n' 10:30:58.333229 < 6 bytes data, client => server 10:30:58.333528 'EPSV\r\n' 10:30:58.352478 Received DATA (on stdin) 10:30:58.352764 > 38 bytes data, server => client 10:30:58.352886 '229 Entering Passive Mode (|||45075|)\n' 10:30:58.356345 < 8 bytes data, client => server 10:30:58.356662 'TYPE I\r\n' 10:30:58.358101 Received DATA (on stdin) 10:30:58.358340 > 33 bytes data, server => client 10:30:58.358559 '200 I modify TYPE as you wanted\r\n' 10:30:58.359902 < 21 bytes data, client => server 10:30:58.360121 'SIZE verifiedserver\r\n' 10:30:58.364773 Received DATA (on stdin) 10:30:58.365014 > 8 bytes data, server => client 10:30:58.365142 '213 17\r\n' 10:30:58.373417 < 21 bytes data, client => server 10:30:58.373635 'RETR verifiedserver\r\n' 10:30:58.375064 Received DATA (on stdin) 10:30:58.375271 > 29 bytes data, server => client 10:30:58.375458 '150 Binary junk (17 bytes).\r\n' 10:30:58.390922 Received DATA (on stdin) 10:30:58.391176 > 28 bytes data, server => client 10:30:58.391285 '226 File transfer complete\r\n' 10:30:58.420818 < 6 bytes data, client => server 10:30:58.421099 'QUIT\r\n' 10:30:58.426436 Received DATA (on stdin) 10:30:58.426655 > 18 bytes data, server => client 10:30:58.426763 '221 bye bye baby\r\n' 10:30:58.432712 ====> Client disconnect 10:30:58.433623 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:58.346807 Running IPv4 version 10:30:58.347398 Listening on port 45075 10:30:58.347943 Wrote pid 81954 to log/5/server/ftp_sockdata.pid 10:30:58.349052 Received PING (on stdin) 10:30:58.350098 Received PORT (on stdin) 10:30:58.354235 ====> Client connect 10:30:58.376496 Received DATA (on stdin) 10:30:58.378702 > 17 bytes data, server => client 10:30:58.380754 'WE ROOLZ: 79602\r\n' 10:30:58.381871 ====> Client disconnect 10:30:58.384948 Received DISC (on stdin) 10:30:58.385215 Crikey! Client also wants to disconnect 10:30:58.385409 Received ACKD (on stdin) 10:30:58.387363 Received QUIT (on stdin) 10:30:58.387552 quits 10:30:58.388094 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 139 === End of file server.cmd === Start of file valgrind139 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind139 test 0140...[FTP download file with -z, expected to not transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind140 ../src/curl -q --output log/6/curl140.out --include --trace-ascii log/6/trace140 --trace-time ftp://127.0.0.1:33323/blalbla/140 -z "1 jan 2004" > log/6/stdout140 2> log/6/stderr140 140: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 140 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind140 ../src/curl -q --output log/6/curl140.out --include --trace-ascii log/6/trace140 --trace-time ftp://127.0.0.1:33323/blalbla/140 -z "1 jan 2004" > log/6/stdout140 2> log/6/stderr140 === End of file commands.log === Start of file ftp_server.log 10:30:58.763405 ====> Client connect 10:30:58.764849 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:58.772724 < "USER anonymous" 10:30:58.773251 > "331 We are happy you popped in![CR][LF]" 10:30:58.782497 < "PASS ftp@example.com" 10:30:58.783060 > "230 Welcome you silly person[CR][LF]" 10:30:58.788153 < "PWD" 10:30:58.788907 > "257 "/" is current directory[CR][LF]" 10:30:58.791540 < "EPSV" 10:30:58.791989 ====> Passive DATA channel requested by client 10:30:58.792207 DATA sockfilt for passive data channel starting... 10:30:58.807034 DATA sockfilt for passive data channel started (pid 81996) 10:30:58.809288 DATA sockfilt for passive data channel listens on port 41097 10:30:58.810362 > "229 Entering Passive Mode (|||41097|)[LF]" 10:30:58.811008 Client has been notified that DATA conn will be accepted on port 41097 10:30:58.815996 Client connects to port 41097 10:30:58.816636 ====> Client established passive DATA connection on port 41097 10:30:58.818186 < "TYPE I" 10:30:58.819016 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:58.821854 < "SIZE verifiedserver" 10:30:58.822600 > "213 17[CR][LF]" 10:30:58.827709 < "RETR verifiedserver" 10:30:58.828499 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:58.829750 =====> Closing passive DATA connection... 10:30:58.830144 Server disconnects passive DATA connection 10:30:58.832366 Server disconnected passive DATA connection 10:30:58.832935 DATA sockfilt for passive data channel quits (pid 81996) 10:30:58.839155 DATA sockfilt for passive data channel quit (pid 81996) 10:30:58.839616 =====> Closed passive DATA connection 10:30:58.840159 > "226 File transfer complete[CR][LF]" 10:30:58.873258 < "QUIT" 10:30:58.873764 > "221 bye bye baby[CR][LF]" 10:30:58.879175 MAIN sockfilt said DISC 10:30:58.879707 ====> Client disconnected 10:30:58.880349 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:59.433896 ====> Client connect 10:30:59.440832 Received DATA (on stdin) 10:30:59.441191 > 160 bytes data, server => client 10:30:59.441374 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:59.441492 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:59.441586 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:59.442740 < 16 bytes data, client => server 10:30:59.442961 'USER anonymous\r\n' 10:30:59.444374 Received DATA (on stdin) 10:30:59.444604 > 33 bytes data, server => client 10:30:59.444743 '331 We are happy you popped in!\r\n' 10:30:59.445571 < 22 bytes data, client => server 10:30:59.445781 'PASS ftp@example.com\r\n' 10:30:59.456691 Received DATA (on stdin) 10:30:59.457006 > 30 bytes data, server => client 10:30:59.457157 '230 Welcome you silly person\r\n' 10:30:59.458144 < 5 bytes data, client => server 10:30:59.458439 'PWD\r\n' 10:30:59.460036 Received DATA (on stdin) 10:30:59.460303 > 30 bytes data, server => client 10:30:59.460452 '257 "/" is current directory\r\n' 10:30:59.461724 < 6 bytes data, client => server 10:30:59.461987 'EPSV\r\n' 10:30:59.483833 Received DATA (on stdin) 10:30:59.483988 > 38 bytes data, server => client 10:30:59.484085 '229 Entering Passive Mode (|||41097|)\n' 10:30:59.487814 < 8 bytes data, client => server 10:30:59.488084 'TYPE I\r\n' 10:30:59.490146 Received DATA (on stdin) 10:30:59.490473 > 33 bytes data, server => client 10:30:59.490701 '200 I modify TYPE as you wanted\r\n' 10:30:59.491716 < 21 bytes data, client => server 10:30:59.492074 'SIZE verifiedserver\r\n' 10:30:59.496475 Received DATA (on stdin) 10:30:59.496861 > 8 bytes data, server => client 10:30:59.496996 '213 17\r\n' 10:30:59.497878 < 21 bytes data, client => server 10:30:59.498174 'RETR verifiedserver\r\n' 10:30:59.499595 Received DATA (on stdin) 10:30:59.499905 > 29 bytes data, server => client 10:30:59.500057 '150 Binary junk (17 bytes).\r\n' 10:30:59.511728 Received DATA (on stdin) 10:30:59.512044 > 28 bytes data, server => client 10:30:59.512219 '226 File transfer complete\r\n' 10:30:59.543686 < 6 bytes data, client => server 10:30:59.543911 'QUIT\r\n' 10:30:59.548112 Received DATA (on stdin) 10:30:59.548489 > 18 bytes data, server => client 10:30:59.548780 '221 bye bye baby\r\n' 10:30:59.549500 ====> Client disconnect 10:30:59.550855 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:58.476175 Running IPv4 version 10:30:58.477035 Listening on port 41097 10:30:58.477496 Wrote pid 81996 to log/6/server/ftp_sockdata.pid 10:30:58.477726 Received PING (on stdin) 10:30:58.478743 Received PORT (on stdin) 10:30:58.486593 ====> Client connect 10:30:58.501584 Received DATA (on stdin) 10:30:58.501796 > 17 bytes data, server => client 10:30:58.501953 'WE ROOLZ: 79480\r\n' 10:30:58.502438 Received DISC (on stdin) 10:30:58.502728 ====> Client forcibly disconnected 10:30:58.504938 Received QUIT (on stdin) 10:30:58.505321 quits 10:30:58.506027 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 140 === End of file server.cmd === Start of file valgrind140 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind140 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind143 ../src/curl -q --output log/7/curl143.out --include --trace-ascii log/7/trace143 --trace-time "ftp://127.0.0.1:38253/%2ftmp/moo/143;type=a" > log/7/stdout143 2> log/7/stderr143 test 0141...[FTP download info with -I] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind141 ../src/curl -q --include --trace-ascii log/8/trace141 --trace-time ftp://127.0.0.1:38061/blalbla/141 -I > log/8/stdout141 2> log/8/stderr141 141: stdout FAILED: --- log/8/check-expected 2025-09-11 10:30:59.667251633 +0000 +++ log/8/check-generated 2025-09-11 10:30:59.667251633 +0000 @@ -1,3 +0,0 @@ -Last-Modified: Wed, 09 Apr 2003 10:26:59 GMT[CR][LF] -Content-Length: 42[CR][LF] -Accept-ranges: bytes[CR][LF] == Contents of files in the log/8/ dir after test 141 === Start of file check-expected Last-Modified: Wed, 09 Apr 2003 10:26:59 GMT[CR][LF] Content-Length: 42[CR][LF] Accept-ranges: bytes[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind141 ../src/curl -q --include --trace-ascii log/8/trace141 --trace-time ftp://127.0.0.1:38061/blalbla/141 -I > log/8/stdout141 2> log/8/stderr141 === End of file commands.log === Start of file ftp_server.log 10:30:58.801676 ====> Client connect 10:30:58.803399 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:58.806542 < "USER anonymous" 10:30:58.807054 > "331 We are happy you popped in![CR][LF]" 10:30:58.813002 < "PASS ftp@example.com" 10:30:58.813591 > "230 Welcome you silly person[CR][LF]" 10:30:58.822497 < "PWD" 10:30:58.823124 > "257 "/" is current directory[CR][LF]" 10:30:58.829438 < "EPSV" 10:30:58.830033 ====> Passive DATA channel requested by client 10:30:58.830387 DATA sockfilt for passive data channel starting... 10:30:58.846621 DATA sockfilt for passive data channel started (pid 82007) 10:30:58.847666 DATA sockfilt for passive data channel listens on port 39335 10:30:58.848235 > "229 Entering Passive Mode (|||39335|)[LF]" 10:30:58.848558 Client has been notified that DATA conn will be accepted on port 39335 10:30:58.851142 Client connects to port 39335 10:30:58.851602 ====> Client established passive DATA connection on port 39335 10:30:58.852517 < "TYPE I" 10:30:58.852926 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:58.857327 < "SIZE verifiedserver" 10:30:58.858030 > "213 17[CR][LF]" 10:30:58.861075 < "RETR verifiedserver" 10:30:58.861904 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:58.862877 =====> Closing passive DATA connection... 10:30:58.863270 Server disconnects passive DATA connection 10:30:58.864362 Server disconnected passive DATA connection 10:30:58.864744 DATA sockfilt for passive data channel quits (pid 82007) 10:30:58.866899 DATA sockfilt for passive data channel quit (pid 82007) 10:30:58.867278 =====> Closed passive DATA connection 10:30:58.867735 > "226 File transfer complete[CR][LF]" 10:30:58.914616 < "QUIT" 10:30:58.915175 > "221 bye bye baby[CR][LF]" 10:30:58.917730 MAIN sockfilt said DISC 10:30:58.918328 ====> Client disconnected 10:30:58.919077 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:59.467795 ====> Client connect 10:30:59.474499 Received DATA (on stdin) 10:30:59.474798 > 160 bytes data, server => client 10:30:59.474921 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:59.475047 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:59.475167 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:59.476657 < 16 bytes data, client => server 10:30:59.476925 'USER anonymous\r\n' 10:30:59.478137 Received DATA (on stdin) 10:30:59.478323 > 33 bytes data, server => client 10:30:59.478435 '331 We are happy you popped in!\r\n' 10:30:59.483261 < 22 bytes data, client => server 10:30:59.483568 'PASS ftp@example.com\r\n' 10:30:59.484627 Received DATA (on stdin) 10:30:59.484886 > 30 bytes data, server => client 10:30:59.484995 '230 Welcome you silly person\r\n' 10:30:59.487113 < 5 bytes data, client => server 10:30:59.487391 'PWD\r\n' 10:30:59.496475 Received DATA (on stdin) 10:30:59.496861 > 30 bytes data, server => client 10:30:59.497001 '257 "/" is current directory\r\n' 10:30:59.499696 < 6 bytes data, client => server 10:30:59.499899 'EPSV\r\n' 10:30:59.519377 Received DATA (on stdin) 10:30:59.519597 > 38 bytes data, server => client 10:30:59.519690 '229 Entering Passive Mode (|||39335|)\n' 10:30:59.521286 < 8 bytes data, client => server 10:30:59.521501 'TYPE I\r\n' 10:30:59.524043 Received DATA (on stdin) 10:30:59.524230 > 33 bytes data, server => client 10:30:59.524343 '200 I modify TYPE as you wanted\r\n' 10:30:59.526438 < 21 bytes data, client => server 10:30:59.526653 'SIZE verifiedserver\r\n' 10:30:59.529737 Received DATA (on stdin) 10:30:59.529956 > 8 bytes data, server => client 10:30:59.530063 '213 17\r\n' 10:30:59.530940 < 21 bytes data, client => server 10:30:59.531153 'RETR verifiedserver\r\n' 10:30:59.533406 Received DATA (on stdin) 10:30:59.533676 > 29 bytes data, server => client 10:30:59.533790 '150 Binary junk (17 bytes).\r\n' 10:30:59.539242 Received DATA (on stdin) 10:30:59.539421 > 28 bytes data, server => client 10:30:59.539523 '226 File transfer complete\r\n' 10:30:59.584752 < 6 bytes data, client => server 10:30:59.585038 'QUIT\r\n' 10:30:59.586288 Received DATA (on stdin) 10:30:59.586539 > 18 bytes data, server => client 10:30:59.586644 '221 bye bye baby\r\n' 10:30:59.587883 ====> Client disconnect 10:30:59.589459 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:58.515439 Running IPv4 version 10:30:58.516042 Listening on port 39335 10:30:58.516404 Wrote pid 82007 to log/8/server/ftp_sockdata.pid 10:30:58.517314 Received PING (on stdin) 10:30:58.518190 Received PORT (on stdin) 10:30:58.521813 ====> Client connect 10:30:58.534225 Received DATA (on stdin) 10:30:58.534395 > 17 bytes data, server => client 10:30:58.534487 'WE ROOLZ: 79508\r\n' 10:30:58.534817 Received DISC (on stdin) 10:30:58.535014 ====> Client forcibly disconnected 10:30:58.536123 Received QUIT (on stdin) 10:30:58.536279 quits 10:30:58.536946 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 141 === End of file server.cmd === Start of file valgrind141 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind141 test 0143...[FTP URL with type=a] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --loCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind144 ../src/curl -q --output log/2/curl144.out --include --trace-ascii log/2/trace144 --trace-time ftp://127.0.0.1:37959/ -P - -l > log/2/stdout144 2> log/2/stderr144 g-file=log/7/valgrind143 ../src/curl -q --output log/7/curl143.out --include --trace-ascii log/7/trace143 --trace-time "ftp://127.0.0.1:38253/%2ftmp/moo/143;type=a" > log/7/stdout143 2> log/7/stderr143 143: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 143 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind143 ../src/curl -q --output log/7/curl143.out --include --trace-ascii log/7/trace143 --trace-time "ftp://127.0.0.1:38253/%2ftmp/moo/143;type=a" > log/7/stdout143 2> log/7/stderr143 === End of file commands.log === Start of file ftp_server.log 10:30:58.996141 ====> Client connect 10:30:58.997661 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:59.000551 < "USER anonymous" 10:30:59.001033 > "331 We are happy you popped in![CR][LF]" 10:30:59.002898 < "PASS ftp@example.com" 10:30:59.003325 > "230 Welcome you silly person[CR][LF]" 10:30:59.005635 < "PWD" 10:30:59.006374 > "257 "/" is current directory[CR][LF]" 10:30:59.009568 < "EPSV" 10:30:59.010116 ====> Passive DATA channel requested by client 10:30:59.010438 DATA sockfilt for passive data channel starting... 10:30:59.022719 DATA sockfilt for passive data channel started (pid 82078) 10:30:59.026435 DATA sockfilt for passive data channel listens on port 35499 10:30:59.027857 > "229 Entering Passive Mode (|||35499|)[LF]" 10:30:59.030511 Client has been notified that DATA conn will be accepted on port 35499 10:30:59.032917 Client connects to port 35499 10:30:59.033450 ====> Client established passive DATA connection on port 35499 10:30:59.037265 < "TYPE I" 10:30:59.039087 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:59.044084 < "SIZE verifiedserver" 10:30:59.044752 > "213 17[CR][LF]" 10:30:59.051059 < "RETR verifiedserver" 10:30:59.051768 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:59.052766 =====> Closing passive DATA connection... 10:30:59.053181 Server disconnects passive DATA connection 10:30:59.057619 Server disconnected passive DATA connection 10:30:59.058057 DATA sockfilt for passive data channel quits (pid 82078) 10:30:59.061676 DATA sockfilt for passive data channel quit (pid 82078) 10:30:59.062086 =====> Closed passive DATA connection 10:30:59.062477 > "226 File transfer complete[CR][LF]" 10:30:59.097570 < "QUIT" 10:30:59.098194 > "221 bye bye baby[CR][LF]" 10:30:59.101773 MAIN sockfilt said DISC 10:30:59.102232 ====> Client disconnected 10:30:59.102919 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:59.666168 ====> Client connect 10:30:59.669196 Received DATA (on stdin) 10:30:59.669493 > 160 bytes data, server => client 10:30:59.669628 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:59.669717 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:59.669796 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:59.670740 < 16 bytes data, client => server 10:30:59.670889 'USER anonymous\r\n' 10:30:59.672131 Received DATA (on stdin) 10:30:59.672380 > 33 bytes data, server => client 10:30:59.672500 '331 We are happy you popped in!\r\n' 10:30:59.673357 < 22 bytes data, client => server 10:30:59.673528 'PASS ftp@example.com\r\n' 10:30:59.674422 Received DATA (on stdin) 10:30:59.674566 > 30 bytes data, server => client 10:30:59.674646 '230 Welcome you silly person\r\n' 10:30:59.675418 < 5 bytes data, client => server 10:30:59.675598 'PWD\r\n' 10:30:59.677988 Received DATA (on stdin) 10:30:59.678252 > 30 bytes data, server => client 10:30:59.678406 '257 "/" is current directory\r\n' 10:30:59.679352 < 6 bytes data, client => server 10:30:59.679603 'EPSV\r\n' 10:30:59.698313 Received DATA (on stdin) 10:30:59.698593 > 38 bytes data, server => client 10:30:59.700875 '229 Entering Passive Mode (|||35499|)\n' 10:30:59.705664 < 8 bytes data, client => server 10:30:59.705906 'TYPE I\r\n' 10:30:59.710305 Received DATA (on stdin) 10:30:59.710562 > 33 bytes data, server => client 10:30:59.710722 '200 I modify TYPE as you wanted\r\n' 10:30:59.713670 < 21 bytes data, client => server 10:30:59.713934 'SIZE verifiedserver\r\n' 10:30:59.716046 Received DATA (on stdin) 10:30:59.716221 > 8 bytes data, server => client 10:30:59.716339 '213 17\r\n' 10:30:59.720708 < 21 bytes data, client => server 10:30:59.721014 'RETR verifiedserver\r\n' 10:30:59.723252 Received DATA (on stdin) 10:30:59.723517 > 29 bytes data, server => client 10:30:59.723642 '150 Binary junk (17 bytes).\r\n' 10:30:59.734300 Received DATA (on stdin) 10:30:59.734522 > 28 bytes data, server => client 10:30:59.734617 '226 File transfer complete\r\n' 10:30:59.767415 < 6 bytes data, client => server 10:30:59.767659 'QUIT\r\n' 10:30:59.769274 Received DATA (on stdin) 10:30:59.769456 > 18 bytes data, server => client 10:30:59.769555 '221 bye bye baby\r\n' 10:30:59.770178 ====> Client disconnect 10:30:59.773377 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:59.691048 Running IPv4 version 10:30:59.691618 Listening on port 35499 10:30:59.691977 Wrote pid 82078 to log/7/server/ftp_sockdata.pid 10:30:59.692175 Received PING (on stdin) 10:30:59.695984 Received PORT (on stdin) 10:30:59.703391 ====> Client connect 10:30:59.724140 Received DATA (on stdin) 10:30:59.724293 > 17 bytes data, server => client 10:30:59.724390 'WE ROOLZ: 79543\r\n' 10:30:59.724974 Received DISC (on stdin) 10:30:59.725229 ====> Client forcibly disconnected 10:30:59.729967 Received QUIT (on stdin) 10:30:59.730188 quits 10:30:59.730668 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 143 === End of file server.cmd === Start of file valgrind143 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind143 test 0144...[FTP NLST dir list without contents, using PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind144 ../src/curl -q --output log/2/curl144.out --include --trace-ascii log/2/trace144 --trace-time ftp://127.0.0.1:37959/ -P - -l > log/2/stdout144 2> log/2/stderr144 144: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 144 === Start of file commands.log ../libtoolCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind145 ../src/curl -q --output log/3/curl145.out --include --trace-ascii log/3/trace145 --trace-time ftp://127.0.0.1:33831/ -P - -l > log/3/stdout145 2> log/3/stderr145 --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind144 ../src/curl -q --output log/2/curl144.out --include --trace-ascii log/2/trace144 --trace-time ftp://127.0.0.1:37959/ -P - -l > log/2/stdout144 2> log/2/stderr144 === End of file commands.log === Start of file ftp_server.log 10:30:59.098812 ====> Client connect 10:30:59.100140 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:59.105715 < "USER anonymous" 10:30:59.106411 > "331 We are happy you popped in![CR][LF]" 10:30:59.109371 < "PASS ftp@example.com" 10:30:59.110071 > "230 Welcome you silly person[CR][LF]" 10:30:59.118261 < "PWD" 10:30:59.118897 > "257 "/" is current directory[CR][LF]" 10:30:59.123033 < "EPSV" 10:30:59.123352 ====> Passive DATA channel requested by client 10:30:59.123538 DATA sockfilt for passive data channel starting... 10:30:59.134501 DATA sockfilt for passive data channel started (pid 82147) 10:30:59.137996 DATA sockfilt for passive data channel listens on port 43023 10:30:59.139247 > "229 Entering Passive Mode (|||43023|)[LF]" 10:30:59.139667 Client has been notified that DATA conn will be accepted on port 43023 10:30:59.143080 Client connects to port 43023 10:30:59.143435 ====> Client established passive DATA connection on port 43023 10:30:59.144357 < "TYPE I" 10:30:59.144791 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:59.148946 < "SIZE verifiedserver" 10:30:59.149457 > "213 17[CR][LF]" 10:30:59.152192 < "RETR verifiedserver" 10:30:59.153062 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:59.153959 =====> Closing passive DATA connection... 10:30:59.154221 Server disconnects passive DATA connection 10:30:59.159167 Server disconnected passive DATA connection 10:30:59.159673 DATA sockfilt for passive data channel quits (pid 82147) 10:30:59.163305 DATA sockfilt for passive data channel quit (pid 82147) 10:30:59.163753 =====> Closed passive DATA connection 10:30:59.164226 > "226 File transfer complete[CR][LF]" 10:30:59.203039 < "QUIT" 10:30:59.203723 > "221 bye bye baby[CR][LF]" 10:30:59.213034 MAIN sockfilt said DISC 10:30:59.213777 ====> Client disconnected 10:30:59.214692 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:58.768936 ====> Client connect 10:30:58.772349 Received DATA (on stdin) 10:30:58.772736 > 160 bytes data, server => client 10:30:58.772909 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:58.773015 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:58.773103 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:58.774961 < 16 bytes data, client => server 10:30:58.775227 'USER anonymous\r\n' 10:30:58.777993 Received DATA (on stdin) 10:30:58.778249 > 33 bytes data, server => client 10:30:58.778369 '331 We are happy you popped in!\r\n' 10:30:58.779123 < 22 bytes data, client => server 10:30:58.779378 'PASS ftp@example.com\r\n' 10:30:58.784698 Received DATA (on stdin) 10:30:58.784989 > 30 bytes data, server => client 10:30:58.785113 '230 Welcome you silly person\r\n' 10:30:58.788063 < 5 bytes data, client => server 10:30:58.788294 'PWD\r\n' 10:30:58.790453 Received DATA (on stdin) 10:30:58.790672 > 30 bytes data, server => client 10:30:58.790767 '257 "/" is current directory\r\n' 10:30:58.793093 < 6 bytes data, client => server 10:30:58.793303 'EPSV\r\n' 10:30:58.809568 Received DATA (on stdin) 10:30:58.809773 > 38 bytes data, server => client 10:30:58.809940 '229 Entering Passive Mode (|||43023|)\n' 10:30:58.811330 < 8 bytes data, client => server 10:30:58.811541 'TYPE I\r\n' 10:30:58.816215 Received DATA (on stdin) 10:30:58.816416 > 33 bytes data, server => client 10:30:58.816514 '200 I modify TYPE as you wanted\r\n' 10:30:58.818969 < 21 bytes data, client => server 10:30:58.819186 'SIZE verifiedserver\r\n' 10:30:58.821388 Received DATA (on stdin) 10:30:58.821592 > 8 bytes data, server => client 10:30:58.821682 '213 17\r\n' 10:30:58.822328 < 21 bytes data, client => server 10:30:58.822520 'RETR verifiedserver\r\n' 10:30:58.823783 Received DATA (on stdin) 10:30:58.823935 > 29 bytes data, server => client 10:30:58.825662 '150 Binary junk (17 bytes).\r\n' 10:30:58.835772 Received DATA (on stdin) 10:30:58.835977 > 28 bytes data, server => client 10:30:58.836090 '226 File transfer complete\r\n' 10:30:58.872785 < 6 bytes data, client => server 10:30:58.873110 'QUIT\r\n' 10:30:58.879558 Received DATA (on stdin) 10:30:58.879895 > 18 bytes data, server => client 10:30:58.880051 '221 bye bye baby\r\n' 10:30:58.883042 ====> Client disconnect 10:30:58.886954 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:59.803416 Running IPv4 version 10:30:59.803992 Listening on port 43023 10:30:59.804284 Wrote pid 82147 to log/2/server/ftp_sockdata.pid 10:30:59.805158 Received PING (on stdin) 10:30:59.806841 Received PORT (on stdin) 10:30:59.812681 ====> Client connect 10:30:59.824687 Received DATA (on stdin) 10:30:59.824905 > 17 bytes data, server => client 10:30:59.825013 'WE ROOLZ: 79558\r\n' 10:30:59.825639 Received DISC (on stdin) 10:30:59.825845 ====> Client forcibly disconnected 10:30:59.832663 Received QUIT (on stdin) 10:30:59.832947 quits 10:30:59.833485 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY NLST 450 No files found Testnum 144 === End of file server.cmd === Start of file valgrind144 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind144 test 0145...[FTP NLST dir list with weird reply code, using PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind145 ../src/curl -q --output log/3/curl145.out --include --trace-ascii log/3/trace145 --trace-time ftp://127.0.0.1:33831/ -P - -l > log/3/stdout145 2> log/3/stderr145 145: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 145 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind145 ../src/curl -q --output log/3/curl145.out --include --trace-ascii log/3/trace145 --trace-time ftp://127.0.0.1:33831/ -P - -l > log/3/stdout145 2> log/3/stderr145 === End of file commands.log === Start of file ftp_server.log 10:30:59CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind142 ../src/curl -q --output log/4/curl142.out --include --trace-ascii log/4/trace142 --trace-time ftp://127.0.0.1:42635/part1/part2/part3/part4/part5/part6/part7/part8/part9/part10/part11/part12/part13/part14/part15/part16/part17/part18/part19/part20/part21/part22/part23/part24/part25/part26/part27/part28/part29/part30/part31/part32/part33/part34/part35/part36/part37/part38/part39/part40/part41/part42/part43/part44/part45/part46/part47/part48/part49/part50/part51/part52/part53/part54/part55/part56/part57/part58/part59/part60/part61/part62/part63/part64/part65/part66/part67/part68/part69/part70/part71/part72/part73/part74/part75/part76/part77/part78/part79/part80/part81/part82/part83/part84/part85/part86/part87/part88/part89/part90/part91/part92/part93/part94/part95/part96/part97/part98/part99/part100/part101/part102/part103/part104/part105/part106/part107/part108/part109/part110/part111/part112/part113/part114/part115/part116/part117/part118/part119/part120/part121/part122/part123/part124/part125/part126/part127/part128/part129/part130/part131/part132/part133/part134/part135/part136/part137/part138/part139/part140/part141/part142/part143/part144/part145/part146/part147/part148/part149/part150/142 > log/4/stdout142 2> log/4/stderr142 .121621 ====> Client connect 10:30:59.122969 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:59.134529 < "USER anonymous" 10:30:59.135031 > "331 We are happy you popped in![CR][LF]" 10:30:59.142320 < "PASS ftp@example.com" 10:30:59.142732 > "230 Welcome you silly person[CR][LF]" 10:30:59.146547 < "PWD" 10:30:59.147043 > "257 "/" is current directory[CR][LF]" 10:30:59.155777 < "EPSV" 10:30:59.156188 ====> Passive DATA channel requested by client 10:30:59.156443 DATA sockfilt for passive data channel starting... 10:30:59.172053 DATA sockfilt for passive data channel started (pid 82157) 10:30:59.173317 DATA sockfilt for passive data channel listens on port 41717 10:30:59.173943 > "229 Entering Passive Mode (|||41717|)[LF]" 10:30:59.174306 Client has been notified that DATA conn will be accepted on port 41717 10:30:59.177781 Client connects to port 41717 10:30:59.178330 ====> Client established passive DATA connection on port 41717 10:30:59.179490 < "TYPE I" 10:30:59.180093 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:59.184339 < "SIZE verifiedserver" 10:30:59.184926 > "213 17[CR][LF]" 10:30:59.188504 < "RETR verifiedserver" 10:30:59.189093 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:59.190075 =====> Closing passive DATA connection... 10:30:59.190467 Server disconnects passive DATA connection 10:30:59.190763 Fancy that; client wants to DISC, too 10:30:59.190972 Server disconnected passive DATA connection 10:30:59.191171 DATA sockfilt for passive data channel quits (pid 82157) 10:30:59.196833 DATA sockfilt for passive data channel quit (pid 82157) 10:30:59.197327 =====> Closed passive DATA connection 10:30:59.198034 > "226 File transfer complete[CR][LF]" 10:30:59.238657 < "QUIT" 10:30:59.239517 > "221 bye bye baby[CR][LF]" 10:30:59.241866 MAIN sockfilt said DISC 10:30:59.242420 ====> Client disconnected 10:30:59.243176 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:58.789943 ====> Client connect 10:30:58.794017 Received DATA (on stdin) 10:30:58.794267 > 160 bytes data, server => client 10:30:58.794377 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:58.794471 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:58.794552 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:58.802535 < 16 bytes data, client => server 10:30:58.802784 'USER anonymous\r\n' 10:30:58.808677 Received DATA (on stdin) 10:30:58.808977 > 33 bytes data, server => client 10:30:58.809115 '331 We are happy you popped in!\r\n' 10:30:58.809836 < 22 bytes data, client => server 10:30:58.809996 'PASS ftp@example.com\r\n' 10:30:58.813874 Received DATA (on stdin) 10:30:58.814060 > 30 bytes data, server => client 10:30:58.814168 '230 Welcome you silly person\r\n' 10:30:58.814944 < 5 bytes data, client => server 10:30:58.815153 'PWD\r\n' 10:30:58.818182 Received DATA (on stdin) 10:30:58.818386 > 30 bytes data, server => client 10:30:58.818519 '257 "/" is current directory\r\n' 10:30:58.824878 < 6 bytes data, client => server 10:30:58.825046 'EPSV\r\n' 10:30:58.845025 Received DATA (on stdin) 10:30:58.845321 > 38 bytes data, server => client 10:30:58.845451 '229 Entering Passive Mode (|||41717|)\n' 10:30:58.848854 < 8 bytes data, client => server 10:30:58.849129 'TYPE I\r\n' 10:30:58.851491 Received DATA (on stdin) 10:30:58.851677 > 33 bytes data, server => client 10:30:58.851784 '200 I modify TYPE as you wanted\r\n' 10:30:58.854692 < 21 bytes data, client => server 10:30:58.854955 'SIZE verifiedserver\r\n' 10:30:58.856662 Received DATA (on stdin) 10:30:58.856891 > 8 bytes data, server => client 10:30:58.856986 '213 17\r\n' 10:30:58.858786 < 21 bytes data, client => server 10:30:58.858992 'RETR verifiedserver\r\n' 10:30:58.860178 Received DATA (on stdin) 10:30:58.860416 > 29 bytes data, server => client 10:30:58.860534 '150 Binary junk (17 bytes).\r\n' 10:30:58.870204 Received DATA (on stdin) 10:30:58.870514 > 28 bytes data, server => client 10:30:58.870682 '226 File transfer complete\r\n' 10:30:58.908771 < 6 bytes data, client => server 10:30:58.909107 'QUIT\r\n' 10:30:58.910609 Received DATA (on stdin) 10:30:58.910939 > 18 bytes data, server => client 10:30:58.911115 '221 bye bye baby\r\n' 10:30:58.911891 ====> Client disconnect 10:30:58.913579 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:59.841583 Running IPv4 version 10:30:59.842238 Listening on port 41717 10:30:59.842668 Wrote pid 82157 to log/3/server/ftp_sockdata.pid 10:30:59.842840 Received PING (on stdin) 10:30:59.843722 Received PORT (on stdin) 10:30:59.846576 ====> Client connect 10:30:59.860710 Received DATA (on stdin) 10:30:59.860905 > 17 bytes data, server => client 10:30:59.861017 'WE ROOLZ: 79555\r\n' 10:30:59.861585 ====> Client disconnect 10:30:59.861822 Received DISC (on stdin) 10:30:59.861934 Crikey! Client also wants to disconnect 10:30:59.862016 Received ACKD (on stdin) 10:30:59.864929 Received QUIT (on stdin) 10:30:59.865160 quits 10:30:59.865579 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY NLST 550 Have a taste on this Testnum 145 === End of file server.cmd === Start of file valgrind145 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind145 test 0142...[FTP URL with 150 dir levels] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind142 ../src/curl -q --output log/4/curl142.out --include --trace-ascii log/4/trace142 --trace-time ftp://127.0.0.1:42635/part1/part2/part3/part4/part5/part6/part7/part8/part9/part10/part11/part12/part13/part14/part15/part16/part17/part18/part19/part20/part21/part22/part23/part24/part25/part26/part27/part28/part29/part30/part31/part32/part33/part34/part35/part36/part37/part38/part39/part40/part41/part42/part43/part44/part45/part46/part47/part48/part49/part50/part51/part52/part53/part54/part55/part56/part57/part58/part59/part60/part61/part62/part63/part64/part65/part66/part67/part68/part69/part70/part71/part72/part73/part74/part75/part76/part77/part78/part79/part80/part81/part82/part83/part84/part85/part86/part87/part88/part89/part90/part91/part92/part93/part94/part95/part96/part97/part98/part99/part100/part101/part102/part103/part104/part105/part106/part107/part108/part109/part110/part111/part112/part113/part114/part115/part116/part117/part118/part119/part120/part121/part122/part123/part124/part125/part126/part127/part128/part129/part130/part131/part132/part133/part134/part135/part136/part137/part138/part139/part140/part141/part142/part143/part144/part145/part146/part147/part148/part149/part150/142 > log/4/stdout142 2> log/4/stderr142 142: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 142 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind142 ../src/curl -q --output log/4/curl142.out --include --trace-ascii log/4/trace142 --trace-time ftp://127.0.0.1:42635/part1/part2/part3/part4/part5/part6/part7/part8/part9/part10/part11/part12/part13/part14/part15/part16/part17/part18/part19/part20/part21/part22/part23/part24/part25/part26/part27/part28/part29/part30/part31/part32/part33/part34/part35/part36/part37/part38/part39/part40/part41/part42/part43/part44/part45/part46/part47/part48/part49/part50/part51/part52/part53/part54/part55/part56/part57/part58/part59/part60/part61/part62/part63/part64/part65/part66/part67/part68/part69/part70/part71/part72/part73/part74/part75/part76/part77/part78/part79/part80/part81/part82/part83/part84/part85/part86/part87/part88/part89/part90/part91/part92/part93/part94/part95/part96/part97/part98/part99/part100/part101/part102/part103/part104/part105/part106/part107/part108/part109/part110/part111/part112/part113/part114/part115/part116/part117/part118/part119/part120/part121/part122/part123/part124/part125/part126/part127/part128/part129/part130/part131/part132/part133/part134/part135/part136/part137/part138/part139/part140/part141/part142/part143/part144/part145/part146/part147/part148/part149/part150/142 > log/4/stdout142 2> log/4/stderr142 === End of file commands.log === Start of file ftp_server.log 10:30:58.924810 ====> Client connect 10:30:58.926378 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:58.939348 < "USER anonymous" 10:30:58.939757 > "331 We are happy you popped in![CR][LF]" 10:30:58.941880 < "PASS ftp@example.com" 10:30:58.942446 > "230 Welcome you silly person[CR][LF]" 10:30:58.947499 < "PWD" 10:30:58.947938 > "257 "/" is current directory[CR][LF]" 10:30:58.951464 < "EPSV" 10:30:58.951894 ====> Passive DATA channel requested by client 10:30:58.952203 DATA sockfilt for passive data channel starting... 10:30:58.971422 DATA sockfilt for passive data channel started (pid 82054) 10:30:58.974469 DATA sockfilt for passive data channel listens on port 39785 10:30:58.975006 > "229 Entering Passive Mode (|||39785|)[LF]" 10:30:58.975286 Client has been notified that DATA conn will be accepted on port 39785 10:30:58.985671 Client connects to port 39785 10:30:58.986191 ====> Client established passive DATA connection on port 39785 10:30:58.987096 < "TYPE I" 10:30:58.987631 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:58.990945 < "SIZE verifiedserver" 10:30:58.991478 > "213 17[CR][LF]" 10:30:58.998112 < "RETR verifiedserver" 10:30:58.998646 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:58.999317 =====> Closing passive DATA connection... 10:30:58.999544 Server disconnects passive DATA connection 10:30:59.001671 Server disconnected passive DATA connection 10:30:59.002115 DATA sockfilt for passive data channel quits (pid 82054) 10:30:59.003857 DATA sockfilt for passive data channel quit (pid 82054) 10:30:59.004234 =====> Closed passive DATA connection 10:30:59.004718 > "226 File transfer complete[CR][LF]" 10:30:59.046195 < "QUIT" 10:30:59.046728 > "221 bye bye baby[CR][LF]" 10:30:59.054710 MAIN sockfilt said DISC 10:30:59.055312 ====> Client disconnected 10:30:59.056006 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:59.595242 ====> Client connect 10:30:59.600723 Received DATA (on stdin) 10:30:59.601070 > 160 bytes data, server => client 10:30:59.601219 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:59.601312 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:59.601392 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:59.603183 < 16 bytes data, client => server 10:30:59.603408 'USER anonymous\r\n' 10:30:59.610902 Received DATA (on stdin) 10:30:59.611071 > 33 bytes data, server => client 10:30:59.611181 '331 We are happy you popped in!\r\n' 10:30:59.611918 < 22 bytes data, client => server 10:30:59.612147 'PASS ftp@example.com\r\n' 10:30:59.616672 Received DATA (on stdin) 10:30:59.616941 > 30 bytes data, server => client 10:30:59.617054 '230 Welcome you silly person\r\n' 10:30:59.617783 < 5 bytes data, client => server 10:30:59.618015 'PWD\r\n' 10:30:59.619070 Received DATA (on stdin) 10:30:59.619277 > 30 bytes data, server => client 10:30:59.619412 '257 "/" is current directory\r\n' 10:30:59.621795 < 6 bytes data, client => server 10:30:59.622053 'EPSV\r\n' 10:30:59.646134 Received DATA (on stdin) 10:30:59.646344 > 38 bytes data, server => client 10:30:59.646441 '229 Entering Passive Mode (|||39785|)\n' 10:30:59.650264 < 8 bytes data, client => server 10:30:59.650593 'TYPE I\r\n' 10:30:59.658769 Received DATA (on stdin) 10:30:59.659016 > 33 bytes data, server => client 10:30:59.659153 '200 I modify TYPE as you wanted\r\n' 10:30:59.661335 < 21 bytes data, client => server 10:30:59.661610 'SIZE verifiedserver\r\n' 10:30:59.662572 Received DATA (on stdin) 10:30:59.662797 > 8 bytes data, server => client 10:30:59.662907 '213 17\r\n' 10:30:59.665551 < 21 bytes data, client => server 10:30:59.665754 'RETR verifiedserver\r\n' 10:30:59.670699 Received DATA (on stdin) 10:30:59.670825 > 29 bytes data, server => client 10:30:59.671582 '150 Binary junk (17 bytes).\r\n' 10:30:59.675828 Received DATA (on stdin) 10:30:59.676046 > 28 bytes data, server => client 10:30:59.676194 '226 File transfer complete\r\n' 10:30:59.713829 < 6 bytes data, client => server 10:30:59.713991 'QUIT\r\n' 10:30:59.717850 Received DATA (on stdin) 10:30:59.718087 > 18 bytes data, server => client 10:30:59.718262 '221 bye bye baby\r\n' 10:30:59.722654 ====> Client disconnect 10:30:59.726456 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:58.641013 Running IPv4 version 10:30:58.641601 Listening on port 39785 10:30:58.642002 Wrote pid 82054 to log/4/server/ftp_sockdata.pid 10:30:58.642175 Received PING (on stdin) 10:30:58.642980 Received PORT (on stdin) 10:30:58.652928 ====> Client connect 10:30:58.670104 Received DATA (on stdin) 10:30:58.670281 > 17 bytes data, server => client 10:30:58.670376 'WE ROOLZ: 79516\r\n' 10:30:58.670916 Received DISC (on stdin) 10:30:58.671061 ====> Client forcibly disconnected 10:30:58.673561 Received QUIT (on stdin) 10:30:58.673715 quits 10:30:58.674143 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 142 === End of file server.cmd === Start of file valgrind142 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On DebiaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind146 ../src/curl -q --output log/1/curl146.out --include --trace-ascii log/1/trace146 --trace-time ftp://127.0.0.1:38733/first/dir/here/146 ftp://127.0.0.1:38733/146 > log/1/stdout146 2> log/1/stderr146 n, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind142 test 0146...[persistent FTP with different paths] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind146 ../src/curl -q --output log/1/curl146.out --include --trace-ascii log/1/trace146 --trace-time ftp://127.0.0.1:38733/first/dir/here/146 ftp://127.0.0.1:38733/146 > log/1/stdout146 2> log/1/stderr146 146: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 146 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind146 ../src/curl -q --output log/1/curl146.out --include --trace-ascii log/1/trace146 --trace-time ftp://127.0.0.1:38733/first/dir/here/146 ftp://127.0.0.1:38733/146 > log/1/stdout146 2> log/1/stderr146 === End of file commands.log === Start of file ftp_server.log 10:30:59.549712 ====> Client connect 10:30:59.556951 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:59.559942 < "USER anonymous" 10:30:59.560547 > "331 We are happy you popped in![CR][LF]" 10:30:59.566587 < "PASS ftp@example.com" 10:30:59.567121 > "230 Welcome you silly person[CR][LF]" 10:30:59.571175 < "PWD" 10:30:59.571878 > "257 "/" is current directory[CR][LF]" 10:30:59.574304 < "EPSV" 10:30:59.574830 ====> Passive DATA channel requested by client 10:30:59.575182 DATA sockfilt for passive data channel starting... 10:30:59.589685 DATA sockfilt for passive data channel started (pid 82359) 10:30:59.591033 DATA sockfilt for passive data channel listens on port 40645 10:30:59.591603 > "229 Entering Passive Mode (|||40645|)[LF]" 10:30:59.591938 Client has been notified that DATA conn will be accepted on port 40645 10:30:59.597658 Client connects to port 40645 10:30:59.598145 ====> Client established passive DATA connection on port 40645 10:30:59.599117 < "TYPE I" 10:30:59.599618 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:59.606746 < "SIZE verifiedserver" 10:30:59.607392 > "213 17[CR][LF]" 10:30:59.611343 < "RETR verifiedserver" 10:30:59.611895 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:59.612816 =====> Closing passive DATA connection... 10:30:59.613141 Server disconnects passive DATA connection 10:30:59.614454 Server disconnected passive DATA connection 10:30:59.614993 DATA sockfilt for passive data channel quits (pid 82359) 10:30:59.617781 DATA sockfilt for passive data channel quit (pid 82359) 10:30:59.618281 =====> Closed passive DATA connection 10:30:59.618821 > "226 File transfer complete[CR][LF]" 10:30:59.661189 < "QUIT" 10:30:59.662479 > "221 bye bye baby[CR][LF]" 10:30:59.668709 MAIN sockfilt said DISC 10:30:59.669952 ====> Client disconnected 10:30:59.670679 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:59.218278 ====> Client connect 10:30:59.228036 Received DATA (on stdin) 10:30:59.228364 > 160 bytes data, server => client 10:30:59.228527 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:59.228750 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:59.228849 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:59.229753 < 16 bytes data, client => server 10:30:59.229989 'USER anonymous\r\n' 10:30:59.232649 Received DATA (on stdin) 10:30:59.232984 > 33 bytes data, server => client 10:30:59.233121 '331 We are happy you popped in!\r\n' 10:30:59.236727 < 22 bytes data, client => server 10:30:59.236992 'PASS ftp@example.com\r\n' 10:30:59.238245 Received DATA (on stdin) 10:30:59.238461 > 30 bytes data, server => client 10:30:59.238563 '230 Welcome you silly person\r\n' 10:30:59.240670 < 5 bytes data, client => server 10:30:59.240982 'PWD\r\n' 10:30:59.243019 Received DATA (on stdin) 10:30:59.243252 > 30 bytes data, server => client 10:30:59.243384 '257 "/" is current directory\r\n' 10:30:59.244420 < 6 bytes data, client => server 10:30:59.244784 'EPSV\r\n' 10:30:59.263707 Received DATA (on stdin) 10:30:59.263921 > 38 bytes data, server => client 10:30:59.264026 '229 Entering Passive Mode (|||40645|)\n' 10:30:59.266424 < 8 bytes data, client => server 10:30:59.266621 'TYPE I\r\n' 10:30:59.270717 Received DATA (on stdin) 10:30:59.270922 > 33 bytes data, server => client 10:30:59.271020 '200 I modify TYPE as you wanted\r\n' 10:30:59.272785 < 21 bytes data, client => server 10:30:59.273075 'SIZE verifiedserver\r\n' 10:30:59.280394 Received DATA (on stdin) 10:30:59.280771 > 8 bytes data, server => client 10:30:59.280920 '213 17\r\n' 10:30:59.281676 < 21 bytes data, client => server 10:30:59.281859 'RETR verifiedserver\r\n' 10:30:59.282981 Received DATA (on stdin) 10:30:59.283181 > 29 bytes data, server => client 10:30:59.283286 '150 Binary junk (17 bytes).\r\n' 10:30:59.290404 Received DATA (on stdin) 10:30:59.290595 > 28 bytes data, server => client 10:30:59.290692 '226 File transfer complete\r\n' 10:30:59.331054 < 6 bytes data, client => server 10:30:59.331295 'QUIT\r\n' 10:30:59.332968 Received DATA (on stdin) 10:30:59.333228 > 18 bytes data, server => client 10:30:59.334133 '221 bye bye baby\r\n' 10:30:59.339350 ====> Client disconnect 10:30:59.340268 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:59.256899 Running IPv4 version 10:30:59.257429 Listening on port 40645 10:30:59.257876 Wrote pid 82359 to log/1/server/ftp_sockdata.pid 10:30:59.258072 Received PING (on stdin) 10:30:59.261341 Received PORT (on stdin) 10:30:59.265909 ====> Client connect 10:30:59.283736 Received DATA (on stdin) 10:30:59.283944 > 17 bytes data, server => client 10:30:59.284036 'WE ROOLZ: 79585\r\n' 10:30:59.284626 Received DISC (on stdin) 10:30:59.284890 ====> Client forcibly disconnected 10:30:59.286389 Received QUIT (on stdin) 10:30:59.286546 quits 10:30:59.286974 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 146 === End of file server.cmd === Start of file valgrind146 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind147 ../src/curl -q --output log/5/curl147.out --include --trace-ascii log/5/trace147 --trace-time ftp://127.0.0.1:43393/first/dir/here/147 --ftp-create-dirs > log/5/stdout147 2> log/5/stderr147 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind148 ../src/curl -q --output log/6/curl148.out --include --trace-ascii log/6/trace148 --trace-time ftp://127.0.0.1:33323/attempt/to/get/this/148 --ftp-create-dirs > log/6/stdout148 2> log/6/stderr148 146 test 0147...[FTP with --ftp-create-dirs (failing CWD)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind147 ../src/curl -q --output log/5/curl147.out --include --trace-ascii log/5/trace147 --trace-time ftp://127.0.0.1:43393/first/dir/here/147 --ftp-create-dirs > log/5/stdout147 2> log/5/stderr147 147: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 147 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind147 ../src/curl -q --output log/5/curl147.out --include --trace-ascii log/5/trace147 --trace-time ftp://127.0.0.1:43393/first/dir/here/147 --ftp-create-dirs > log/5/stdout147 2> log/5/stderr147 === End of file commands.log === Start of file ftp_server.log 10:30:59.739028 ====> Client connect 10:30:59.740951 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:59.748536 < "USER anonymous" 10:30:59.749013 > "331 We are happy you popped in![CR][LF]" 10:30:59.752239 < "PASS ftp@example.com" 10:30:59.752849 > "230 Welcome you silly person[CR][LF]" 10:30:59.759153 < "PWD" 10:30:59.759709 > "257 "/" is current directory[CR][LF]" 10:30:59.764765 < "EPSV" 10:30:59.765214 ====> Passive DATA channel requested by client 10:30:59.765796 DATA sockfilt for passive data channel starting... 10:30:59.789546 DATA sockfilt for passive data channel started (pid 82460) 10:30:59.791116 DATA sockfilt for passive data channel listens on port 46075 10:30:59.791787 > "229 Entering Passive Mode (|||46075|)[LF]" 10:30:59.792352 Client has been notified that DATA conn will be accepted on port 46075 10:30:59.800369 Client connects to port 46075 10:30:59.800883 ====> Client established passive DATA connection on port 46075 10:30:59.802153 < "TYPE I" 10:30:59.802726 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:59.807759 < "SIZE verifiedserver" 10:30:59.808329 > "213 17[CR][LF]" 10:30:59.810845 < "RETR verifiedserver" 10:30:59.811508 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:59.812372 =====> Closing passive DATA connection... 10:30:59.812671 Server disconnects passive DATA connection 10:30:59.821681 Server disconnected passive DATA connection 10:30:59.822195 DATA sockfilt for passive data channel quits (pid 82460) 10:30:59.824425 DATA sockfilt for passive data channel quit (pid 82460) 10:30:59.824904 =====> Closed passive DATA connection 10:30:59.825405 > "226 File transfer complete[CR][LF]" 10:30:59.867027 < "QUIT" 10:30:59.867602 > "221 bye bye baby[CR][LF]" 10:30:59.876799 MAIN sockfilt said DISC 10:30:59.877268 ====> Client disconnected 10:30:59.878253 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:30:59.409328 ====> Client connect 10:30:59.412006 Received DATA (on stdin) 10:30:59.412379 > 160 bytes data, server => client 10:30:59.412845 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:30:59.413064 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:30:59.413191 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:30:59.417230 < 16 bytes data, client => server 10:30:59.417474 'USER anonymous\r\n' 10:30:59.420119 Received DATA (on stdin) 10:30:59.420309 > 33 bytes data, server => client 10:30:59.420451 '331 We are happy you popped in!\r\n' 10:30:59.421425 < 22 bytes data, client => server 10:30:59.421688 'PASS ftp@example.com\r\n' 10:30:59.423961 Received DATA (on stdin) 10:30:59.424162 > 30 bytes data, server => client 10:30:59.424268 '230 Welcome you silly person\r\n' 10:30:59.428866 < 5 bytes data, client => server 10:30:59.429200 'PWD\r\n' 10:30:59.430808 Received DATA (on stdin) 10:30:59.430997 > 30 bytes data, server => client 10:30:59.431097 '257 "/" is current directory\r\n' 10:30:59.432181 < 6 bytes data, client => server 10:30:59.432459 'EPSV\r\n' 10:30:59.463178 Received DATA (on stdin) 10:30:59.463411 > 38 bytes data, server => client 10:30:59.463561 '229 Entering Passive Mode (|||46075|)\n' 10:30:59.469188 < 8 bytes data, client => server 10:30:59.469365 'TYPE I\r\n' 10:30:59.473829 Received DATA (on stdin) 10:30:59.474046 > 33 bytes data, server => client 10:30:59.474157 '200 I modify TYPE as you wanted\r\n' 10:30:59.477800 < 21 bytes data, client => server 10:30:59.478045 'SIZE verifiedserver\r\n' 10:30:59.479443 Received DATA (on stdin) 10:30:59.479684 > 8 bytes data, server => client 10:30:59.479825 '213 17\r\n' 10:30:59.480729 < 21 bytes data, client => server 10:30:59.480966 'RETR verifiedserver\r\n' 10:30:59.483923 Received DATA (on stdin) 10:30:59.484165 > 29 bytes data, server => client 10:30:59.484272 '150 Binary junk (17 bytes).\r\n' 10:30:59.496508 Received DATA (on stdin) 10:30:59.496875 > 28 bytes data, server => client 10:30:59.496974 '226 File transfer complete\r\n' 10:30:59.537279 < 6 bytes data, client => server 10:30:59.537507 'QUIT\r\n' 10:30:59.538702 Received DATA (on stdin) 10:30:59.538892 > 18 bytes data, server => client 10:30:59.539053 '221 bye bye baby\r\n' 10:30:59.542061 ====> Client disconnect 10:30:59.548413 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:59.454327 Running IPv4 version 10:30:59.454931 Listening on port 46075 10:30:59.455359 Wrote pid 82460 to log/5/server/ftp_sockdata.pid 10:30:59.456612 Received PING (on stdin) 10:30:59.461271 Received PORT (on stdin) 10:30:59.468765 ====> Client connect 10:30:59.483093 Received DATA (on stdin) 10:30:59.483304 > 17 bytes data, server => client 10:30:59.483421 'WE ROOLZ: 79602\r\n' 10:30:59.487478 Received DISC (on stdin) 10:30:59.487775 ====> Client forcibly disconnected 10:30:59.493804 Received QUIT (on stdin) 10:30:59.494099 quits 10:30:59.494604 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 550 I won't allow this on my server COUNT CWD 1 Testnum 147 === End of file server.cmd === Start of file valgrind147 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind147 test 0148...[FTP with --ftp-create-dirs (failing MKD)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind148 ../src/curl -q --output log/6/curl148.out --include --trace-ascii log/6/trace148 --trace-tCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind149 ../src/curl -q --output log/8/curl149.out --include --trace-ascii log/8/trace149 --trace-time -T log/8/upload149 ftp://127.0.0.1:38061/dir1/149 -T log/8/upload149 ftp://127.0.0.1:38061/dir2/149 > log/8/stdout149 2> log/8/stderr149 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind151 ../src/curl -q --output log/2/curl151.out --include --trace-ascii log/2/trace151 --trace-time http://127.0.0.1:43789/151 > log/2/stdout151 2> log/2/stderr151 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind150 ../src/curl -q --output log/7/curl150.out --include --trace-ascii log/7/trace150 --trace-time http://127.0.0.1:40129/150 -u testuser:testpass --ntlm --fail > log/7/stdout150 2> log/7/stderr150 ime ftp://127.0.0.1:33323/attempt/to/get/this/148 --ftp-create-dirs > log/6/stdout148 2> log/6/stderr148 148: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 148 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind148 ../src/curl -q --output log/6/curl148.out --include --trace-ascii log/6/trace148 --trace-time ftp://127.0.0.1:33323/attempt/to/get/this/148 --ftp-create-dirs > log/6/stdout148 2> log/6/stderr148 === End of file commands.log === Start of file ftp_server.log 10:30:59.807062 ====> Client connect 10:30:59.808343 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:59.812639 < "USER anonymous" 10:30:59.813069 > "331 We are happy you popped in![CR][LF]" 10:30:59.823493 < "PASS ftp@example.com" 10:30:59.824100 > "230 Welcome you silly person[CR][LF]" 10:30:59.827579 < "PWD" 10:30:59.828281 > "257 "/" is current directory[CR][LF]" 10:30:59.833621 < "EPSV" 10:30:59.834152 ====> Passive DATA channel requested by client 10:30:59.834463 DATA sockfilt for passive data channel starting... 10:30:59.846941 DATA sockfilt for passive data channel started (pid 82489) 10:30:59.848538 DATA sockfilt for passive data channel listens on port 37427 10:30:59.849318 > "229 Entering Passive Mode (|||37427|)[LF]" 10:30:59.850852 Client has been notified that DATA conn will be accepted on port 37427 10:30:59.852703 Client connects to port 37427 10:30:59.853193 ====> Client established passive DATA connection on port 37427 10:30:59.855367 < "TYPE I" 10:30:59.856800 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:59.859788 < "SIZE verifiedserver" 10:30:59.860451 > "213 17[CR][LF]" 10:30:59.867498 < "RETR verifiedserver" 10:30:59.868092 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:59.869154 =====> Closing passive DATA connection... 10:30:59.871704 Server disconnects passive DATA connection 10:30:59.873299 Fancy that; client wants to DISC, too 10:30:59.874072 Server disconnected passive DATA connection 10:30:59.874570 DATA sockfilt for passive data channel quits (pid 82489) 10:30:59.877660 DATA sockfilt for passive data channel quit (pid 82489) 10:30:59.878114 =====> Closed passive DATA connection 10:30:59.878728 > "226 File transfer complete[CR][LF]" 10:30:59.915478 < "QUIT" 10:30:59.916498 > "221 bye bye baby[CR][LF]" 10:30:59.922179 MAIN sockfilt said DISC 10:30:59.923588 ====> Client disconnected 10:30:59.924318 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:00.477378 ====> Client connect 10:31:00.479443 Received DATA (on stdin) 10:31:00.479708 > 160 bytes data, server => client 10:31:00.479833 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:00.479926 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:00.480014 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:00.482509 < 16 bytes data, client => server 10:31:00.482740 'USER anonymous\r\n' 10:31:00.484170 Received DATA (on stdin) 10:31:00.484315 > 33 bytes data, server => client 10:31:00.484402 '331 We are happy you popped in!\r\n' 10:31:00.490818 < 22 bytes data, client => server 10:31:00.491109 'PASS ftp@example.com\r\n' 10:31:00.496806 Received DATA (on stdin) 10:31:00.496959 > 30 bytes data, server => client 10:31:00.497059 '230 Welcome you silly person\r\n' 10:31:00.497761 < 5 bytes data, client => server 10:31:00.498017 'PWD\r\n' 10:31:00.499357 Received DATA (on stdin) 10:31:00.499555 > 30 bytes data, server => client 10:31:00.499660 '257 "/" is current directory\r\n' 10:31:00.503218 < 6 bytes data, client => server 10:31:00.503476 'EPSV\r\n' 10:31:00.520874 Received DATA (on stdin) 10:31:00.521158 > 38 bytes data, server => client 10:31:00.521297 '229 Entering Passive Mode (|||37427|)\n' 10:31:00.525031 < 8 bytes data, client => server 10:31:00.525315 'TYPE I\r\n' 10:31:00.527091 Received DATA (on stdin) 10:31:00.527366 > 33 bytes data, server => client 10:31:00.528449 '200 I modify TYPE as you wanted\r\n' 10:31:00.529572 < 21 bytes data, client => server 10:31:00.529796 'SIZE verifiedserver\r\n' 10:31:00.532181 Received DATA (on stdin) 10:31:00.532461 > 8 bytes data, server => client 10:31:00.532755 '213 17\r\n' 10:31:00.537202 < 21 bytes data, client => server 10:31:00.537509 'RETR verifiedserver\r\n' 10:31:00.540770 Received DATA (on stdin) 10:31:00.541023 > 29 bytes data, server => client 10:31:00.541179 '150 Binary junk (17 bytes).\r\n' 10:31:00.550389 Received DATA (on stdin) 10:31:00.550625 > 28 bytes data, server => client 10:31:00.550734 '226 File transfer complete\r\n' 10:31:00.585652 < 6 bytes data, client => server 10:31:00.585789 'QUIT\r\n' 10:31:00.587036 Received DATA (on stdin) 10:31:00.587268 > 18 bytes data, server => client 10:31:00.587978 '221 bye bye baby\r\n' 10:31:00.592828 ====> Client disconnect 10:31:00.593841 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:59.515425 Running IPv4 version 10:30:59.516012 Listening on port 37427 10:30:59.516395 Wrote pid 82489 to log/6/server/ftp_sockdata.pid 10:30:59.517490 Received PING (on stdin) 10:30:59.518668 Received PORT (on stdin) 10:30:59.523221 ====> Client connect 10:30:59.541714 Received DATA (on stdin) 10:30:59.542015 > 17 bytes data, server => client 10:30:59.542160 'WE ROOLZ: 79480\r\n' 10:30:59.543053 ====> Client disconnect 10:30:59.543847 Received DISC (on stdin) 10:30:59.544099 Crikey! Client also wants to disconnect 10:30:59.546207 Received ACKD (on stdin) 10:30:59.546834 Received QUIT (on stdin) 10:30:59.547064 quits 10:30:59.547650 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 550 I won't allow this on my server REPLY MKD 550 We will have no such thing Testnum 148 === End of file server.cmd === Start of file valgrind148 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind148 test 0149...[FTP with multiple uploads] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind149 ../src/curl -q --output log/8/curl149.out --include --trace-ascii log/8/trace149 --trace-time -T log/8/upload149 ftp://127.0.0.1:38061/dir1/149 -T log/8/upload149 ftp://127.0.0.1:38061/dir2/149 > log/8/stdout149 2> log/8/stderr149 149: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 149 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind149 ../src/curl -q --output log/8/curl149.out --include --trace-ascii log/8/trace149 --trace-time -T log/8/upload149 ftp://127.0.0.1:38061/dir1/149 -T log/8/upload149 ftp://127.0.0.1:38061/dir2/149 > log/8/stdout149 2> log/8/stderr149 === End of file commands.log === Start of file ftp_server.log 10:30:59.885624 ====> Client connect 10:30:59.886924 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:30:59.889166 < "USER anonymous" 10:30:59.889723 > "331 We are happy you popped in![CR][LF]" 10:30:59.895159 < "PASS ftp@example.com" 10:30:59.895692 > "230 Welcome you silly person[CR][LF]" 10:30:59.898227 < "PWD" 10:30:59.898930 > "257 "/" is current directory[CR][LF]" 10:30:59.901420 < "EPSV" 10:30:59.901953 ====> Passive DATA channel requested by client 10:30:59.902166 DATA sockfilt for passive data channel starting... 10:30:59.914762 DATA sockfilt for passive data channel started (pid 82506) 10:30:59.915965 DATA sockfilt for passive data channel listens on port 40627 10:30:59.916492 > "229 Entering Passive Mode (|||40627|)[LF]" 10:30:59.916814 Client has been notified that DATA conn will be accepted on port 40627 10:30:59.920617 Client connects to port 40627 10:30:59.921322 ====> Client established passive DATA connection on port 40627 10:30:59.922810 < "TYPE I" 10:30:59.923373 > "200 I modify TYPE as you wanted[CR][LF]" 10:30:59.926228 < "SIZE verifiedserver" 10:30:59.927027 > "213 17[CR][LF]" 10:30:59.930737 < "RETR verifiedserver" 10:30:59.931479 > "150 Binary junk (17 bytes).[CR][LF]" 10:30:59.933049 =====> Closing passive DATA connection... 10:30:59.933443 Server disconnects passive DATA connection 10:30:59.935997 Fancy that; client wants to DISC, too 10:30:59.936375 Server disconnected passive DATA connection 10:30:59.936597 DATA sockfilt for passive data channel quits (pid 82506) 10:30:59.938713 DATA sockfilt for passive data channel quit (pid 82506) 10:30:59.939077 =====> Closed passive DATA connection 10:30:59.939426 > "226 File transfer complete[CR][LF]" 10:30:59.982372 < "QUIT" 10:30:59.982893 > "221 bye bye baby[CR][LF]" 10:30:59.987005 MAIN sockfilt said DISC 10:30:59.987417 ====> Client disconnected 10:30:59.988029 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:00.552727 ====> Client connect 10:31:00.558007 Received DATA (on stdin) 10:31:00.558250 > 160 bytes data, server => client 10:31:00.558385 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:00.558509 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:00.558592 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:00.559336 < 16 bytes data, client => server 10:31:00.559529 'USER anonymous\r\n' 10:31:00.560804 Received DATA (on stdin) 10:31:00.561000 > 33 bytes data, server => client 10:31:00.561108 '331 We are happy you popped in!\r\n' 10:31:00.564778 < 22 bytes data, client => server 10:31:00.565055 'PASS ftp@example.com\r\n' 10:31:00.567207 Received DATA (on stdin) 10:31:00.567397 > 30 bytes data, server => client 10:31:00.567493 '230 Welcome you silly person\r\n' 10:31:00.568296 < 5 bytes data, client => server 10:31:00.568502 'PWD\r\n' 10:31:00.569967 Received DATA (on stdin) 10:31:00.570267 > 30 bytes data, server => client 10:31:00.570389 '257 "/" is current directory\r\n' 10:31:00.571450 < 6 bytes data, client => server 10:31:00.571685 'EPSV\r\n' 10:31:00.588357 Received DATA (on stdin) 10:31:00.588628 > 38 bytes data, server => client 10:31:00.588755 '229 Entering Passive Mode (|||40627|)\n' 10:31:00.591007 < 8 bytes data, client => server 10:31:00.591323 'TYPE I\r\n' 10:31:00.595013 Received DATA (on stdin) 10:31:00.595278 > 33 bytes data, server => client 10:31:00.595413 '200 I modify TYPE as you wanted\r\n' 10:31:00.596284 < 21 bytes data, client => server 10:31:00.596671 'SIZE verifiedserver\r\n' 10:31:00.599362 Received DATA (on stdin) 10:31:00.599684 > 8 bytes data, server => client 10:31:00.599842 '213 17\r\n' 10:31:00.600782 < 21 bytes data, client => server 10:31:00.601066 'RETR verifiedserver\r\n' 10:31:00.603816 Received DATA (on stdin) 10:31:00.604165 > 29 bytes data, server => client 10:31:00.604341 '150 Binary junk (17 bytes).\r\n' 10:31:00.610536 Received DATA (on stdin) 10:31:00.610743 > 28 bytes data, server => client 10:31:00.610874 '226 File transfer complete\r\n' 10:31:00.652235 < 6 bytes data, client => server 10:31:00.652498 'QUIT\r\n' 10:31:00.656808 Received DATA (on stdin) 10:31:00.657066 > 18 bytes data, server => client 10:31:00.657156 '221 bye bye baby\r\n' 10:31:00.657727 ====> Client disconnect 10:31:00.658524 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:30:59.583277 Running IPv4 version 10:30:59.584785 Listening on port 40627 10:30:59.585311 Wrote pid 82506 to log/8/server/ftp_sockdata.pid 10:30:59.585522 Received PING (on stdin) 10:30:59.586381 Received PORT (on stdin) 10:30:59.589911 ====> Client connect 10:30:59.603091 Received DATA (on stdin) 10:30:59.603312 > 17 bytes data, server => client 10:30:59.604669 'WE ROOLZ: 79508\r\n' 10:30:59.606694 ====> Client disconnect 10:30:59.607005 Received DISC (on stdin) 10:30:59.607149 Crikey! Client also wants to disconnect 10:30:59.607429 Received ACKD (on stdin) 10:30:59.608025 Received QUIT (on stdin) 10:30:59.608243 quits 10:30:59.608854 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 149 === End of file server.cmd === Start of file upload149 send away this contents === End of file upload149 === Start of file valgrind149 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind149 test 0151...[HTTP GET with an error code that might trick authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind151 ../src/curl -q --output log/2/curl151.out --include --trace-ascii log/2/trace151 --trace-time http://127.0.0.1:43789/151 > log/2/stdout151 2> log/2/stderr151 151: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir afteCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind152 ../src/curl -q --output log/3/curl152.out --include --trace-ascii log/3/trace152 --trace-time http://127.0.0.1:36933/152 --fail > log/3/stdout152 2> log/3/stderr152 r test 151 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind151 ../src/curl -q --output log/2/curl151.out --include --trace-ascii log/2/trace151 --trace-time http://127.0.0.1:43789/151 > log/2/stdout151 2> log/2/stderr151 === End of file commands.log === Start of file http_server.log 10:30:59.809670 ====> Client connect 10:30:59.809979 accept_connection 3 returned 4 10:30:59.810152 accept_connection 3 returned 0 10:30:59.810279 Read 93 bytes 10:30:59.810368 Process 93 bytes request 10:30:59.810452 Got request: GET /verifiedserver HTTP/1.1 10:30:59.810522 Are-we-friendly question received 10:30:59.810748 Wrote request (93 bytes) input to log/2/server.input 10:30:59.810914 Identifying ourselves as friends 10:30:59.811522 Response sent (56 bytes) and written to log/2/server.response 10:30:59.811647 special request received, no persistency 10:30:59.811720 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36432 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 151 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind151 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind151 test 0150...[HTTP with NTLM authorization and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind150 ../src/curl -q --output log/7/curl150.out --include --trace-ascii log/7/trace150 --trace-time http://127.0.0.1:40129/150 -u testuser:testpass --ntlm --fail > log/7/stdout150 2> log/7/stderr150 150: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 150 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind150 ../src/curl -q --output log/7/curl150.out --include --trace-ascii log/7/trace150 --trace-time http://127.0.0.1:40129/150 -u testuser:testpass --ntlm --fail > log/7/stdout150 2> log/7/stderr150 === End of file commands.log === Start of file http_server.log 10:30:59.678780 ====> Client connect 10:30:59.679211 accept_connection 3 returned 4 10:30:59.679480 accept_connection 3 returned 0 10:30:59.679623 Read 93 bytes 10:30:59.679735 Process 93 bytes request 10:30:59.679847 Got request: GET /verifiedserver HTTP/1.1 10:30:59.679937 Are-we-friendly question received 10:30:59.680204 Wrote request (93 bytes) input to log/7/server.input 10:30:59.680415 Identifying ourselves as friends 10:30:59.681381 Response sent (56 bytes) and written to log/7/server.response 10:30:59.681567 special request received, no persistency 10:30:59.681651 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 43258 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 150 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind150 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind150 test 0152...[HTTP GET with an error code that might trick authentication and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind152 ../src/curl -q --output log/3/curl152.out --include --trace-ascii log/3/trace152 --trace-time http://127.0.0.1:36933/152 --fail > log/3/stdout152 2> log/3/stderr152 152: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 152 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind152 ../src/curl -q --output log/3/curl152.out --include --trace-ascii log/3/trace152 --trace-time http://127.0.0.1:36933/152 --fail > log/3/stdout152 2> log/3/stdeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind153 ../src/curl -q --include --trace-ascii log/4/trace153 --trace-time http://127.0.0.1:36757/1530001 -u testuser:testpass --digest http://127.0.0.1:36757/1530002 > log/4/stdout153 2> log/4/stderr153 rr152 === End of file commands.log === Start of file http_server.log 10:30:59.915790 ====> Client connect 10:30:59.916177 accept_connection 3 returned 4 10:30:59.916396 accept_connection 3 returned 0 10:30:59.916637 Read 93 bytes 10:30:59.916807 Process 93 bytes request 10:30:59.916921 Got request: GET /verifiedserver HTTP/1.1 10:30:59.917020 Are-we-friendly question received 10:30:59.917283 Wrote request (93 bytes) input to log/3/server.input 10:30:59.917543 Identifying ourselves as friends 10:30:59.918428 Response sent (56 bytes) and written to log/3/server.response 10:30:59.918594 special request received, no persistency 10:30:59.918665 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 35434 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 152 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind152 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind152 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind156 ../src/curl -q --output log/6/curl156.out --include --trace-ascii log/6/trace156 --trace-time http://127.0.0.1:33363/156 -T log/6/put156 -u testuser:testpass --anyauth > log/6/stdout156 2> log/6/stderr156 test 0153...[HTTP with Digest authorization with stale=true] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind153 ../src/curl -q --include --trace-ascii log/4/trace153 --trace-time http://127.0.0.1:36757/1530001 -u testuser:testpass --digest http://127.0.0.1:36757/1530002 > log/4/stdout153 2> log/4/stderr153 153: stdout FAILED: --- log/4/check-expected 2025-09-11 10:31:01.343284996 +0000 +++ log/4/check-generated 2025-09-11 10:31:01.343284996 +0000 @@ -1,30 +0,0 @@ -HTTP/1.1 401 Authorization Required swsclose[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 23[CR][LF] -[CR][LF] -This IS the real page![LF] -HTTP/1.1 401 Authorization Required swsclose[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 401 Authorization re-negotiation please swsbounce[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="auth"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 30[CR][LF] -[CR][LF] -This IS the second real page![LF] == Contents of files in the log/4/ dir after test 153 === Start of file check-expected HTTP/1.1 401 Authorization Required swsclose[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 23[CR][LF] [CR][LF] This IS the real page![LF] HTTP/1.1 401 Authorization Required swsclose[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 401 Authorization re-negotiation please swsbounce[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="auth"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 30[CR][LF] [CR][LF] This IS the second real page![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind153 ../src/curl -q --include --trace-ascii log/4/trace153 --trace-time http://127.0.0.1:36757/1530001 -u testuser:testpass --digest http://127.0.0.1:36757/1530002 > log/4/stdout153 2> log/4/stderr153 === End of file commands.log === Start of file http_server.log 10:31:00.981361 ====> Client connect 10:31:00.981706 accept_connection 3 returned 4 10:31:00.981916 accept_connection 3 returned 0 10:31:00.982106 Read 93 bytes 10:31:00.982215 Process 93 bytes request 10:31:00.982303 Got request: GET /verifiedserver HTTP/1.1 10:31:00.982391 Are-we-friendly question received 10:31:00.982671 Wrote request (93 bytes) input to log/4/server.input 10:31:00.982944 Identifying ourselves as friends 10:31:00.983884 Response sent (56 bytes) and written to log/4/server.response 10:31:00.984039 special request received, no persistency 10:31:00.984123 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 54804 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 153 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind153 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind153 test 0156...[HTTP PUT with --anyauth (when the server requires none)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind156 ../src/curl -q --output log/6/curl156.out --include --trace-ascii log/6/trace156 --trace-time http://127.0.0.1:33363/156 -T log/6/put156 -u testuser:testpass --anyauth > log/6/stdout156 2> log/6/stderr156 156: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 156 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind156 ../src/curl -q --output log/6/curl156.out --include --trace-ascii log/6/trace156 --trace-time http://127.0.0.1:33363/156 -T log/6/put156 -u testuser:testpass --anyauth > log/6/stdout156 2> log/6/stderr156 === End of file commands.log === Start of file http_server.log 10:31:00.530256 ====> Client connect 10:31:00.530571 accept_connection 3 returned 4 10:31:00.530748 accept_connection 3 returned 0 10:31:00.530887 Read 93 bytes 10:31:00.530974 Process 93 bytes request 10:31:00.531063 Got request: GET /verifiedserver HTTP/1.1 10:31:00.531141 Are-we-friendly question received 10:31:00.531380 Wrote request (93 bytes) input to log/6/server.input 10:31:00.531551 Identifying ourselves as friends 10:31:00.532321 Response sent (56 bytes) and written to log/6/server.response 10:31:00.535267 special reCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind154 ../src/curl -q --output log/1/curl154.out --include --trace-ascii log/1/trace154 --trace-time http://127.0.0.1:36129/154 -T log/1/put154 -u testuser:testpass --anyauth > log/1/stdout154 2> log/1/stderr154 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind155 ../src/curl -q --output log/5/curl155.out --include --trace-ascii log/5/trace155 --trace-time http://127.0.0.1:41733/155 -T log/5/put155 -u testuser:testpass --anyauth > log/5/stdout155 2> log/5/stderr155 quest received, no persistency 10:31:00.535543 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 37742 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file put156 This is data we upload with PUT a second line line three four is the number of lines === End of file put156 === Start of file server.cmd Testnum 156 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind156 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind156 test 0154...[HTTP PUT with --anyauth authorization (picking Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind154 ../src/curl -q --output log/1/curl154.out --include --trace-ascii log/1/trace154 --trace-time http://127.0.0.1:36129/154 -T log/1/put154 -u testuser:testpass --anyauth > log/1/stdout154 2> log/1/stderr154 154: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 154 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind154 ../src/curl -q --output log/1/curl154.out --include --trace-ascii log/1/trace154 --trace-time http://127.0.0.1:36129/154 -T log/1/put154 -u testuser:testpass --anyauth > log/1/stdout154 2> log/1/stderr154 === End of file commands.log === Start of file http_server.log 10:31:00.351554 ====> Client connect 10:31:00.351886 accept_connection 3 returned 4 10:31:00.352126 accept_connection 3 returned 0 10:31:00.353010 Read 93 bytes 10:31:00.353245 Process 93 bytes request 10:31:00.353361 Got request: GET /verifiedserver HTTP/1.1 10:31:00.353449 Are-we-friendly question received 10:31:00.353745 Wrote request (93 bytes) input to log/1/server.input 10:31:00.356373 Identifying ourselves as friends 10:31:00.357583 Response sent (56 bytes) and written to log/1/server.response 10:31:00.357735 special request received, no persistency 10:31:00.357815 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 48288 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file put154 This is data we upload with PUT a second line line three four is the number of lines === End of file put154 === Start of file server.cmd Testnum 154 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind154 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind154 test 0155...[HTTP PUT with --anyauth authorization (picking NTLM)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind155 ../src/curl -q --output log/5/curl155.out --include --trace-ascii log/5/trace155 --trace-time http://127.0.0.1:41733/155 -T log/5/put155 -u testuser:testpass --anyauth > log/5/stdout155 2> log/5/stderr155 155: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 155 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind155 ../src/curl -q --output log/5/curl155.out --include --trace-ascii log/5/trace155 --trace-time http://127.0.0.1:41733/155 -T log/5/put155 -u testuser:testpass --anyauth > log/5/stdout155 2> log/5/stderr155 === End of file commands.log === Start of file http_server.log 10:31:01.506354 ====> Client connect 10:31:01.506737 accept_connection 3 returned 4 10:31:01.506929 accept_connection 3 returned 0 10:31:01.508205 Read 93 bytes 10:31:01.508450 Process 93 bytes request 10:31:01.508754 Got request: GET /verifiedserver HTTP/1.1 10:31:01.508873 Are-we-friendly question received 10:31:01.509143 Wrote request (93 bytes) input to log/5/server.input 10:31:01.509358 Identifying ourselves as friends 10:31:01.510196 Response sent (56 bytes) and written to log/5/server.response 10:31:01.510348 special request reCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind157 ../src/curl -q --output log/8/curl157.out --include --trace-ascii log/8/trace157 --trace-time http://127.0.0.1:36007/157 -u testuser:testpass --anyauth > log/8/stdout157 2> log/8/stderr157 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind158 ../src/curl -q --output log/7/curl158.out --include --trace-ascii log/7/trace158 --trace-time http://127.0.0.1:40129/158 -F name=daniel > log/7/stdout158 2> log/7/stderr158 ceived, no persistency 10:31:01.510421 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 45382 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file put155 This is data we upload with PUT a second line line three four is the number of lines === End of file put155 === Start of file server.cmd Testnum 155 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind155 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind155 test 0157...[HTTP GET with --anyauth (when the server requires none)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind157 ../src/curl -q --output log/8/curl157.out --include --trace-ascii log/8/trace157 --trace-time http://127.0.0.1:36007/157 -u testuser:testpass --anyauth > log/8/stdout157 2> log/8/stderr157 157: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 157 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind157 ../src/curl -q --output log/8/curl157.out --include --trace-ascii log/8/trace157 --trace-time http://127.0.0.1:36007/157 -u testuser:testpass --anyauth > log/8/stdout157 2> log/8/stderr157 === End of file commands.log === Start of file http_server.log 10:31:00.771105 ====> Client connect 10:31:00.771445 accept_connection 3 returned 4 10:31:00.771662 accept_connection 3 returned 0 10:31:00.773440 Read 93 bytes 10:31:00.773639 Process 93 bytes request 10:31:00.773747 Got request: GET /verifiedserver HTTP/1.1 10:31:00.773823 Are-we-friendly question received 10:31:00.774098 Wrote request (93 bytes) input to log/8/server.input 10:31:00.774376 Identifying ourselves as friends 10:31:00.775330 Response sent (56 bytes) and written to log/8/server.response 10:31:00.775528 special request received, no persistency 10:31:00.775637 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 42786 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 157 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind157 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind157 test 0158...[HTTP multipart formpost with only a 100 reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind158 ../src/curl -q --output log/7/curl158.out --include --trace-ascii log/7/trace158 --trace-time http://127.0.0.1:40129/158 -F name=daniel > log/7/stdout158 2> log/7/stderr158 158: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 158 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind158 ../src/curl -q --output log/7/curl158.out --include --trace-ascii log/7/trace158 --trace-time http://127.0.0.1:40129/158 -F name=daniel > log/7/stdout158 2> log/7/stderr158 === End of file commands.log === Start of file http_server.log 10:31:00.782046 ====> Client connect 10:31:00.782355 accept_connection 3 returned 4 10:31:00.782541 accept_connection 3 returned 0 10:31:00.782668 Read 93 bytes 10:31:00.782748 Process 93 bytes request 10:31:00.782833 Got request: GET /verifiedserver HTTP/1.1 10:31:00.782904 Are-we-friendly question received 10:31:00.783125 Wrote request (93 bytes) input to log/7/server.input 10:31:00.783302 Identifying ourselves as friends 10:31:00.784055 Response sent (56 bytes) and written to log/7/server.response 10:31:00.784210 special request received, no persistency 10:31:00.784274 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 50CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind160 ../src/curl -q --include --trace-ascii log/2/trace160 --trace-time http://127.0.0.1:43789/want/160 http://127.0.0.1:43789/wantmore/1600001 > log/2/stdout160 2> log/2/stderr160 762 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 158 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind158 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind158 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind161 ../src/curl -q --output log/3/curl161.out --include --trace-ascii log/3/trace161 --trace-time ftp://127.0.0.1:33831/161 > log/3/stdout161 2> log/3/stderr161 test 0160...[HTTP with delayed close, conn reuse, connection reset and retry] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind160 ../src/curl -q --include --trace-ascii log/2/trace160 --trace-time http://127.0.0.1:43789/want/160 http://127.0.0.1:43789/wantmore/1600001 > log/2/stdout160 2> log/2/stderr160 160: stdout FAILED: --- log/2/check-expected 2025-09-11 10:31:01.995297975 +0000 +++ log/2/check-generated 2025-09-11 10:31:01.995297975 +0000 @@ -1,10 +0,0 @@ -HTTP/1.1 200 OK swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 9[CR][LF] -[CR][LF] -surprise[LF] -HTTP/1.1 200 OK swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Connection: close[CR][LF] -[CR][LF] -surprise2[LF] == Contents of files in the log/2/ dir after test 160 === Start of file check-expected HTTP/1.1 200 OK swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 9[CR][LF] [CR][LF] surprise[LF] HTTP/1.1 200 OK swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Connection: close[CR][LF] [CR][LF] surprise2[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind160 ../src/curl -q --include --trace-ascii log/2/trace160 --trace-time http://127.0.0.1:43789/want/160 http://127.0.0.1:43789/wantmore/1600001 > log/2/stdout160 2> log/2/stderr160 === End of file commands.log === Start of file http_server.log 10:31:00.793233 ====> Client connect 10:31:00.793531 accept_connection 3 returned 4 10:31:00.793704 accept_connection 3 returned 0 10:31:00.793823 Read 93 bytes 10:31:00.793914 Process 93 bytes request 10:31:00.793999 Got request: GET /verifiedserver HTTP/1.1 10:31:00.794073 Are-we-friendly question received 10:31:00.794316 Wrote request (93 bytes) input to log/2/server.input 10:31:00.794522 Identifying ourselves as friends 10:31:00.795266 Response sent (56 bytes) and written to log/2/server.response 10:31:00.795409 special request received, no persistency 10:31:00.795480 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36448 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 160 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind160 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind160 test 0161...[FTP RETR PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind161 ../src/curl -q --output log/3/curl161.out --include --trace-ascii log/3/trace161 --trace-time ftp://127.0.0.1:33831/161 > log/3/stdout161 2> log/3/stderr161 161: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 161 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind161 ../src/curl -q --output log/3/curl161.out --include --trace-ascii log/3/trace161 --trace-time ftp://127.0.0.1:33831/161 > log/3/stdout161 2> log/3/stderr161 === End of file commands.log === Start of file ftp_server.log 10:31:01.229746 ====> Client connect 10:31:01.231323 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:01.236293 < "USER anonymous" 10:31:01.236906 > "331 We are happy you popped in![CR][LF]" 10:31:01.240224 < "PASS ftp@example.com" 10:31:01.240809 > "230 Welcome you silly person[CR][LF]" 10:31:01.243555 < "PWD" 10:31:01.244032 > "257 "/" is current directory[CR][LF]" 10:31:01.246912 < "EPSV" 10:31:01.247343 ====> Passive DATA channel requested by client 10:31:01.247585 DATA sockfilt for passive data channel starting... 10:31:01.261709 DATA sockfilt for passive data channel started (pid 83117) 10:31:01.265725 DATA sockfilt for passive data channel listens on port 33511 10:31:01.266385 > "229 Entering Passive Mode (|||33511|)[LF]" 10:31:01.266773 Client has been notified that DATA conn will be accepted on port 33511 10:31:01.274272 Client connects to port 33511 10:31:01.274717 ====> Client established passive DATA connection on port 33511 10:31:01.275560 < "TYPE I" 10:31:01.276010 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:01.278475 < "SIZE verifiedserver" 10:31:01.279001 > "213 17[CR][LF]" 10:31:01.284826 < "RETR verifiedserver" 10:31:01.285644 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:01.286455 =====> Closing passive DATA connection... 10:31:01.286698 Server disconnects passive DATA connection 10:31:01.288897 Server disconnected passive DATA connection 10:31:01.289327 DATA sockfilt for passive data channel quits (pid 83117) 10:31:01.295831 DATA sockfilt for passive data channel quit (pid 83117) 10:31:01.296239 =====> Closed passive DATA connection 10:31:01.296713 > "226 File transfer complete[CR][LF]" 10:31:01.338694 < "QUIT" 10:31:01.339293 > "221 bye bye baby[CR][LF]" 10:31:01.344469 MAIN sockfilt said DISC 10:31:01.344946 ====> Client disconnected 10:31:01.345636 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:00.899576 ====> Client connect 10:31:00.903061 Received DATA (on stdin) 10:31:00.903514 > 160 bytes data, server => client 10:31:00.903704 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:00.903831 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:00.903941 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:00.905867 < 16 bytes data, client => server 10:31:00.906154 'USER anonymous\r\n' 10:31:00.908441 Received DATA (on stdin) 10:31:00.908775 > 33 bytes data, server => client 10:31:00.908901 '331 We are happy you popped in!\r\n'CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind162 ../src/curl -q --output log/4/curl162.out --include --trace-ascii log/4/trace162 --trace-time http://127.0.0.1:36757/162 --proxy http://127.0.0.1:36757 --proxy-user foo:bar --proxy-ntlm --fail > log/4/stdout162 2> log/4/stderr162 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind164 ../src/curl -q --output log/1/curl164.out --include --trace-ascii log/1/trace164 --trace-time http://127.0.0.1:36129/want/164 -r 0-10,12-15 > log/1/stdout164 2> log/1/stderr164 10:31:00.909911 < 22 bytes data, client => server 10:31:00.910201 'PASS ftp@example.com\r\n' 10:31:00.912292 Received DATA (on stdin) 10:31:00.912467 > 30 bytes data, server => client 10:31:00.912636 '230 Welcome you silly person\r\n' 10:31:00.913559 < 5 bytes data, client => server 10:31:00.913777 'PWD\r\n' 10:31:00.915525 Received DATA (on stdin) 10:31:00.915706 > 30 bytes data, server => client 10:31:00.915810 '257 "/" is current directory\r\n' 10:31:00.916640 < 6 bytes data, client => server 10:31:00.916888 'EPSV\r\n' 10:31:00.938299 Received DATA (on stdin) 10:31:00.938525 > 38 bytes data, server => client 10:31:00.938678 '229 Entering Passive Mode (|||33511|)\n' 10:31:00.945330 < 8 bytes data, client => server 10:31:00.945529 'TYPE I\r\n' 10:31:00.947053 Received DATA (on stdin) 10:31:00.947230 > 33 bytes data, server => client 10:31:00.947330 '200 I modify TYPE as you wanted\r\n' 10:31:00.948795 < 21 bytes data, client => server 10:31:00.949057 'SIZE verifiedserver\r\n' 10:31:00.950079 Received DATA (on stdin) 10:31:00.950327 > 8 bytes data, server => client 10:31:00.950512 '213 17\r\n' 10:31:00.952493 < 21 bytes data, client => server 10:31:00.952859 'RETR verifiedserver\r\n' 10:31:00.959956 Received DATA (on stdin) 10:31:00.960247 > 29 bytes data, server => client 10:31:00.960379 '150 Binary junk (17 bytes).\r\n' 10:31:00.967884 Received DATA (on stdin) 10:31:00.968063 > 28 bytes data, server => client 10:31:00.968168 '226 File transfer complete\r\n' 10:31:01.007558 < 6 bytes data, client => server 10:31:01.007819 'QUIT\r\n' 10:31:01.010382 Received DATA (on stdin) 10:31:01.010654 > 18 bytes data, server => client 10:31:01.010795 '221 bye bye baby\r\n' 10:31:01.011505 ====> Client disconnect 10:31:01.020668 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:01.927449 Running IPv4 version 10:31:01.928088 Listening on port 33511 10:31:01.928424 Wrote pid 83117 to log/3/server/ftp_sockdata.pid 10:31:01.928706 Received PING (on stdin) 10:31:01.935963 Received PORT (on stdin) 10:31:01.944804 ====> Client connect 10:31:01.958359 Received DATA (on stdin) 10:31:01.958629 > 17 bytes data, server => client 10:31:01.958752 'WE ROOLZ: 79555\r\n' 10:31:01.959154 Received DISC (on stdin) 10:31:01.959359 ====> Client forcibly disconnected 10:31:01.960962 Received QUIT (on stdin) 10:31:01.961178 quits 10:31:01.961721 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 161 === End of file server.cmd === Start of file valgrind161 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind161 test 0162...[HTTP GET asking for --proxy-ntlm when some other authentication is required] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind162 ../src/curl -q --output log/4/curl162.out --include --trace-ascii log/4/trace162 --trace-time http://127.0.0.1:36757/162 --proxy http://127.0.0.1:36757 --proxy-user foo:bar --proxy-ntlm --fail > log/4/stdout162 2> log/4/stderr162 162: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 162 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind162 ../src/curl -q --output log/4/curl162.out --include --trace-ascii log/4/trace162 --trace-time http://127.0.0.1:36757/162 --proxy http://127.0.0.1:36757 --proxy-user foo:bar --proxy-ntlm --fail > log/4/stdout162 2> log/4/stderr162 === End of file commands.log === Start of file http_server.log 10:31:02.236376 ====> Client connect 10:31:02.236939 accept_connection 3 returned 4 10:31:02.237175 accept_connection 3 returned 0 10:31:02.237331 Read 93 bytes 10:31:02.237430 Process 93 bytes request 10:31:02.237517 Got request: GET /verifiedserver HTTP/1.1 10:31:02.237604 Are-we-friendly question received 10:31:02.237852 Wrote request (93 bytes) input to log/4/server.input 10:31:02.238062 Identifying ourselves as friends 10:31:02.238996 Response sent (56 bytes) and written to log/4/server.response 10:31:02.239188 special request received, no persistency 10:31:02.239279 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 54814 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 162 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind162 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind162 test 0164...[HTTP range with multiple ranges] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --supCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind163 ../src/curl -q --output log/6/curl163.out --include --trace-ascii log/6/trace163 --trace-time http://127.0.0.1:33363/we/want/163 -F "name= log/6/stdout163 2> log/6/stderr163 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind166 ../src/curl -q --output log/8/curl166.out --include --trace-ascii log/8/trace166 --trace-time http://127.0.0.1:36007/we/want/166 -F "name=@log/8/fie ld 166" > log/8/stdout166 2> log/8/stderr166 pressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind164 ../src/curl -q --output log/1/curl164.out --include --trace-ascii log/1/trace164 --trace-time http://127.0.0.1:36129/want/164 -r 0-10,12-15 > log/1/stdout164 2> log/1/stderr164 164: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 164 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind164 ../src/curl -q --output log/1/curl164.out --include --trace-ascii log/1/trace164 --trace-time http://127.0.0.1:36129/want/164 -r 0-10,12-15 > log/1/stdout164 2> log/1/stderr164 === End of file commands.log === Start of file http_server.log 10:31:01.526983 ====> Client connect 10:31:01.527318 accept_connection 3 returned 4 10:31:01.527504 accept_connection 3 returned 0 10:31:01.527638 Read 93 bytes 10:31:01.527742 Process 93 bytes request 10:31:01.527847 Got request: GET /verifiedserver HTTP/1.1 10:31:01.527936 Are-we-friendly question received 10:31:01.528216 Wrote request (93 bytes) input to log/1/server.input 10:31:01.528449 Identifying ourselves as friends 10:31:01.532807 Response sent (56 bytes) and written to log/1/server.response 10:31:01.533264 special request received, no persistency 10:31:01.533396 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 48296 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 164 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind164 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind164 test 0163...[HTTP multipart formpost with contents from a file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind163 ../src/curl -q --output log/6/curl163.out --include --trace-ascii log/6/trace163 --trace-time http://127.0.0.1:33363/we/want/163 -F "name= log/6/stdout163 2> log/6/stderr163 163: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 163 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind163 ../src/curl -q --output log/6/curl163.out --include --trace-ascii log/6/trace163 --trace-time http://127.0.0.1:33363/we/want/163 -F "name= log/6/stdout163 2> log/6/stderr163 === End of file commands.log === Start of file field163 contents from a file newlinens? yes please [tab][CR] too === End of file field163 === Start of file http_server.log 10:31:01.508395 ====> Client connect 10:31:01.509275 accept_connection 3 returned 4 10:31:01.509636 accept_connection 3 returned 0 10:31:01.509845 Read 93 bytes 10:31:01.509956 Process 93 bytes request 10:31:01.510084 Got request: GET /verifiedserver HTTP/1.1 10:31:01.510197 Are-we-friendly question received 10:31:01.510534 Wrote request (93 bytes) input to log/6/server.input 10:31:01.510851 Identifying ourselves as friends 10:31:01.511925 Response sent (56 bytes) and written to log/6/server.response 10:31:01.512090 special request received, no persistency 10:31:01.512169 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 37758 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 163 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind163 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind163 test 0166...[HTTP formpost a file with spaces in name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind166 ../src/curl -q --output log/8/curl166.out --include --trace-ascii log/8/trace166 --trace-time http://127.0.0.1:36007/we/want/166 -FCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind165 ../src/curl -q --output log/5/curl165.out --include --trace-ascii log/5/trace165 --trace-time http://www.åäö.se/page/165 -x 127.0.0.1:41733 http://www.große.de/page/165 > log/5/stdout165 2> log/5/stderr165 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind167 ../src/curl -q --output log/7/curl167.out --include --trace-ascii log/7/trace167 --trace-time http://data.from.server.requiring.digest.hohoho.com/167 --proxy http://127.0.0.1:40129 --proxy-user foo:bar --digest --user digest:a-lot > log/7/stdout167 2> log/7/stderr167 "name=@log/8/fie ld 166" > log/8/stdout166 2> log/8/stderr166 166: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 166 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind166 ../src/curl -q --output log/8/curl166.out --include --trace-ascii log/8/trace166 --trace-time http://127.0.0.1:36007/we/want/166 -F "name=@log/8/fie ld 166" > log/8/stdout166 2> log/8/stderr166 === End of file commands.log === Start of file fie ld 166 data inside the file === End of file fie ld 166 === Start of file http_server.log 10:31:01.731430 ====> Client connect 10:31:01.731783 accept_connection 3 returned 4 10:31:01.731996 accept_connection 3 returned 0 10:31:01.732129 Read 93 bytes 10:31:01.732213 Process 93 bytes request 10:31:01.732300 Got request: GET /verifiedserver HTTP/1.1 10:31:01.732370 Are-we-friendly question received 10:31:01.732699 Wrote request (93 bytes) input to log/8/server.input 10:31:01.732960 Identifying ourselves as friends 10:31:01.734094 Response sent (56 bytes) and written to log/8/server.response 10:31:01.734331 special request received, no persistency 10:31:01.734471 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 42800 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 166 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind166 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind166 setenv LC_ALL = C.UTF-8 test 0165...[HTTP over proxy with IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind165 ../src/curl -q --output log/5/curl165.out --include --trace-ascii log/5/trace165 --trace-time http://www.åäö.se/page/165 -x 127.0.0.1:41733 http://www.große.de/page/165 > log/5/stdout165 2> log/5/stderr165 165: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 165 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind165 ../src/curl -q --output log/5/curl165.out --include --trace-ascii log/5/trace165 --trace-time http://www.åäö.se/page/165 -x 127.0.0.1:41733 http://www.große.de/page/165 > log/5/stdout165 2> log/5/stderr165 === End of file commands.log === Start of file http_server.log 10:31:02.709742 ====> Client connect 10:31:02.710024 accept_connection 3 returned 4 10:31:02.710182 accept_connection 3 returned 0 10:31:02.710297 Read 93 bytes 10:31:02.710397 Process 93 bytes request 10:31:02.710503 Got request: GET /verifiedserver HTTP/1.1 10:31:02.710582 Are-we-friendly question received 10:31:02.710789 Wrote request (93 bytes) input to log/5/server.input 10:31:02.710936 Identifying ourselves as friends 10:31:02.711526 Response sent (56 bytes) and written to log/5/server.response 10:31:02.711644 special request received, no persistency 10:31:02.711713 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 45398 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 165 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind165 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind165 test 0167...[HTTP with proxy-requiring-Basic to site-requiring-Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind167 ../src/curl -q --output log/7/curl167.out --include --trace-ascii log/7/trace167 --trace-time http://data.from.server.requiring.digest.hohoho.com/167 --proxy http://127.0.0.1:40129 --proxy-user foo:bar --digest --user digest:a-lot > log/7/stdout167 2> log/7/stderr167 167: protocol FAILED! There was no content at all in the file log/7/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind168 ../src/curl -q --output log/2/curl168.out --include --trace-ascii log/2/trace168 --trace-time http://data.from.server.requiring.digest.hohoho.com/168 --proxy http://127.0.0.1:43789 --proxy-user foo:bar --proxy-digest --digest --user digest:a-lot > log/2/stdout168 2> log/2/stderr168 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind169 ../src/curl -q --output log/3/curl169.out --include --trace-ascii log/3/trace169 --trace-time http://data.from.server.requiring.digest.hohoho.com/169 --proxy http://127.0.0.1:36933 --proxy-user testuser:testpass --proxy-ntlm --digest --user digest:a-lot > log/3/stdout169 2> log/3/stderr169 server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 167 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind167 ../src/curl -q --output log/7/curl167.out --include --trace-ascii log/7/trace167 --trace-time http://data.from.server.requiring.digest.hohoho.com/167 --proxy http://127.0.0.1:40129 --proxy-user foo:bar --digest --user digest:a-lot > log/7/stdout167 2> log/7/stderr167 === End of file commands.log === Start of file http_server.log 10:31:01.749667 ====> Client connect 10:31:01.749990 accept_connection 3 returned 4 10:31:01.750157 accept_connection 3 returned 0 10:31:01.750286 Read 93 bytes 10:31:01.750401 Process 93 bytes request 10:31:01.750512 Got request: GET /verifiedserver HTTP/1.1 10:31:01.750613 Are-we-friendly question received 10:31:01.750913 Wrote request (93 bytes) input to log/7/server.input 10:31:01.751110 Identifying ourselves as friends 10:31:01.751839 Response sent (56 bytes) and written to log/7/server.response 10:31:01.751959 special request received, no persistency 10:31:01.752027 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 50776 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 167 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind167 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind167 test 0168...[HTTP with proxy-requiring-Digest to site-requiring-Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind168 ../src/curl -q --output log/2/curl168.out --include --trace-ascii log/2/trace168 --trace-time http://data.from.server.requiring.digest.hohoho.com/168 --proxy http://127.0.0.1:43789 --proxy-user foo:bar --proxy-digest --digest --user digest:a-lot > log/2/stdout168 2> log/2/stderr168 168: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 168 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind168 ../src/curl -q --output log/2/curl168.out --include --trace-ascii log/2/trace168 --trace-time http://data.from.server.requiring.digest.hohoho.com/168 --proxy http://127.0.0.1:43789 --proxy-user foo:bar --proxy-digest --digest --user digest:a-lot > log/2/stdout168 2> log/2/stderr168 === End of file commands.log === Start of file http_server.log 10:31:01.922140 ====> Client connect 10:31:01.922476 accept_connection 3 returned 4 10:31:01.922689 accept_connection 3 returned 0 10:31:01.922865 Read 93 bytes 10:31:01.922982 Process 93 bytes request 10:31:01.923081 Got request: GET /verifiedserver HTTP/1.1 10:31:01.923163 Are-we-friendly question received 10:31:01.923427 Wrote request (93 bytes) input to log/2/server.input 10:31:01.923621 Identifying ourselves as friends 10:31:01.924305 Response sent (56 bytes) and written to log/2/server.response 10:31:01.924446 special request received, no persistency 10:31:01.924642 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36454 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 168 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind168 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind168 test 0169...[HTTP with proxy-requiring-NTLM to site-requiring-Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind169 ../src/curl -q --output log/3/curl169.out --include --trace-ascii log/3/trace169 --trace-time http://data.from.server.requiring.digest.hohoho.com/169 --proxy http://127.0.0.1:36933 --proxy-user testuser:testpass --proxy-ntlm --digest --user digest:a-lot > log/3/stdout169 2> log/3/stderr169 169: protocol FAILED! There was no conteCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind170 ../src/curl -q --output log/4/curl170.out --include --trace-ascii log/4/trace170 --trace-time http://a.galaxy.far.far.away/170 --proxy http://127.0.0.1:36757 --proxy-user foo:bar --proxy-ntlm -F "dummy=value" > log/4/stdout170 2> log/4/stderr170 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind171 ../src/curl -q --output log/1/curl171.out --include --trace-ascii log/1/trace171 --trace-time -c log/1/jar171 -x 127.0.0.1:36129 http://z.x.com/171 > log/1/stdout171 2> log/1/stderr171 nt at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 169 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind169 ../src/curl -q --output log/3/curl169.out --include --trace-ascii log/3/trace169 --trace-time http://data.from.server.requiring.digest.hohoho.com/169 --proxy http://127.0.0.1:36933 --proxy-user testuser:testpass --proxy-ntlm --digest --user digest:a-lot > log/3/stdout169 2> log/3/stderr169 === End of file commands.log === Start of file http_server.log 10:31:01.938293 ====> Client connect 10:31:01.938775 accept_connection 3 returned 4 10:31:01.939059 accept_connection 3 returned 0 10:31:01.940200 Read 93 bytes 10:31:01.942007 Process 93 bytes request 10:31:01.942279 Got request: GET /verifiedserver HTTP/1.1 10:31:01.942392 Are-we-friendly question received 10:31:01.942716 Wrote request (93 bytes) input to log/3/server.input 10:31:01.942983 Identifying ourselves as friends 10:31:01.943983 Response sent (56 bytes) and written to log/3/server.response 10:31:01.944200 special request received, no persistency 10:31:01.944285 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 35436 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 169 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind169 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind169 test 0170...[HTTP POST with --proxy-ntlm and no SSL with no response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind170 ../src/curl -q --output log/4/curl170.out --include --trace-ascii log/4/trace170 --trace-time http://a.galaxy.far.far.away/170 --proxy http://127.0.0.1:36757 --proxy-user foo:bar --proxy-ntlm -F "dummy=value" > log/4/stdout170 2> log/4/stderr170 170: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 170 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind170 ../src/curl -q --output log/4/curl170.out --include --trace-ascii log/4/trace170 --trace-time http://a.galaxy.far.far.away/170 --proxy http://127.0.0.1:36757 --proxy-user foo:bar --proxy-ntlm -F "dummy=value" > log/4/stdout170 2> log/4/stderr170 === End of file commands.log === Start of file http_server.log 10:31:03.277962 ====> Client connect 10:31:03.278353 accept_connection 3 returned 4 10:31:03.284811 accept_connection 3 returned 0 10:31:03.285051 Read 93 bytes 10:31:03.285163 Process 93 bytes request 10:31:03.285266 Got request: GET /verifiedserver HTTP/1.1 10:31:03.285348 Are-we-friendly question received 10:31:03.285644 Wrote request (93 bytes) input to log/4/server.input 10:31:03.285880 Identifying ourselves as friends 10:31:03.286756 Response sent (56 bytes) and written to log/4/server.response 10:31:03.286933 special request received, no persistency 10:31:03.287013 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 54820 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 170 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind170 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind170 test 0171...[HTTP, get cookie with dot prefixed full domain] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind171 ../src/curl -q --output log/1/curl171.out --include --trace-ascii log/1/trace171 --trace-time -c log/1/jar171 -x 127.0.0.1:36129 http://z.x.com/171 > log/1/stdout171 2> log/1/stderr171 171: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind172 ../src/curl -q --output log/6/curl172.out --include --trace-ascii log/6/trace172 --trace-time http://127.0.0.1:33363/we/want/172 -b log/6/jar172.txt -b "tool=curl; name=fool" > log/6/stdout172 2> log/6/stderr172 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind174 ../src/curl -q --output log/5/curl174.out --include --trace-ascii log/5/trace174 --trace-time http://127.0.0.1:41733/174 -u testuser:testpass --anyauth -d "junkelijunk" > log/5/stdout174 2> log/5/stderr174 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind173 ../src/curl -q --output log/8/curl173.out --include --trace-ascii log/8/trace173 --trace-time http://127.0.0.1:36007/we/want/173 -F field1=contents1 -F "fileupload=@-;filename=/dev/null;type=text/x-null;format=x-curl" log/8/stdout173 2> log/8/stderr173 171 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind171 ../src/curl -q --output log/1/curl171.out --include --trace-ascii log/1/trace171 --trace-time -c log/1/jar171 -x 127.0.0.1:36129 http://z.x.com/171 > log/1/stdout171 2> log/1/stderr171 === End of file commands.log === Start of file http_server.log 10:31:02.532218 ====> Client connect 10:31:02.532921 accept_connection 3 returned 4 10:31:02.533223 accept_connection 3 returned 0 10:31:02.537794 Read 93 bytes 10:31:02.537991 Process 93 bytes request 10:31:02.538107 Got request: GET /verifiedserver HTTP/1.1 10:31:02.538214 Are-we-friendly question received 10:31:02.538508 Wrote request (93 bytes) input to log/1/server.input 10:31:02.538733 Identifying ourselves as friends 10:31:02.545135 Response sent (56 bytes) and written to log/1/server.response 10:31:02.545297 special request received, no persistency 10:31:02.545388 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 48310 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 171 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind171 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind171 test 0172...[HTTP with cookies file and custom added cookie] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind172 ../src/curl -q --output log/6/curl172.out --include --trace-ascii log/6/trace172 --trace-time http://127.0.0.1:33363/we/want/172 -b log/6/jar172.txt -b "tool=curl; name=fool" > log/6/stdout172 2> log/6/stderr172 172: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 172 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind172 ../src/curl -q --output log/6/curl172.out --include --trace-ascii log/6/trace172 --trace-time http://127.0.0.1:33363/we/want/172 -b log/6/jar172.txt -b "tool=curl; name=fool" > log/6/stdout172 2> log/6/stderr172 === End of file commands.log === Start of file http_server.log 10:31:02.581047 ====> Client connect 10:31:02.581417 accept_connection 3 returned 4 10:31:02.581716 accept_connection 3 returned 0 10:31:02.581888 Read 93 bytes 10:31:02.582008 Process 93 bytes request 10:31:02.582112 Got request: GET /verifiedserver HTTP/1.1 10:31:02.582197 Are-we-friendly question received 10:31:02.582489 Wrote request (93 bytes) input to log/6/server.input 10:31:02.582731 Identifying ourselves as friends 10:31:02.583577 Response sent (56 bytes) and written to log/6/server.response 10:31:02.583692 special request received, no persistency 10:31:02.583762 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 37766 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file jar172.txt # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. .127.0.0.1 TRUE /silly/ FALSE 0 ismatch this .127.0.0.1 TRUE / FALSE 0 partmatch present 127.0.0.1 FALSE /we/want/ FALSE 22139150993 nodomain value === End of file jar172.txt === Start of file server.cmd Testnum 172 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind172 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind172 test 0174...[HTTP POST --anyauth to server not requiring any auth at all] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind174 ../src/curl -q --output log/5/curl174.out --include --trace-ascii log/5/trace174 --trace-time http://127.0.0.1:41733/174 -u testuser:testpass --anyauth -d "junkelijunk" > log/5/stdout174 2> log/5/stderr174 174: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind175 ../src/curl -q --output log/7/curl175.out --include --trace-ascii log/7/trace175 --trace-time http://127.0.0.1:40129/175 -u auser:apasswd --digest -d "junkelijunk" > log/7/stdout175 2> log/7/stderr175 == Contents of files in the log/5/ dir after test 174 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind174 ../src/curl -q --output log/5/curl174.out --include --trace-ascii log/5/trace174 --trace-time http://127.0.0.1:41733/174 -u testuser:testpass --anyauth -d "junkelijunk" > log/5/stdout174 2> log/5/stderr174 === End of file commands.log === Start of file http_server.log 10:31:03.797561 ====> Client connect 10:31:03.797952 accept_connection 3 returned 4 10:31:03.798179 accept_connection 3 returned 0 10:31:03.798325 Read 93 bytes 10:31:03.798414 Process 93 bytes request 10:31:03.798511 Got request: GET /verifiedserver HTTP/1.1 10:31:03.798582 Are-we-friendly question received 10:31:03.798824 Wrote request (93 bytes) input to log/5/server.input 10:31:03.799018 Identifying ourselves as friends 10:31:03.799895 Response sent (56 bytes) and written to log/5/server.response 10:31:03.800066 special request received, no persistency 10:31:03.800150 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 45400 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 174 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind174 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind174 test 0173...[HTTP RFC1867-formpost a file from stdin with "faked" filename] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind173 ../src/curl -q --output log/8/curl173.out --include --trace-ascii log/8/trace173 --trace-time http://127.0.0.1:36007/we/want/173 -F field1=contents1 -F "fileupload=@-;filename=/dev/null;type=text/x-null;format=x-curl" log/8/stdout173 2> log/8/stderr173 173: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 173 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind173 ../src/curl -q --output log/8/curl173.out --include --trace-ascii log/8/trace173 --trace-time http://127.0.0.1:36007/we/want/173 -F field1=contents1 -F "fileupload=@-;filename=/dev/null;type=text/x-null;format=x-curl" log/8/stdout173 2> log/8/stderr173 === End of file commands.log === Start of file http_server.log 10:31:02.722420 ====> Client connect 10:31:02.722822 accept_connection 3 returned 4 10:31:02.723056 accept_connection 3 returned 0 10:31:02.723221 Read 93 bytes 10:31:02.723346 Process 93 bytes request 10:31:02.723462 Got request: GET /verifiedserver HTTP/1.1 10:31:02.723540 Are-we-friendly question received 10:31:02.723832 Wrote request (93 bytes) input to log/8/server.input 10:31:02.724050 Identifying ourselves as friends 10:31:02.725107 Response sent (56 bytes) and written to log/8/server.response 10:31:02.725290 special request received, no persistency 10:31:02.725360 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 42816 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 173 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file stdin-for-173 line1 line2 line3 line4 line5 line6 line7 line8 === End of file stdin-for-173 === Start of file valgrind173 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind173 test 0175...[HTTP POST --digest to server not requiring any auth at all] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind175 ../src/curl -q --output log/7/curl175.out --include --trace-ascii log/7/trace175 --trace-time http://127.0.0.1:40129/175 -u auser:apasswd --digest -d "junkelijunk" > log/7/stdout175 2> log/7/stderr175 175: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == ContentsCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind177 ../src/curl -q --output log/3/curl177.out --include --trace-ascii log/3/trace177 --trace-time http://127.0.0.1:36933/177 -u auser:apasswd --digest -d "junkelijunk" > log/3/stdout177 2> log/3/stderr177 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind176 ../src/curl -q --output log/2/curl176.out --include --trace-ascii log/2/trace176 --trace-time http://127.0.0.1:43789/176 -u auser:apasswd --ntlm -d "junkelijunk" > log/2/stdout176 2> log/2/stderr176 of files in the log/7/ dir after test 175 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind175 ../src/curl -q --output log/7/curl175.out --include --trace-ascii log/7/trace175 --trace-time http://127.0.0.1:40129/175 -u auser:apasswd --digest -d "junkelijunk" > log/7/stdout175 2> log/7/stderr175 === End of file commands.log === Start of file http_server.log 10:31:02.797244 ====> Client connect 10:31:02.797738 accept_connection 3 returned 4 10:31:02.797984 accept_connection 3 returned 0 10:31:02.798162 Read 93 bytes 10:31:02.798283 Process 93 bytes request 10:31:02.798393 Got request: GET /verifiedserver HTTP/1.1 10:31:02.798480 Are-we-friendly question received 10:31:02.798788 Wrote request (93 bytes) input to log/7/server.input 10:31:02.799019 Identifying ourselves as friends 10:31:02.799894 Response sent (56 bytes) and written to log/7/server.response 10:31:02.800071 special request received, no persistency 10:31:02.800150 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 50792 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 175 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind175 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind175 test 0177...[HTTP POST --digest to server doing a 302-location response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind177 ../src/curl -q --output log/3/curl177.out --include --trace-ascii log/3/trace177 --trace-time http://127.0.0.1:36933/177 -u auser:apasswd --digest -d "junkelijunk" > log/3/stdout177 2> log/3/stderr177 177: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 177 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind177 ../src/curl -q --output log/3/curl177.out --include --trace-ascii log/3/trace177 --trace-time http://127.0.0.1:36933/177 -u auser:apasswd --digest -d "junkelijunk" > log/3/stdout177 2> log/3/stderr177 === End of file commands.log === Start of file http_server.log 10:31:03.118223 ====> Client connect 10:31:03.118652 accept_connection 3 returned 4 10:31:03.118888 accept_connection 3 returned 0 10:31:03.119065 Read 93 bytes 10:31:03.119193 Process 93 bytes request 10:31:03.119307 Got request: GET /verifiedserver HTTP/1.1 10:31:03.119405 Are-we-friendly question received 10:31:03.119678 Wrote request (93 bytes) input to log/3/server.input 10:31:03.120937 Identifying ourselves as friends 10:31:03.121825 Response sent (56 bytes) and written to log/3/server.response 10:31:03.121965 special request received, no persistency 10:31:03.122054 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 35444 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 177 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind177 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind177 test 0176...[HTTP POST --ntlm to server not requiring any auth at all] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind176 ../src/curl -q --output log/2/curl176.out --include --trace-ascii log/2/trace176 --trace-time http://127.0.0.1:43789/176 -u auser:apasswd --ntlm -d "junkelijunk" > log/2/stdout176 2> log/2/stderr176 176: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 176 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind176 ../src/curl -q --output log/2/cCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind178 ../src/curl -q --output log/4/curl178.out --include --trace-ascii log/4/trace178 --trace-time http://127.0.0.1:36757/178 > log/4/stdout178 2> log/4/stderr178 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind179 ../src/curl -q --output log/1/curl179.out --include --trace-ascii log/1/trace179 --trace-time http://supertrooper.fake/c/179 -b log/1/injar179 -x 127.0.0.1:36129 > log/1/stdout179 2> log/1/stderr179 url176.out --include --trace-ascii log/2/trace176 --trace-time http://127.0.0.1:43789/176 -u auser:apasswd --ntlm -d "junkelijunk" > log/2/stdout176 2> log/2/stderr176 === End of file commands.log === Start of file http_server.log 10:31:03.101841 ====> Client connect 10:31:03.102160 accept_connection 3 returned 4 10:31:03.102407 accept_connection 3 returned 0 10:31:03.102580 Read 93 bytes 10:31:03.102669 Process 93 bytes request 10:31:03.102747 Got request: GET /verifiedserver HTTP/1.1 10:31:03.102810 Are-we-friendly question received 10:31:03.103028 Wrote request (93 bytes) input to log/2/server.input 10:31:03.103187 Identifying ourselves as friends 10:31:03.103826 Response sent (56 bytes) and written to log/2/server.response 10:31:03.103974 special request received, no persistency 10:31:03.104039 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36458 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 176 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind176 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind176 test 0178...[HTTP response with negative Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind178 ../src/curl -q --output log/4/curl178.out --include --trace-ascii log/4/trace178 --trace-time http://127.0.0.1:36757/178 > log/4/stdout178 2> log/4/stderr178 178: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 178 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind178 ../src/curl -q --output log/4/curl178.out --include --trace-ascii log/4/trace178 --trace-time http://127.0.0.1:36757/178 > log/4/stdout178 2> log/4/stderr178 === End of file commands.log === Start of file http_server.log 10:31:04.358259 ====> Client connect 10:31:04.358592 accept_connection 3 returned 4 10:31:04.358773 accept_connection 3 returned 0 10:31:04.358906 Read 93 bytes 10:31:04.358994 Process 93 bytes request 10:31:04.359086 Got request: GET /verifiedserver HTTP/1.1 10:31:04.359159 Are-we-friendly question received 10:31:04.359402 Wrote request (93 bytes) input to log/4/server.input 10:31:04.359587 Identifying ourselves as friends 10:31:04.360241 Response sent (56 bytes) and written to log/4/server.response 10:31:04.360370 special request received, no persistency 10:31:04.360435 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 54834 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 178 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind178 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind178 test 0179...[HTTP using proxy and cookies with path checks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind179 ../src/curl -q --output log/1/curl179.out --include --trace-ascii log/1/trace179 --trace-time http://supertrooper.fake/c/179 -b log/1/injar179 -x 127.0.0.1:36129 > log/1/stdout179 2> log/1/stderr179 179: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 179 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind179 ../src/curl -q --output log/1/curl179.out --include --trace-ascii log/1/trace179 --trace-time http://supertrooper.fake/c/179 -b log/1/injar179 -x 127.0.0.1:36129 > log/1/stdout179 2> log/1/stderr179 === End of file commands.log === Start of file http_server.log 10:31:03.463229 ====> Client connect 10:31:03.463574 accept_connection 3 returned 4 10:31:03.463789 accept_connection 3 returned 0 10:31:03.463947 Read 93 bytes 10:31:03.46CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind180 ../src/curl -q --output log/6/curl180.out --include --trace-ascii log/6/trace180 --trace-time http://127.0.0.1:33363/we/want/180 -T log/6/test180.txt --http1.0 > log/6/stdout180 2> log/6/stderr180 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind181 ../src/curl -q --output log/5/curl181.out --include --trace-ascii log/5/trace181 --trace-time http://127.0.0.1:41733/we/want/181 --data-binary @log/5/test181.txt --http1.0 > log/5/stdout181 2> log/5/stderr181 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind182 ../src/curl -q --output log/8/curl182.out --include --trace-ascii log/8/trace182 --trace-time ftp://127.0.0.1:38061/182 > log/8/stdout182 2> log/8/stderr182 4063 Process 93 bytes request 10:31:03.464175 Got request: GET /verifiedserver HTTP/1.1 10:31:03.464261 Are-we-friendly question received 10:31:03.468741 Wrote request (93 bytes) input to log/1/server.input 10:31:03.469116 Identifying ourselves as friends 10:31:03.469990 Response sent (56 bytes) and written to log/1/server.response 10:31:03.470207 special request received, no persistency 10:31:03.470290 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 48312 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file injar179 supertrooper.fake FALSE /a FALSE 22139150993 mooo indeed supertrooper.fake FALSE /b FALSE 0 moo1 indeed supertrooper.fake FALSE /c FALSE 22139150993 moo2 indeed === End of file injar179 === Start of file server.cmd Testnum 179 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind179 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind179 test 0180...[HTTP 1.0 PUT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind180 ../src/curl -q --output log/6/curl180.out --include --trace-ascii log/6/trace180 --trace-time http://127.0.0.1:33363/we/want/180 -T log/6/test180.txt --http1.0 > log/6/stdout180 2> log/6/stderr180 180: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 180 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind180 ../src/curl -q --output log/6/curl180.out --include --trace-ascii log/6/trace180 --trace-time http://127.0.0.1:33363/we/want/180 -T log/6/test180.txt --http1.0 > log/6/stdout180 2> log/6/stderr180 === End of file commands.log === Start of file http_server.log 10:31:03.601347 ====> Client connect 10:31:03.601744 accept_connection 3 returned 4 10:31:03.601981 accept_connection 3 returned 0 10:31:03.602158 Read 93 bytes 10:31:03.602368 Process 93 bytes request 10:31:03.602518 Got request: GET /verifiedserver HTTP/1.1 10:31:03.602610 Are-we-friendly question received 10:31:03.602937 Wrote request (93 bytes) input to log/6/server.input 10:31:03.603179 Identifying ourselves as friends 10:31:03.604146 Response sent (56 bytes) and written to log/6/server.response 10:31:03.604323 special request received, no persistency 10:31:03.604423 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 37768 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 180 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file test180.txt Weird file to upload for testing the PUT feature === End of file test180.txt === Start of file valgrind180 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind180 test 0181...[HTTP 1.0 POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind181 ../src/curl -q --output log/5/curl181.out --include --trace-ascii log/5/trace181 --trace-time http://127.0.0.1:41733/we/want/181 --data-binary @log/5/test181.txt --http1.0 > log/5/stdout181 2> log/5/stderr181 181: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 181 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind181 ../src/curl -q --output log/5/curl181.out --include --trace-ascii log/5/trace181 --trace-time http://127.0.0.1:41733/we/want/181 --data-binary @log/5/test181.txt --http1.0 > log/5/stdout181 2> log/5/stderr181 === End of file commands.log === Start of file http_server.log 10:31:04.828044 ====> Client connect 10:31:04.828620 accept_connection 3 returned 4 10:31:04.828930 accept_connection 3 returned 0 10:31:04.829129 Read 93 bytes 10:31:04.829250 ProcCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind183 ../src/curl -q --output log/7/curl183.out --include --trace-ascii log/7/trace183 --trace-time http://deathstar.another.galaxy/183 http://a.galaxy.far.far.away/183 --proxy http://127.0.0.1:40129 > log/7/stdout183 2> log/7/stderr183 ess 93 bytes request 10:31:04.829352 Got request: GET /verifiedserver HTTP/1.1 10:31:04.829454 Are-we-friendly question received 10:31:04.829769 Wrote request (93 bytes) input to log/5/server.input 10:31:04.830029 Identifying ourselves as friends 10:31:04.831245 Response sent (56 bytes) and written to log/5/server.response 10:31:04.831545 special request received, no persistency 10:31:04.831673 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 45414 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 181 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file test181.txt Weird file to upload for testing the POST feature === End of file test181.txt === Start of file valgrind181 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind181 test 0182...[FTP download an empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind182 ../src/curl -q --output log/8/curl182.out --include --trace-ascii log/8/trace182 --trace-time ftp://127.0.0.1:38061/182 > log/8/stdout182 2> log/8/stderr182 182: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 182 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind182 ../src/curl -q --output log/8/curl182.out --include --trace-ascii log/8/trace182 --trace-time ftp://127.0.0.1:38061/182 > log/8/stdout182 2> log/8/stderr182 === End of file commands.log === Start of file ftp_server.log 10:31:04.173967 ====> Client connect 10:31:04.176781 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:04.190690 < "USER anonymous" 10:31:04.191596 > "331 We are happy you popped in![CR][LF]" 10:31:04.206508 < "PASS ftp@example.com" 10:31:04.207141 > "230 Welcome you silly person[CR][LF]" 10:31:04.221083 < "PWD" 10:31:04.221800 > "257 "/" is current directory[CR][LF]" 10:31:04.228383 < "EPSV" 10:31:04.228781 ====> Passive DATA channel requested by client 10:31:04.229007 DATA sockfilt for passive data channel starting... 10:31:04.241721 DATA sockfilt for passive data channel started (pid 84607) 10:31:04.242876 DATA sockfilt for passive data channel listens on port 36901 10:31:04.243479 > "229 Entering Passive Mode (|||36901|)[LF]" 10:31:04.243811 Client has been notified that DATA conn will be accepted on port 36901 10:31:04.246107 Client connects to port 36901 10:31:04.246599 ====> Client established passive DATA connection on port 36901 10:31:04.248203 < "TYPE I" 10:31:04.249840 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:04.251508 < "SIZE verifiedserver" 10:31:04.252563 > "213 17[CR][LF]" 10:31:04.254897 < "RETR verifiedserver" 10:31:04.255444 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:04.256242 =====> Closing passive DATA connection... 10:31:04.256532 Server disconnects passive DATA connection 10:31:04.258865 Server disconnected passive DATA connection 10:31:04.259302 DATA sockfilt for passive data channel quits (pid 84607) 10:31:04.261053 DATA sockfilt for passive data channel quit (pid 84607) 10:31:04.261987 =====> Closed passive DATA connection 10:31:04.262471 > "226 File transfer complete[CR][LF]" 10:31:04.306528 < "QUIT" 10:31:04.307013 > "221 bye bye baby[CR][LF]" 10:31:04.308814 MAIN sockfilt said DISC 10:31:04.310219 ====> Client disconnected 10:31:04.310940 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:04.843434 ====> Client connect 10:31:04.856602 Received DATA (on stdin) 10:31:04.857041 > 160 bytes data, server => client 10:31:04.857344 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:04.857540 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:04.857744 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:04.860272 < 16 bytes data, client => server 10:31:04.860644 'USER anonymous\r\n' 10:31:04.862627 Received DATA (on stdin) 10:31:04.862959 > 33 bytes data, server => client 10:31:04.863186 '331 We are happy you popped in!\r\n' 10:31:04.866987 < 22 bytes data, client => server 10:31:04.867279 'PASS ftp@example.com\r\n' 10:31:04.878174 Received DATA (on stdin) 10:31:04.878404 > 30 bytes data, server => client 10:31:04.878534 '230 Welcome you silly person\r\n' 10:31:04.880646 < 5 bytes data, client => server 10:31:04.880852 'PWD\r\n' 10:31:04.892786 Received DATA (on stdin) 10:31:04.893031 > 30 bytes data, server => client 10:31:04.893156 '257 "/" is current directory\r\n' 10:31:04.898274 < 6 bytes data, client => server 10:31:04.898473 'EPSV\r\n' 10:31:04.915201 Received DATA (on stdin) 10:31:04.915400 > 38 bytes data, server => client 10:31:04.915502 '229 Entering Passive Mode (|||36901|)\n' 10:31:04.918181 < 8 bytes data, client => server 10:31:04.918388 'TYPE I\r\n' 10:31:04.919731 Received DATA (on stdin) 10:31:04.919943 > 33 bytes data, server => client 10:31:04.920147 '200 I modify TYPE as you wanted\r\n' 10:31:04.921510 < 21 bytes data, client => server 10:31:04.921719 'SIZE verifiedserver\r\n' 10:31:04.923052 Received DATA (on stdin) 10:31:04.923275 > 8 bytes data, server => client 10:31:04.923982 '213 17\r\n' 10:31:04.924880 < 21 bytes data, client => server 10:31:04.925095 'RETR verifiedserver\r\n' 10:31:04.927824 Received DATA (on stdin) 10:31:04.927970 > 29 bytes data, server => client 10:31:04.928065 '150 Binary junk (17 bytes).\r\n' 10:31:04.933793 Received DATA (on stdin) 10:31:04.933950 > 28 bytes data, server => client 10:31:04.934028 '226 File transfer complete\r\n' 10:31:04.976390 < 6 bytes data, client => server 10:31:04.976794 'QUIT\r\n' 10:31:04.978431 Received DATA (on stdin) 10:31:04.978635 > 18 bytes data, server => client 10:31:04.978735 '221 bye bye baby\r\nCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind184 ../src/curl -q --output log/3/curl184.out --include --trace-ascii log/3/trace184 --trace-time http://deathstar.another.galaxy/184 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:36933 > log/3/stdout184 2> log/3/stderr184 ' 10:31:04.979359 ====> Client disconnect 10:31:04.980349 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:04.910078 Running IPv4 version 10:31:04.910842 Listening on port 36901 10:31:04.911266 Wrote pid 84607 to log/8/server/ftp_sockdata.pid 10:31:04.912223 Received PING (on stdin) 10:31:04.913224 Received PORT (on stdin) 10:31:04.916666 ====> Client connect 10:31:04.928536 Received DATA (on stdin) 10:31:04.928797 > 17 bytes data, server => client 10:31:04.928925 'WE ROOLZ: 79508\r\n' 10:31:04.929262 Received DISC (on stdin) 10:31:04.929443 ====> Client forcibly disconnected 10:31:04.930611 Received QUIT (on stdin) 10:31:04.930767 quits 10:31:04.931191 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 182 === End of file server.cmd === Start of file valgrind182 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind182 test 0183...[HTTP GET two URLs over a single proxy with persistent connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind183 ../src/curl -q --output log/7/curl183.out --include --trace-ascii log/7/trace183 --trace-time http://deathstar.another.galaxy/183 http://a.galaxy.far.far.away/183 --proxy http://127.0.0.1:40129 > log/7/stdout183 2> log/7/stderr183 183: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 183 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind183 ../src/curl -q --output log/7/curl183.out --include --trace-ascii log/7/trace183 --trace-time http://deathstar.another.galaxy/183 http://a.galaxy.far.far.away/183 --proxy http://127.0.0.1:40129 > log/7/stdout183 2> log/7/stderr183 === End of file commands.log === Start of file http_server.log 10:31:03.883635 ====> Client connect 10:31:03.883971 accept_connection 3 returned 4 10:31:03.884146 accept_connection 3 returned 0 10:31:03.884301 Read 93 bytes 10:31:03.884402 Process 93 bytes request 10:31:03.884696 Got request: GET /verifiedserver HTTP/1.1 10:31:03.884798 Are-we-friendly question received 10:31:03.885044 Wrote request (93 bytes) input to log/7/server.input 10:31:03.885231 Identifying ourselves as friends 10:31:03.885987 Response sent (56 bytes) and written to log/7/server.response 10:31:03.886116 special request received, no persistency 10:31:03.886186 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 50808 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 183 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind183 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind183 test 0184...[HTTP replace Host: when following Location: to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind184 ../src/curl -q --output log/3/curl184.out --include --trace-ascii log/3/trace184 --trace-time http://deathstar.another.galaxy/184 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:36933 > log/3/stdout184 2> log/3/stderr184 184: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 184 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind184 ../src/curl -q --output log/3/curl184.out --include --trace-ascii log/3/trace184 --trace-time http://deathstar.another.galaxy/184 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:36933 > log/3/stdout184 2> log/3/stderr184 === End of file commands.log === Start of file http_server.log 10:31:04.096972 ====> Client connect 10:31:04.097370 accept_connection 3 returned 4 10:31:04.097582 accept_connection 3 returned 0 10:31:04.102259 Read 93 bytes 10:31:04.102547 Process 93 bytes request 10:31:04.102672 Got request: GET /verifiedserver HTTP/1.1 10:31:04.102757 Are-we-friendly question received 10:31:04.103027 Wrote request (93 bytes) input to log/3/server.input 10:31:04.103219 Identifying ourselves as friends 10:31:04.103970 Response sent (56 bytes) and written to log/3/server.response 10:31:04.104123 special request received, no persistency 10:31:04.104206 ====> Client disconnect 0 === End ofCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind185 ../src/curl -q --output log/2/curl185.out --include --trace-ascii log/2/trace185 --trace-time http://deathstar.another.galaxy/185 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:43789 > log/2/stdout185 2> log/2/stderr185 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind186 ../src/curl -q --output log/4/curl186.out --include --trace-ascii log/4/trace186 --trace-time http://127.0.0.1:36757/we/want/186 -F "name=daniel;type=moo/foo-.4" -F "html= hello;type=text/html;charset=verymoo" > log/4/stdout186 2> log/4/stderr186 file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 35452 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 184 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind184 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind184 test 0185...[HTTP replace Host: when following Location: on the same host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind185 ../src/curl -q --output log/2/curl185.out --include --trace-ascii log/2/trace185 --trace-time http://deathstar.another.galaxy/185 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:43789 > log/2/stdout185 2> log/2/stderr185 185: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 185 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind185 ../src/curl -q --output log/2/curl185.out --include --trace-ascii log/2/trace185 --trace-time http://deathstar.another.galaxy/185 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://127.0.0.1:43789 > log/2/stdout185 2> log/2/stderr185 === End of file commands.log === Start of file http_server.log 10:31:04.134897 ====> Client connect 10:31:04.135239 accept_connection 3 returned 4 10:31:04.135450 accept_connection 3 returned 0 10:31:04.135595 Read 93 bytes 10:31:04.135714 Process 93 bytes request 10:31:04.135809 Got request: GET /verifiedserver HTTP/1.1 10:31:04.135887 Are-we-friendly question received 10:31:04.136147 Wrote request (93 bytes) input to log/2/server.input 10:31:04.136351 Identifying ourselves as friends 10:31:04.137259 Response sent (56 bytes) and written to log/2/server.response 10:31:04.137404 special request received, no persistency 10:31:04.137482 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36460 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 185 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind185 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind185 test 0186...[HTTP RFC1867-type formposting with types on text fields] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind186 ../src/curl -q --output log/4/curl186.out --include --trace-ascii log/4/trace186 --trace-time http://127.0.0.1:36757/we/want/186 -F "name=daniel;type=moo/foo-.4" -F "html= hello;type=text/html;charset=verymoo" > log/4/stdout186 2> log/4/stderr186 186: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 186 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind186 ../src/curl -q --output log/4/curl186.out --include --trace-ascii log/4/trace186 --trace-time http://127.0.0.1:36757/we/want/186 -F "name=daniel;type=moo/foo-.4" -F "html= hello;type=text/html;charset=verymoo" > log/4/stdout186 2> log/4/stderr186 === End of file commands.log === Start of file http_server.log 10:31:05.283450 ====> Client connect 10:31:05.283745 accept_connection 3 returned 4 10:31:05.283922 accept_connection 3 returned 0 10:31:05.284050 Read 93 bytes 10:31:05.284158 Process 93 bytes request 10:31:05.284254 Got request: GET /verifiedserver HTTP/1.1 10:31:05.284327 Are-we-friendly question received 10:31:05.284706 Wrote request (93 bytes) input to log/4/server.input 10:31:05.284962 Identifying ourselves as friends 10:31:05.285706 Response sent (56 bytes) and written to log/4/server.response 10:31:05.285860 special request received, no persistency 10:31:05.285991 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind187 ../src/curl -q --output log/1/curl187.out --include --trace-ascii log/1/trace187 --trace-time http://127.0.0.1:36129?oh=what-weird=test/187 -L > log/1/stdout187 2> log/1/stderr187 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind188 ../src/curl -q --output log/6/curl188.out --include --trace-ascii log/6/trace188 --trace-time http://127.0.0.1:33363/188 -C 50 -L > log/6/stdout188 2> log/6/stderr188 * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 54836 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 186 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind186 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind186 test 0187...[HTTP redirect with bad host name separation and slash in parameters] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind187 ../src/curl -q --output log/1/curl187.out --include --trace-ascii log/1/trace187 --trace-time http://127.0.0.1:36129?oh=what-weird=test/187 -L > log/1/stdout187 2> log/1/stderr187 187: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 187 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind187 ../src/curl -q --output log/1/curl187.out --include --trace-ascii log/1/trace187 --trace-time http://127.0.0.1:36129?oh=what-weird=test/187 -L > log/1/stdout187 2> log/1/stderr187 === End of file commands.log === Start of file http_server.log 10:31:04.488109 ====> Client connect 10:31:04.488393 accept_connection 3 returned 4 10:31:04.488689 accept_connection 3 returned 0 10:31:04.488828 Read 93 bytes 10:31:04.488914 Process 93 bytes request 10:31:04.489002 Got request: GET /verifiedserver HTTP/1.1 10:31:04.489071 Are-we-friendly question received 10:31:04.489337 Wrote request (93 bytes) input to log/1/server.input 10:31:04.489556 Identifying ourselves as friends 10:31:04.490396 Response sent (56 bytes) and written to log/1/server.response 10:31:04.490549 special request received, no persistency 10:31:04.490645 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 48318 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 187 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind187 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind187 test 0188...[HTTP GET with resume and redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind188 ../src/curl -q --output log/6/curl188.out --include --trace-ascii log/6/trace188 --trace-time http://127.0.0.1:33363/188 -C 50 -L > log/6/stdout188 2> log/6/stderr188 188: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 188 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind188 ../src/curl -q --output log/6/curl188.out --include --trace-ascii log/6/trace188 --trace-time http://127.0.0.1:33363/188 -C 50 -L > log/6/stdout188 2> log/6/stderr188 === End of file commands.log === Start of file http_server.log 10:31:04.650524 ====> Client connect 10:31:04.650807 accept_connection 3 returned 4 10:31:04.650972 accept_connection 3 returned 0 10:31:04.651102 Read 93 bytes 10:31:04.651187 Process 93 bytes request 10:31:04.651269 Got request: GET /verifiedserver HTTP/1.1 10:31:04.651338 Are-we-friendly question received 10:31:04.651526 Wrote request (93 bytes) input to log/6/server.input 10:31:04.651660 Identifying ourselves as friends 10:31:04.652228 Response sent (56 bytes) and written to log/6/server.response 10:31:04.652342 special request received, no persistency 10:31:04.652403 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 37776 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verifyCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind191 ../src/curl -q --output log/7/curl191.out --include --trace-ascii log/7/trace191 --trace-time "ftp://use%3fr:pass%3fword@127.0.0.1:38253/191" > log/7/stdout191 2> log/7/stderr191 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind190 ../src/curl -q --output log/8/curl190.out --include --trace-ascii log/8/trace190 --trace-time ftp://127.0.0.1:38061/path/to/file/190 -m 10 > log/8/stdout190 2> log/8/stderr190 * kill pid for ftp-ctrl => 79580 RUN: Process with pid 79508 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind189 ../src/curl -q --output log/5/curl189.out --include --trace-ascii log/5/trace189 --trace-time http://127.0.0.1:41733/189 -C 50 -L > log/5/stdout189 2> log/5/stderr189 .log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 188 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind188 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind188 test 0191...[FTP URL with ?-letters in username and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind191 ../src/curl -q --output log/7/curl191.out --include --trace-ascii log/7/trace191 --trace-time "ftp://use%3fr:pass%3fword@127.0.0.1:38253/191" > log/7/stdout191 2> log/7/stderr191 191: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 191 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind191 ../src/curl -q --output log/7/curl191.out --include --trace-ascii log/7/trace191 --trace-time "ftp://use%3fr:pass%3fword@127.0.0.1:38253/191" > log/7/stdout191 2> log/7/stderr191 === End of file commands.log === Start of file ftp_server.log 10:31:05.257222 ====> Client connect 10:31:05.263220 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:05.266947 < "USER anonymous" 10:31:05.267623 > "331 We are happy you popped in![CR][LF]" 10:31:05.274935 < "PASS ftp@example.com" 10:31:05.275476 > "230 Welcome you silly person[CR][LF]" 10:31:05.278124 < "PWD" 10:31:05.278655 > "257 "/" is current directory[CR][LF]" 10:31:05.282171 < "EPSV" 10:31:05.282549 ====> Passive DATA channel requested by client 10:31:05.282817 DATA sockfilt for passive data channel starting... 10:31:05.294416 DATA sockfilt for passive data channel started (pid 85119) 10:31:05.295394 DATA sockfilt for passive data channel listens on port 42599 10:31:05.295918 > "229 Entering Passive Mode (|||42599|)[LF]" 10:31:05.296196 Client has been notified that DATA conn will be accepted on port 42599 10:31:05.299038 Client connects to port 42599 10:31:05.299383 ====> Client established passive DATA connection on port 42599 10:31:05.300162 < "TYPE I" 10:31:05.300629 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:05.306352 < "SIZE verifiedserver" 10:31:05.306829 > "213 17[CR][LF]" 10:31:05.308991 < "RETR verifiedserver" 10:31:05.310657 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:05.311510 =====> Closing passive DATA connection... 10:31:05.311743 Server disconnects passive DATA connection 10:31:05.316263 Server disconnected passive DATA connection 10:31:05.316688 DATA sockfilt for passive data channel quits (pid 85119) 10:31:05.318666 DATA sockfilt for passive data channel quit (pid 85119) 10:31:05.319139 =====> Closed passive DATA connection 10:31:05.319580 > "226 File transfer complete[CR][LF]" 10:31:05.355854 < "QUIT" 10:31:05.356524 > "221 bye bye baby[CR][LF]" 10:31:05.362342 MAIN sockfilt said DISC 10:31:05.363867 ====> Client disconnected 10:31:05.364749 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:05.927285 ====> Client connect 10:31:05.934856 Received DATA (on stdin) 10:31:05.935152 > 160 bytes data, server => client 10:31:05.935302 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:05.935429 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:05.935535 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:05.936706 < 16 bytes data, client => server 10:31:05.936969 'USER anonymous\r\n' 10:31:05.939229 Received DATA (on stdin) 10:31:05.939472 > 33 bytes data, server => client 10:31:05.939601 '331 We are happy you popped in!\r\n' 10:31:05.944685 < 22 bytes data, client => server 10:31:05.944962 'PASS ftp@example.com\r\n' 10:31:05.946480 Received DATA (on stdin) 10:31:05.946669 > 30 bytes data, server => client 10:31:05.946786 '230 Welcome you silly person\r\n' 10:31:05.948267 < 5 bytes data, client => server 10:31:05.948683 'PWD\r\n' 10:31:05.949663 Received DATA (on stdin) 10:31:05.949873 > 30 bytes data, server => client 10:31:05.949981 '257 "/" is current directory\r\n' 10:31:05.952245 < 6 bytes data, client => server 10:31:05.952562 'EPSV\r\n' 10:31:05.967296 Received DATA (on stdin) 10:31:05.967493 > 38 bytes data, server => client 10:31:05.967589 '229 Entering Passive Mode (|||42599|)\n' 10:31:05.969410 < 8 bytes data, client => server 10:31:05.969559 'TYPE I\r\n' 10:31:05.972102 Received DATA (on stdin) 10:31:05.972333 > 33 bytes data, server => client 10:31:05.972638 '200 I modify TYPE as you wanted\r\n' 10:31:05.976303 < 21 bytes data, client => server 10:31:05.978124 'SIZE verifiedserver\r\n' 10:31:05.978301 Received DATA (on stdin) 10:31:05.978391 > 8 bytes data, server => client 10:31:05.978459 '213 17\r\n' 10:31:05.979112 < 21 bytes data, client => server 10:31:05.979267 'RETR verifiedserver\r\n' 10:31:05.980398 Received DATA (on stdin) 10:31:05.980929 > 29 bytes data, server => client 10:31:05.981150 '150 Binary junk (17 bytes).\r\n' 10:31:05.990922 Received DATA (on stdin) 10:31:05.991102 > 28 bytes data, server => client 10:31:05.991189 '226 File transfer complete\r\n' 10:31:06.025586 < 6 bytes data, client => server 10:31:06.025855 'QUIT\r\n' 10:31:06.028007 Received DATA (on stdin) 10:31:06.028239 > 18 bytes data, server => client 10:31:06.028372 '221 bye bye baby\r\n' 10:31:06.032726 ====> Client disconnect 10:31:06.033935 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:05.963737 Running IPv4 version 10:31:05.964336 Listening on port 42599 10:31:05.964893 Wrote pid 85119 to log/7/server/ftp_sockdata.pid 10:31:05.965097 Received PING (on stdin) 10:31:05.965726 Received PORT (on stdin) 10:31:05.969758 ====> Client connect 10:31:05.984554 Received DATA (on stdin) 10:31:05.984775 > 17 bytes data, server => client 10:31:05.984868 'WE ROOLZ: 79543\r\n' 10:31:05.985216 Received DISC (on stdin) 10:31:05.985407 ====> Client forcibly disconnected 10:31:05.987966 Received QUIT (on stdin) 10:31:05.988157 quits 10:31:05.988694 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 191 === End of file server.cmd === Start of file valgrind191 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platfoRUN: Process with pid 79508 gracefully died rm-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind191 test 0189...[HTTP GET with resume and redirect (to a page that doesn't resume)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind189 ../src/curl -q --output log/5/curl189.out --include --trace-ascii log/5/trace189 --trace-time http://127.0.0.1:41733/189 -C 50 -L > log/5/stdout189 2> log/5/stderr189 189: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 189 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind189 ../src/curl -q --output log/5/curl189.out --include --trace-ascii log/5/trace189 --trace-time http://127.0.0.1:41733/189 -C 50 -L > log/5/stdout189 2> log/5/stderr189 === End of file commands.log === Start of file http_server.log 10:31:05.876990 ====> Client connect 10:31:05.877506 accept_connection 3 returned 4 10:31:05.877749 accept_connection 3 returned 0 10:31:05.877909 Read 93 bytes 10:31:05.878015 Process 93 bytes request 10:31:05.878124 Got request: GET /verifiedserver HTTP/1.1 10:31:05.878223 Are-we-friendly question received 10:31:05.878576 Wrote request (93 bytes) input to log/5/server.input 10:31:05.878810 Identifying ourselves as friends 10:31:05.879617 Response sent (56 bytes) and written to log/5/server.response 10:31:05.879752 special request received, no persistency 10:31:05.879834 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 45430 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 189 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind189 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind189 test 0190...[FTP download with strict timeout and slow CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind190 ../src/curl -q --output log/8/curl190.out --include --trace-ascii log/8/trace190 --trace-time ftp://127.0.0.1:38061/path/to/file/190 -m 10 > log/8/stdout190 2> log/8/stderr190 190: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 190 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind190 ../src/curl -q --output log/8/curl190.out --include --trace-ascii log/8/trace190 --trace-time ftp://127.0.0.1:38061/path/to/file/190 -m 10 > log/8/stdout190 2> log/8/stderr190 === End of file commands.log === Start of file ftp_server.log 10:31:05.231870 ====> Client connect 10:31:05.233232 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:05.238256 < "USER anonymous" 10:31:05.238980 > "331 We are happy you popped in![CR][LF]" 10:31:05.242278 < "PASS ftp@example.com" 10:31:05.243001 > "230 Welcome you silly person[CR][LF]" 10:31:05.246990 < "PWD" 10:31:05.247683 > "257 "/" is current directory[CR][LF]" 10:31:05.251226 < "EPSV" 10:31:05.251716 ====> Passive DATA channel requested by client 10:31:05.251990 DATA sockfilt for passive data channel starting... 10:31:05.265774 DATA sockfilt for passive data channel started (pid 85113) 10:31:05.268644 DATA sockfilt for passive data channel listens on port 32869 10:31:05.269303 > "229 Entering Passive Mode (|||32869|)[LF]" 10:31:05.269751 Client has been notified that DATA conn will be accepted on port 32869 10:31:05.274194 Client connects to port 32869 10:31:05.274745 ====> Client established passive DATA connection on port 32869 10:31:05.275851 < "TYPE I" 10:31:05.276379 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:05.278577 < "SIZE verifiedserver" 10:31:05.280155 > "213 17[CR][LF]" 10:31:05.287981 < "RETR verifiedserver" 10:31:05.288580 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:05.289415 =====> Closing passive DATA connection... 10:31:05.289875 Server disconnects passive DATA connection 10:31:05.294143 Server disconnected passive DATA connection 10:31:05.294528 DATA sockfilt for passive data channel quits (pid 85113) 10:31:05.298008 DATA sockfilt for passive data channel quit (pid 85113) 10:31:05.298386 =====> Closed passive DATA connection 10:31:05.298700 > "226 File transfer complete[CR][LF]" 10:31:05.331918 < "QUIT" 10:31:05.332528 > "221 bye bye baby[CR][LF]" 10:31:05.338044 MAIN sockfilt CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind192 ../src/curl -q --include --trace-ascii log/3/trace192 --trace-time http://127.0.0.1:36933/192 -w "%{num_connects}\n" > log/3/stdout192 2> log/3/stderr192 said DISC 10:31:05.338633 ====> Client disconnected 10:31:05.339314 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:05.902125 ====> Client connect 10:31:05.905088 Received DATA (on stdin) 10:31:05.905385 > 160 bytes data, server => client 10:31:05.905520 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:05.905608 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:05.905684 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:05.907403 < 16 bytes data, client => server 10:31:05.907672 'USER anonymous\r\n' 10:31:05.910473 Received DATA (on stdin) 10:31:05.910719 > 33 bytes data, server => client 10:31:05.910827 '331 We are happy you popped in!\r\n' 10:31:05.911839 < 22 bytes data, client => server 10:31:05.912101 'PASS ftp@example.com\r\n' 10:31:05.914649 Received DATA (on stdin) 10:31:05.914965 > 30 bytes data, server => client 10:31:05.915125 '230 Welcome you silly person\r\n' 10:31:05.916364 < 5 bytes data, client => server 10:31:05.916753 'PWD\r\n' 10:31:05.919163 Received DATA (on stdin) 10:31:05.919390 > 30 bytes data, server => client 10:31:05.919550 '257 "/" is current directory\r\n' 10:31:05.920718 < 6 bytes data, client => server 10:31:05.921035 'EPSV\r\n' 10:31:05.940306 Received DATA (on stdin) 10:31:05.940636 > 38 bytes data, server => client 10:31:05.940836 '229 Entering Passive Mode (|||32869|)\n' 10:31:05.942491 < 8 bytes data, client => server 10:31:05.942781 'TYPE I\r\n' 10:31:05.947337 Received DATA (on stdin) 10:31:05.947595 > 33 bytes data, server => client 10:31:05.947723 '200 I modify TYPE as you wanted\r\n' 10:31:05.948662 < 21 bytes data, client => server 10:31:05.948818 'SIZE verifiedserver\r\n' 10:31:05.955074 Received DATA (on stdin) 10:31:05.955334 > 8 bytes data, server => client 10:31:05.955441 '213 17\r\n' 10:31:05.957810 < 21 bytes data, client => server 10:31:05.958039 'RETR verifiedserver\r\n' 10:31:05.959586 Received DATA (on stdin) 10:31:05.959816 > 29 bytes data, server => client 10:31:05.959931 '150 Binary junk (17 bytes).\r\n' 10:31:05.969689 Received DATA (on stdin) 10:31:05.969821 > 28 bytes data, server => client 10:31:05.969900 '226 File transfer complete\r\n' 10:31:06.002090 < 6 bytes data, client => server 10:31:06.002344 'QUIT\r\n' 10:31:06.003498 Received DATA (on stdin) 10:31:06.003710 > 18 bytes data, server => client 10:31:06.003818 '221 bye bye baby\r\n' 10:31:06.008544 ====> Client disconnect 10:31:06.009610 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:05.934211 Running IPv4 version 10:31:05.934884 Listening on port 32869 10:31:05.935493 Wrote pid 85113 to log/8/server/ftp_sockdata.pid 10:31:05.935724 Received PING (on stdin) 10:31:05.938873 Received PORT (on stdin) 10:31:05.944754 ====> Client connect 10:31:05.960036 Received DATA (on stdin) 10:31:05.960206 > 17 bytes data, server => client 10:31:05.960306 'WE ROOLZ: 79508\r\n' 10:31:05.961550 Received DISC (on stdin) 10:31:05.961830 ====> Client forcibly disconnected 10:31:05.965778 Received QUIT (on stdin) 10:31:05.965931 quits 10:31:05.967898 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd DELAY CWD 60 Testnum 190 === End of file server.cmd === Start of file valgrind190 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind190 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind193 ../src/curl -q --include --trace-ascii log/2/trace193 --trace-time http://127.0.0.1:43789/193 -w "%{num_connects}\n" -L > log/2/stdout193 2> log/2/stderr193 test 0192...[HTTP GET -w num_connects with one simple connect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind192 ../src/curl -q --include --trace-ascii log/3/trace192 --trace-time http://127.0.0.1:36933/192 -w "%{num_connects}\n" > log/3/stdout192 2> log/3/stderr192 192: stdout FAILED: --- log/3/check-expected 2025-09-11 10:31:06.263382935 +0000 +++ log/3/check-generated 2025-09-11 10:31:06.263382935 +0000 @@ -1,7 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 8[LF] -Connection: close[LF] -[LF] -monster[LF] -1[LF] == Contents of files in the log/3/ dir after test 192 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 8[LF] Connection: close[LF] [LF] monster[LF] 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind192 ../src/curl -q --include --trace-ascii log/3/trace192 --trace-time http://127.0.0.1:36933/192 -w "%{num_connects}\n" > log/3/stdout192 2> log/3/stderr192 === End of file commands.log === Start of file http_server.log 10:31:05.151601 ====> Client connect 10:31:05.151956 accept_connection 3 returned 4 10:31:05.152168 accept_connection 3 returned 0 10:31:05.152304 Read 93 bytes 10:31:05.152398 Process 93 bytes request 10:31:05.152611 Got request: GET /verifiedserver HTTP/1.1 10:31:05.152698 Are-we-friendly question received 10:31:05.152963 Wrote request (93 bytes) input to log/3/server.input 10:31:05.153146 Identifying ourselves as friends 10:31:05.153886 Response sent (56 bytes) and written to log/3/server.response 10:31:05.154016 special request received, no persistency 10:31:05.154089 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 35458 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 192 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind192 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind192 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind194 ../src/curl -q --output log/4/curl194.out --include --trace-ascii log/4/trace194 --trace-time http://127.0.0.1:36757/want/194 -C 87 --fail > log/4/stdout194 2> log/4/stderr194 test 0193...[HTTP GET -w num_connects with redirected fetch (2 connects)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind193 ../src/curl -q --include --trace-ascii log/2/trace193 --trace-time http://127.0.0.1:43789/193 -w "%{num_connects}\n" -L > log/2/stdout193 2> log/2/stderr193 193: stdout FAILED: --- log/2/check-expected 2025-09-11 10:31:06.407385802 +0000 +++ log/2/check-generated 2025-09-11 10:31:06.407385802 +0000 @@ -1,13 +0,0 @@ -HTTP/1.1 302 OK swsbounce swsclose[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 8[LF] -Connection: close[LF] -Location: ./193[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 8[LF] -Connection: close[LF] -[LF] -monster[LF] -2[LF] == Contents of files in the log/2/ dir after test 193 === Start of file check-expected HTTP/1.1 302 OK swsbounce swsclose[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 8[LF] Connection: close[LF] Location: ./193[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 8[LF] Connection: close[LF] [LF] monster[LF] 2[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind193 ../src/curl -q --include --trace-ascii log/2/trace193 --trace-time http://127.0.0.1:43789/193 -w "%{num_connects}\n" -L > log/2/stdout193 2> log/2/stderr193 === End of file commands.log === Start of file http_server.log 10:31:05.239264 ====> Client connect 10:31:05.239661 accept_connection 3 returned 4 10:31:05.239874 accept_connection 3 returned 0 10:31:05.245722 Read 93 bytes 10:31:05.245986 Process 93 bytes request 10:31:05.246094 Got request: GET /verifiedserver HTTP/1.1 10:31:05.246179 Are-we-friendly question received 10:31:05.246475 Wrote request (93 bytes) input to log/2/server.input 10:31:05.246713 Identifying ourselves as friends 10:31:05.247608 Response sent (56 bytes) and written to log/2/server.response 10:31:05.247811 special request received, no persistency 10:31:05.247916 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36466 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 193 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind193 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind193 test 0194...[HTTP resume transfer with the whole file already downloaded and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind194 ../src/curl -q --output log/4/curl194.out --include --trace-ascii log/4/trace194 --trace-time http://127.0.0.1:36757/want/194 -C 87 --fail > log/4/stdout194 2> log/4/stderr194 194: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 194 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind194 ../src/curl -q --output log/4/curl194.out --include --trace-ascii log/4/trace194 --trace-time http://127.0.0.1:36757/want/194 -C 87 --fail > log/4/stdout194 2> log/4/stderr194 === End of file commands.log === Start of file http_server.log 10:31:06.364386 ====> Client connect 10:31:06.364998 accept_connection 3 returned 4 10:31:06.365249 accept_connection 3 returned 0 10:31:06.365457 Read 93 bytes 10:31:06.365615 Process 93 bytes request 10:31:06.365753 Got request: GET /verifiedserver HTTP/1.1 10:31:06.365856 Are-we-friendly question received 10:31:06.366188 Wrote request (93 bytes) input to log/4/server.input 10:31:06.366499 Identifying ourselves as friends 10:31:06.367472 Response sent (56 bytes) and written to log/4/server.response 10:31:06.367651 special request received, no persistency 10:31:06.367732 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 54848 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 194 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind194 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note thatCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind195 ../src/curl -q --output log/1/curl195.out --include --trace-ascii log/1/trace195 --trace-time ftp://127.0.0.1:38733/195 > log/1/stdout195 2> log/1/stderr195 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind196 ../src/curl -q --include --trace-ascii log/6/trace196 --trace-time ftp://127.0.0.1:33323/196 --retry 1 -w '%{num_retries}\n' > log/6/stdout196 2> log/6/stderr196 if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind194 test 0195...[FTP response 530 after PASS, temporarily not allowed access] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind195 ../src/curl -q --output log/1/curl195.out --include --trace-ascii log/1/trace195 --trace-time ftp://127.0.0.1:38733/195 > log/1/stdout195 2> log/1/stderr195 195: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 195 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind195 ../src/curl -q --output log/1/curl195.out --include --trace-ascii log/1/trace195 --trace-time ftp://127.0.0.1:38733/195 > log/1/stdout195 2> log/1/stderr195 === End of file commands.log === Start of file ftp_server.log 10:31:05.843821 ====> Client connect 10:31:05.846566 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:05.851444 < "USER anonymous" 10:31:05.851986 > "331 We are happy you popped in![CR][LF]" 10:31:05.855393 < "PASS ftp@example.com" 10:31:05.856019 > "230 Welcome you silly person[CR][LF]" 10:31:05.859840 < "PWD" 10:31:05.860418 > "257 "/" is current directory[CR][LF]" 10:31:05.869677 < "EPSV" 10:31:05.870159 ====> Passive DATA channel requested by client 10:31:05.870462 DATA sockfilt for passive data channel starting... 10:31:05.881640 DATA sockfilt for passive data channel started (pid 85417) 10:31:05.883130 DATA sockfilt for passive data channel listens on port 39385 10:31:05.884690 > "229 Entering Passive Mode (|||39385|)[LF]" 10:31:05.885127 Client has been notified that DATA conn will be accepted on port 39385 10:31:05.886682 Client connects to port 39385 10:31:05.887159 ====> Client established passive DATA connection on port 39385 10:31:05.888284 < "TYPE I" 10:31:05.889328 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:05.893947 < "SIZE verifiedserver" 10:31:05.894561 > "213 17[CR][LF]" 10:31:05.896638 < "RETR verifiedserver" 10:31:05.897055 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:05.897901 =====> Closing passive DATA connection... 10:31:05.898216 Server disconnects passive DATA connection 10:31:05.900447 Server disconnected passive DATA connection 10:31:05.900828 DATA sockfilt for passive data channel quits (pid 85417) 10:31:05.902689 DATA sockfilt for passive data channel quit (pid 85417) 10:31:05.903085 =====> Closed passive DATA connection 10:31:05.903501 > "226 File transfer complete[CR][LF]" 10:31:05.946248 < "QUIT" 10:31:05.947133 > "221 bye bye baby[CR][LF]" 10:31:05.949432 MAIN sockfilt said DISC 10:31:05.951209 ====> Client disconnected 10:31:05.952177 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:05.514115 ====> Client connect 10:31:05.516187 Received DATA (on stdin) 10:31:05.516531 > 160 bytes data, server => client 10:31:05.516792 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:05.516925 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:05.517003 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:05.521048 < 16 bytes data, client => server 10:31:05.521290 'USER anonymous\r\n' 10:31:05.523372 Received DATA (on stdin) 10:31:05.523627 > 33 bytes data, server => client 10:31:05.523764 '331 We are happy you popped in!\r\n' 10:31:05.524946 < 22 bytes data, client => server 10:31:05.525241 'PASS ftp@example.com\r\n' 10:31:05.527502 Received DATA (on stdin) 10:31:05.527737 > 30 bytes data, server => client 10:31:05.527838 '230 Welcome you silly person\r\n' 10:31:05.529583 < 5 bytes data, client => server 10:31:05.529800 'PWD\r\n' 10:31:05.531816 Received DATA (on stdin) 10:31:05.532025 > 30 bytes data, server => client 10:31:05.532131 '257 "/" is current directory\r\n' 10:31:05.539112 < 6 bytes data, client => server 10:31:05.539624 'EPSV\r\n' 10:31:05.554709 Received DATA (on stdin) 10:31:05.554909 > 38 bytes data, server => client 10:31:05.555105 '229 Entering Passive Mode (|||39385|)\n' 10:31:05.557143 < 8 bytes data, client => server 10:31:05.557350 'TYPE I\r\n' 10:31:05.559805 Received DATA (on stdin) 10:31:05.560005 > 33 bytes data, server => client 10:31:05.560837 '200 I modify TYPE as you wanted\r\n' 10:31:05.563407 < 21 bytes data, client => server 10:31:05.563636 'SIZE verifiedserver\r\n' 10:31:05.565845 Received DATA (on stdin) 10:31:05.566011 > 8 bytes data, server => client 10:31:05.566087 '213 17\r\n' 10:31:05.566763 < 21 bytes data, client => server 10:31:05.566915 'RETR verifiedserver\r\n' 10:31:05.569508 Received DATA (on stdin) 10:31:05.569706 > 29 bytes data, server => client 10:31:05.569798 '150 Binary junk (17 bytes).\r\n' 10:31:05.574864 Received DATA (on stdin) 10:31:05.575093 > 28 bytes data, server => client 10:31:05.575207 '226 File transfer complete\r\n' 10:31:05.615234 < 6 bytes data, client => server 10:31:05.615625 'QUIT\r\n' 10:31:05.618750 Received DATA (on stdin) 10:31:05.618999 > 18 bytes data, server => client 10:31:05.619120 '221 bye bye baby\r\n' 10:31:05.619892 ====> Client disconnect 10:31:05.621341 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:05.551065 Running IPv4 version 10:31:05.551629 Listening on port 39385 10:31:05.552015 Wrote pid 85417 to log/1/server/ftp_sockdata.pid 10:31:05.552184 Received PING (on stdin) 10:31:05.553328 Received PORT (on stdin) 10:31:05.556732 ====> Client connect 10:31:05.570189 Received DATA (on stdin) 10:31:05.570364 > 17 bytes data, server => client 10:31:05.570446 'WE ROOLZ: 79585\r\n' 10:31:05.570711 Received DISC (on stdin) 10:31:05.570917 ====> Client forcibly disconnected 10:31:05.572056 Received QUIT (on stdin) 10:31:05.572198 quits 10:31:05.572687 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 530 temporarily not available Testnum 195 === End of file server.cmd === Start of file valgrind195 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind195 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind198 ../src/curl -q --output log/5/curl198.out --include --trace-ascii log/5/trace198 --trace-time http://127.0.0.1:41733/198 --retry 1000 > log/5/stdout198 2> log/5/stderr198 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind199 ../src/curl -q --output log/8/curl199.out --include --trace-ascii log/8/trace199 --trace-time -d "foo=moo&moo=poo" "http://127.0.0.1:36007/{199,199}" -G > log/8/stdout199 2> log/8/stderr199 test 0196...[FTP transient error, retry request once] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind196 ../src/curl -q --include --trace-ascii log/6/trace196 --trace-time ftp://127.0.0.1:33323/196 --retry 1 -w '%{num_retries}\n' > log/6/stdout196 2> log/6/stderr196 196: stdout FAILED: --- log/6/check-expected 2025-09-11 10:31:07.031398223 +0000 +++ log/6/check-generated 2025-09-11 10:31:07.031398223 +0000 @@ -1 +0,0 @@ -1[LF] == Contents of files in the log/6/ dir after test 196 === Start of file check-expected 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind196 ../src/curl -q --include --trace-ascii log/6/trace196 --trace-time ftp://127.0.0.1:33323/196 --retry 1 -w '%{num_retries}\n' > log/6/stdout196 2> log/6/stderr196 === End of file commands.log === Start of file ftp_server.log 10:31:06.051194 ====> Client connect 10:31:06.053654 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:06.055810 < "USER anonymous" 10:31:06.056329 > "331 We are happy you popped in![CR][LF]" 10:31:06.058726 < "PASS ftp@example.com" 10:31:06.059201 > "230 Welcome you silly person[CR][LF]" 10:31:06.061358 < "PWD" 10:31:06.062041 > "257 "/" is current directory[CR][LF]" 10:31:06.064658 < "EPSV" 10:31:06.065229 ====> Passive DATA channel requested by client 10:31:06.065607 DATA sockfilt for passive data channel starting... 10:31:06.092236 DATA sockfilt for passive data channel started (pid 85489) 10:31:06.094721 DATA sockfilt for passive data channel listens on port 38885 10:31:06.095230 > "229 Entering Passive Mode (|||38885|)[LF]" 10:31:06.095518 Client has been notified that DATA conn will be accepted on port 38885 10:31:06.105724 Client connects to port 38885 10:31:06.106862 ====> Client established passive DATA connection on port 38885 10:31:06.107863 < "TYPE I" 10:31:06.108389 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:06.115477 < "SIZE verifiedserver" 10:31:06.116168 > "213 17[CR][LF]" 10:31:06.120398 < "RETR verifiedserver" 10:31:06.121636 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:06.124569 =====> Closing passive DATA connection... 10:31:06.124841 Server disconnects passive DATA connection 10:31:06.125417 Fancy that; client wants to DISC, too 10:31:06.126040 Server disconnected passive DATA connection 10:31:06.126451 DATA sockfilt for passive data channel quits (pid 85489) 10:31:06.129295 DATA sockfilt for passive data channel quit (pid 85489) 10:31:06.130060 =====> Closed passive DATA connection 10:31:06.130707 > "226 File transfer complete[CR][LF]" 10:31:06.178476 < "QUIT" 10:31:06.179076 > "221 bye bye baby[CR][LF]" 10:31:06.180941 MAIN sockfilt said DISC 10:31:06.181377 ====> Client disconnected 10:31:06.182079 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:06.721457 ====> Client connect 10:31:06.723473 Received DATA (on stdin) 10:31:06.723701 > 160 bytes data, server => client 10:31:06.723891 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:06.723986 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:06.724060 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:06.725679 < 16 bytes data, client => server 10:31:06.725914 'USER anonymous\r\n' 10:31:06.727623 Received DATA (on stdin) 10:31:06.727812 > 33 bytes data, server => client 10:31:06.727909 '331 We are happy you popped in!\r\n' 10:31:06.728615 < 22 bytes data, client => server 10:31:06.728841 'PASS ftp@example.com\r\n' 10:31:06.730504 Received DATA (on stdin) 10:31:06.730667 > 30 bytes data, server => client 10:31:06.730751 '230 Welcome you silly person\r\n' 10:31:06.731407 < 5 bytes data, client => server 10:31:06.731549 'PWD\r\n' 10:31:06.733433 Received DATA (on stdin) 10:31:06.733619 > 30 bytes data, server => client 10:31:06.733706 '257 "/" is current directory\r\n' 10:31:06.734425 < 6 bytes data, client => server 10:31:06.734659 'EPSV\r\n' 10:31:06.767314 Received DATA (on stdin) 10:31:06.767548 > 38 bytes data, server => client 10:31:06.767680 '229 Entering Passive Mode (|||38885|)\n' 10:31:06.773356 < 8 bytes data, client => server 10:31:06.773576 'TYPE I\r\n' 10:31:06.779358 Received DATA (on stdin) 10:31:06.779577 > 33 bytes data, server => client 10:31:06.779685 '200 I modify TYPE as you wanted\r\n' 10:31:06.785168 < 21 bytes data, client => server 10:31:06.785437 'SIZE verifiedserver\r\n' 10:31:06.788628 Received DATA (on stdin) 10:31:06.788909 > 8 bytes data, server => client 10:31:06.789018 '213 17\r\n' 10:31:06.789906 < 21 bytes data, client => server 10:31:06.790141 'RETR verifiedserver\r\n' 10:31:06.791957 Received DATA (on stdin) 10:31:06.792196 > 29 bytes data, server => client 10:31:06.793532 '150 Binary junk (17 bytes).\r\n' 10:31:06.802354 Received DATA (on stdin) 10:31:06.802652 > 28 bytes data, server => client 10:31:06.802803 '226 File transfer complete\r\n' 10:31:06.844713 < 6 bytes data, client => server 10:31:06.844972 'QUIT\r\n' 10:31:06.850529 Received DATA (on stdin) 10:31:06.850767 > 18 bytes data, server => client 10:31:06.850865 '221 bye bye baby\r\n' 10:31:06.851512 ====> Client disconnect 10:31:06.853474 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:06.761549 Running IPv4 version 10:31:06.762084 Listening on port 38885 10:31:06.762564 Wrote pid 85489 to log/6/server/ftp_sockdata.pid 10:31:06.762786 Received PING (on stdin) 10:31:06.763915 Received PORT (on stdin) 10:31:06.772898 ====> Client connect 10:31:06.793146 Received DATA (on stdin) 10:31:06.793350 > 17 bytes data, server => client 10:31:06.794100 'WE ROOLZ: 79480\r\n' 10:31:06.794944 ====> Client disconnect 10:31:06.796016 Received DISC (on stdin) 10:31:06.796162 Crikey! Client also wants to disconnect 10:31:06.797838 Received ACKD (on stdin) 10:31:06.798427 Received QUIT (on stdin) 10:31:06.798649 quits 10:31:06.799235 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 430 temporarily not available Testnum 196 === End of file server.cmd === Start of file valgrind196 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind196 test 0198...[HTTP GET --retry on 503 error with output to file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/buCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind197 ../src/curl -q --include --trace-ascii log/7/trace197 --trace-time http://127.0.0.1:40129/197 --retry 1000 > log/7/stdout197 2> log/7/stderr197 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind200 ../src/curl -q --output log/3/curl200.out --trace-ascii log/3/trace200 --trace-time file://localhost/build/curl/src/build-curl/tests/log/3/test200.txt > log/3/stdout200 2> log/3/stderr200 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind201 ../src/curl -q --output log/2/curl201.out --include --trace-ascii log/2/trace201 --trace-time file://localhost//build/curl/src/build-curl/tests/log/2/non-existent-file.txt > log/2/stdout201 2> log/2/stderr201 ild/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind198 ../src/curl -q --output log/5/curl198.out --include --trace-ascii log/5/trace198 --trace-time http://127.0.0.1:41733/198 --retry 1000 > log/5/stdout198 2> log/5/stderr198 198: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 198 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind198 ../src/curl -q --output log/5/curl198.out --include --trace-ascii log/5/trace198 --trace-time http://127.0.0.1:41733/198 --retry 1000 > log/5/stdout198 2> log/5/stderr198 === End of file commands.log === Start of file http_server.log 10:31:06.971041 ====> Client connect 10:31:06.971448 accept_connection 3 returned 4 10:31:06.971667 accept_connection 3 returned 0 10:31:06.971831 Read 93 bytes 10:31:06.971936 Process 93 bytes request 10:31:06.972034 Got request: GET /verifiedserver HTTP/1.1 10:31:06.972117 Are-we-friendly question received 10:31:06.972371 Wrote request (93 bytes) input to log/5/server.input 10:31:06.972707 Identifying ourselves as friends 10:31:06.973520 Response sent (56 bytes) and written to log/5/server.response 10:31:06.973648 special request received, no persistency 10:31:06.973717 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 45440 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 198 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind198 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind198 test 0200...[basic file:// file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind200 ../src/curl -q --output log/3/curl200.out --trace-ascii log/3/trace200 --trace-time file://localhost/build/curl/src/build-curl/tests/log/3/test200.txt > log/3/stdout200 2> log/3/stderr200 200: data FAILED: --- log/3/check-expected 2025-09-11 10:31:07.155400691 +0000 +++ log/3/check-generated 2025-09-11 10:31:07.155400691 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/3/ dir after test 200 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind200 ../src/curl -q --output log/3/curl200.out --trace-ascii log/3/trace200 --trace-time file://localhost/build/curl/src/build-curl/tests/log/3/test200.txt > log/3/stdout200 2> log/3/stderr200 === End of file commands.log === Start of file server.cmd Testnum 200 === End of file server.cmd === Start of file test200.txt foo bar bar foo moo === End of file test200.txt === Start of file valgrind200 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind200 test 0197...[HTTP GET --retry on 503 error with output to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind197 ../src/curl -q --include --trace-ascii log/7/trace197 --trace-time http://127.0.0.1:40129/197 --retry 1000 > log/7/stdout197 2> log/7/stderr197 197: stdout FAILED: --- log/7/check-expected 2025-09-11 10:31:07.191401408 +0000 +++ log/7/check-generated 2025-09-11 10:31:07.191401408 +0000 @@ -1,11 +0,0 @@ -HTTP/1.1 503 BAD swsbounce[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 21[LF] -[LF] -server not available[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Connection: close[LF] -[LF] -ok[LF] == Contents of files in the log/7/ dir after test 197 === Start of file check-expected HTTP/1.1 503 BAD swsbounce[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 21[LF] [LF] server not available[LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Connection: close[LF] [LF] ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind197 ../src/curl -q --include --trace-ascii log/7/trace197 --trace-time http://127.0.0.1:40129/197 --retry 1000 > log/7/stdout197 2> log/7/stderr197 === End of file commands.log === Start of file http_server.log 10:31:05.926174 ====> Client connect 10:31:05.926542 accept_connection 3 returned 4 10:31:05.926779 accept_connection 3 returned 0 10:31:05.928177 Read 93 bytes 10:31:05.928379 Process 93 bytes request 10:31:05.929270 Got request: GET /verifiedserver HTTP/1.1 10:31:05.929425 Are-we-friendly question received 10:31:05.929751 Wrote request (93 bytes) input to log/7/server.input 10:31:05.930011 Identifying ourselves as friends 10:31:05.931323 Response sent (56 bytes) and written to log/7/server.response 10:31:05.931506 special request received, no persistency 10:31:05.931607 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 50820 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 197 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind197 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind197 test 0199...[HTTP with -d, -G and {}] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind199 ../src/curl -q --output log/8/curl199.out --include --trace-ascii log/8/trace199 --trace-time -d "foo=moo&moo=poo" "http://127.0.0.1:36007/{199,199}" -G > log/8/stdout199 2> log/8/stderr199 199: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 199 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind199 ../src/curl -q --output log/8/curl199.out --include --trace-ascii log/8/trace199 --trace-time -d "foo=moo&moo=poo" "http://127.0.0.1:36007/{199,199}" -G > log/8/stdout199 2> log/8/stderr199 === End of file commands.log === Start of file http_server.log 10:31:06.032692 ====> Client connect 10:31:06.033047 accept_connection 3 returned 4 10:31:06.033240 accept_connection 3 returned 0 10:31:06.033363 Read 93 bytes 10:31:06.033441 Process 93 bytes request 10:31:06.033519 Got request: GET /verifiedserver HTTP/1.1 10:31:06.033586 Are-we-friendly question received 10:31:06.033799 Wrote request (93 bytes) input to log/8/server.input 10:31:06.033976 Identifying ourselves as friends 10:31:06.034640 Response sent (56 bytes) and written to log/8/server.response 10:31:06.034785 special request received, no persistency 10:31:06.034854 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 42828 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 199 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind199 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind202 ../src/curl -q --trace-ascii log/4/trace202 --trace-time file://localhost/build/curl/src/build-curl/tests/log/4/test202.txt FILE://localhost/build/curl/src/build-curl/tests/log/4/test202.txt > log/4/stdout202 2> log/4/stderr202 : package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind199 test 0201...[missing file:// file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind201 ../src/curl -q --output log/2/curl201.out --include --trace-ascii log/2/trace201 --trace-time file://localhost//build/curl/src/build-curl/tests/log/2/non-existent-file.txt > log/2/stdout201 2> log/2/stderr201 curl returned 1, when expecting 37 201: exit FAILED == Contents of files in the log/2/ dir after test 201 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind201 ../src/curl -q --output log/2/curl201.out --include --trace-ascii log/2/trace201 --trace-time file://localhost//build/curl/src/build-curl/tests/log/2/non-existent-file.txt > log/2/stdout201 2> log/2/stderr201 === End of file commands.log === Start of file server.cmd Testnum 201 === End of file server.cmd === Start of file valgrind201 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind201 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind203 ../src/curl -q --output log/1/curl203.out --trace-ascii log/1/trace203 --trace-time file:/build/curl/src/build-curl/tests/log/1/test203.txt > log/1/stdout203 2> log/1/stderr203 test 0202...[two file:// URLs to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind202 ../src/curl -q --trace-ascii log/4/trace202 --trace-time file://localhost/build/curl/src/build-curl/tests/log/4/test202.txt FILE://localhost/build/curl/src/build-curl/tests/log/4/test202.txt > log/4/stdout202 2> log/4/stderr202 202: stdout FAILED: --- log/4/check-expected 2025-09-11 10:31:07.291403399 +0000 +++ log/4/check-generated 2025-09-11 10:31:07.291403399 +0000 @@ -1,2 +0,0 @@ -contents in a single file[LF] -contents in a single file[LF] == Contents of files in the log/4/ dir after test 202 === Start of file check-expected contents in a single file[LF] contents in a single file[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind202 ../src/curl -q --trace-ascii log/4/trace202 --trace-time file://localhost/build/curl/src/build-curl/tests/log/4/test202.txt FILE://localhost/build/curl/src/build-curl/tests/log/4/test202.txt > log/4/stdout202 2> log/4/stderr202 === End of file commands.log === Start of file server.cmd Testnum 202 === End of file server.cmd === Start of file test202.txt contents in a single file === End of file test202.txt === Start of file valgrind202 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind202 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind204 ../src/curl -q --output log/6/curl204.out --trace-ascii log/6/trace204 --trace-time file://localhost/build/curl/src/build-curl/tests/log/6/result204.txt -T log/6/upload204.txt > log/6/stdout204 2> log/6/stderr204 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind205 ../src/curl -q --output log/5/curl205.out --trace-ascii log/5/trace205 --trace-time file://localhost//build/curl/src/build-curl/tests/log/5/nonexisting/result205.txt -T log/5/upload205.txt > log/5/stdout205 2> log/5/stderr205 setenv MSYS2_ARG_CONV_EXCL = file: test 0203...[file:/path URL with a single slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind203 ../src/curl -q --output log/1/curl203.out --trace-ascii log/1/trace203 --trace-time file:/build/curl/src/build-curl/tests/log/1/test203.txt > log/1/stdout203 2> log/1/stderr203 203: data FAILED: --- log/1/check-expected 2025-09-11 10:31:07.451406584 +0000 +++ log/1/check-generated 2025-09-11 10:31:07.451406584 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/1/ dir after test 203 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind203 ../src/curl -q --output log/1/curl203.out --trace-ascii log/1/trace203 --trace-time file:/build/curl/src/build-curl/tests/log/1/test203.txt > log/1/stdout203 2> log/1/stderr203 === End of file commands.log === Start of file server.cmd Testnum 203 === End of file server.cmd === Start of file test203.txt foo bar bar foo moo === End of file test203.txt === Start of file valgrind203 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind203 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind207 ../src/curl -q --output log/2/curl207.out --include --trace-ascii log/2/trace207 --trace-time http://127.0.0.1:43789/207 > log/2/stdout207 2> log/2/stderr207 test 0204...["upload" with file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind204 ../src/curl -q --output log/6/curl204.out --trace-ascii log/6/trace204 --trace-time file://localhost/build/curl/src/build-curl/tests/log/6/result204.txt -T log/6/upload204.txt > log/6/stdout204 2> log/6/stderr204 204: output (log/6/result204.txt) FAILED: --- log/6/check-expected 2025-09-11 10:31:07.891415342 +0000 +++ log/6/check-generated 2025-09-11 10:31:07.891415342 +0000 @@ -1,5 +0,0 @@ -data[LF] -in[LF] -file[LF] -to[LF] -write[LF] == Contents of files in the log/6/ dir after test 204 === Start of file check-expected data[LF] in[LF] file[LF] to[LF] write[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind204 ../src/curl -q --output log/6/curl204.out --trace-ascii log/6/trace204 --trace-time file://localhost/build/curl/src/build-curl/tests/log/6/result204.txt -T log/6/upload204.txt > log/6/stdout204 2> log/6/stderr204 === End of file commands.log === Start of file server.cmd Testnum 204 === End of file server.cmd === Start of file upload204.txt data in file to write === End of file upload204.txt === Start of file valgrind204 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind204 test 0205...["upload" nonexisting with file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind205 ../src/curl -q --output log/5/curl205.out --trace-ascii log/5/trace205 --trace-time file://localhost//build/curl/src/build-curl/tests/log/5/nonexisting/result205.txt -T log/5/upload205.txt > log/5/stdout205 2> log/5/stderr205 curl returned 1, when expecting 23 205: exit FAILED == Contents of files in the log/5/ dir after test 205 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind205 ../src/curl -q --output log/5/curl205.out --trace-ascii log/5/trace205 --trace-time file://localhost//build/curl/src/build-curl/tests/log/5/nonexisting/result205.txt -T log/5/upload205.txt > log/5/stdout205 2> log/5/stderr205 === End of file commands.log === Start of file server.cmd Testnum 205 === End of file server.cmd === Start of file upload205.txt data in file to write === End of file upload205.txt === Start of file valgrind205 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind205 test 0207...[HTTP GET with chunked Transfer-Encoding closed prematurely] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind207 ../src/curl -q --output log/2/curl207.out --include --trace-ascii log/2/trace207 --trace-time http://127.0.0.1:43789/207 > log/2/stdout207 2> log/2/stderr207 207: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 207 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind207 ../src/curl -q --output log/2/curl207.out --include --trace-ascii log/2/trace207 --trace-time http://127.0.0.1:43789/207 > log/2/stdout207 2> log/2/stderr207 === End of file commands.log === Start of file http_server.log 10:31:07.074450 ====> Client connect 10:31:07.074837 accept_connection 3 returned 4 10:31:07.075144 accept_connection 3 returned 0 10:31:07.075352 Read 93 bytes 10:31:07.075470 Process 93 bytes request 10:31:07.075572 Got request: GET /verifiedserver HTTP/1.1 10:31:07.075661 Are-we-friendly question received 10:31:07.076010 Wrote request (93 bytes) input to log/2/server.input 10:31:07.076230 Identifying ourselves as friends 10:31:07.077079 Response sent (56 bytes) and written to log/2/server.response 10:31:07.077230 special request received, no persistency 10:31:07.077291 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36468 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 207 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind207 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind208 ../src/curl -q --output log/4/curl208.out --include --trace-ascii log/4/trace208 --trace-time -x http://127.0.0.1:36757 ftp://daniel:mysecret@host.com/we/want/208 -T log/4/test208.txt > log/4/stdout208 2> log/4/stderr208 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind206 ../src/curl -q --output log/8/curl206.out --include --trace-ascii log/8/trace206 --trace-time http://test.remote.haxx.se.206:8990/path/2060002 --proxy=http://127.0.0.1:36007 --proxy-user=silly:person --proxy-digest --proxytunnel > log/8/stdout206 2> log/8/stderr206 valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind207 test 0208...[HTTP PUT to an FTP URL with username+password - over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind208 ../src/curl -q --output log/4/curl208.out --include --trace-ascii log/4/trace208 --trace-time -x http://127.0.0.1:36757 ftp://daniel:mysecret@host.com/we/want/208 -T log/4/test208.txt > log/4/stdout208 2> log/4/stderr208 208: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 208 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind208 ../src/curl -q --output log/4/curl208.out --include --trace-ascii log/4/trace208 --trace-time -x http://127.0.0.1:36757 ftp://daniel:mysecret@host.com/we/want/208 -T log/4/test208.txt > log/4/stdout208 2> log/4/stderr208 === End of file commands.log === Start of file http_server.log 10:31:08.128860 ====> Client connect 10:31:08.129249 accept_connection 3 returned 4 10:31:08.129477 accept_connection 3 returned 0 10:31:08.129619 Read 93 bytes 10:31:08.129718 Process 93 bytes request 10:31:08.129814 Got request: GET /verifiedserver HTTP/1.1 10:31:08.129915 Are-we-friendly question received 10:31:08.130204 Wrote request (93 bytes) input to log/4/server.input 10:31:08.130430 Identifying ourselves as friends 10:31:08.131251 Response sent (56 bytes) and written to log/4/server.response 10:31:08.131413 special request received, no persistency 10:31:08.131492 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 54856 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 208 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file test208.txt Weird file to upload for testing the PUT feature === End of file test208.txt === Start of file valgrind208 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind208 test 0206...[HTTP proxy CONNECT auth Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind206 ../src/curl -q --output log/8/curl206.out --include --trace-ascii log/8/trace206 --trace-time http://test.remote.haxx.se.206:8990/path/2060002 --proxy=http://127.0.0.1:36007 --proxy-user=silly:person --proxy-digest --proxytunnel > log/8/stdout206 2> log/8/stderr206 206: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 206 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind206 ../src/curl -q --output log/8/curl206.out --include --trace-ascii log/8/trace206 --trace-time http://test.remote.haxx.se.206:8990/path/2060002 --proxy=http://127.0.0.1:36007 --proxy-user=silly:person --proxy-digest --proxytunnel > log/8/stdout206 2> log/8/stderr206 === End of file commands.log === Start of file http_server.log 10:31:07.062925 ====> Client connect 10:31:07.063231 accept_connection 3 returned 4 10:31:07.063407 accept_connection 3 returned 0 10:31:07.063530 Read 93 bytes 10:31:07.063618 Process 93 bytes request 10:31:07.063709 Got request: GET /verifiedserver HTTP/1.1 10:31:07.063796 Are-we-friendly question received 10:31:07.064050 Wrote request (93 bytes) input to log/8/server.input 10:31:07.064262 Identifying ourselves as friends 10:31:07.065137 Response sent (56 bytes) and written to log/8/server.response 10:31:07.065300 special request received, no persistency 10:31:07.065372 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 42838 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd connection-monitor auth_required Testnum 206 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind206 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. DetaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind209 ../src/curl -q --output log/7/curl209.out --include --trace-ascii log/7/trace209 --trace-time http://test.remote.example.com.209:40129/path/2090002 --proxy http://127.0.0.1:40129 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/7/stdout209 2> log/7/stderr209 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind210 ../src/curl -q --output log/1/curl210.out --trace-ascii log/1/trace210 --trace-time ftp://127.0.0.1:38733/a/path/210 ftp://127.0.0.1:38733/a/path/210 > log/1/stdout210 2> log/1/stderr210 ils of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind206 test 0210...[Get two FTP files from the same remote dir: no second CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind210 ../src/curl -q --output log/1/curl210.out --trace-ascii log/1/trace210 --trace-time ftp://127.0.0.1:38733/a/path/210 ftp://127.0.0.1:38733/a/path/210 > log/1/stdout210 2> log/1/stderr210 210: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 210 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind210 ../src/curl -q --output log/1/curl210.out --trace-ascii log/1/trace210 --trace-time ftp://127.0.0.1:38733/a/path/210 ftp://127.0.0.1:38733/a/path/210 > log/1/stdout210 2> log/1/stderr210 === End of file commands.log === Start of file ftp_server.log 10:31:07.648542 ====> Client connect 10:31:07.650756 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:07.656300 < "USER anonymous" 10:31:07.656853 > "331 We are happy you popped in![CR][LF]" 10:31:07.659711 < "PASS ftp@example.com" 10:31:07.660171 > "230 Welcome you silly person[CR][LF]" 10:31:07.662658 < "PWD" 10:31:07.663690 > "257 "/" is current directory[CR][LF]" 10:31:07.666192 < "EPSV" 10:31:07.666609 ====> Passive DATA channel requested by client 10:31:07.666858 DATA sockfilt for passive data channel starting... 10:31:07.682883 DATA sockfilt for passive data channel started (pid 86234) 10:31:07.684776 DATA sockfilt for passive data channel listens on port 41995 10:31:07.685407 > "229 Entering Passive Mode (|||41995|)[LF]" 10:31:07.685876 Client has been notified that DATA conn will be accepted on port 41995 10:31:07.690982 Client connects to port 41995 10:31:07.691415 ====> Client established passive DATA connection on port 41995 10:31:07.692502 < "TYPE I" 10:31:07.693080 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:07.696753 < "SIZE verifiedserver" 10:31:07.697255 > "213 17[CR][LF]" 10:31:07.700647 < "RETR verifiedserver" 10:31:07.701116 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:07.702039 =====> Closing passive DATA connection... 10:31:07.702388 Server disconnects passive DATA connection 10:31:07.704227 Server disconnected passive DATA connection 10:31:07.704657 DATA sockfilt for passive data channel quits (pid 86234) 10:31:07.706710 DATA sockfilt for passive data channel quit (pid 86234) 10:31:07.707099 =====> Closed passive DATA connection 10:31:07.707475 > "226 File transfer complete[CR][LF]" 10:31:07.747371 < "QUIT" 10:31:07.747982 > "221 bye bye baby[CR][LF]" 10:31:07.752499 MAIN sockfilt said DISC 10:31:07.753042 ====> Client disconnected 10:31:07.753813 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:07.315380 ====> Client connect 10:31:07.324083 Received DATA (on stdin) 10:31:07.324341 > 160 bytes data, server => client 10:31:07.325050 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:07.325168 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:07.325244 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:07.326199 < 16 bytes data, client => server 10:31:07.326382 'USER anonymous\r\n' 10:31:07.328216 Received DATA (on stdin) 10:31:07.328519 > 33 bytes data, server => client 10:31:07.328649 '331 We are happy you popped in!\r\n' 10:31:07.329484 < 22 bytes data, client => server 10:31:07.329683 'PASS ftp@example.com\r\n' 10:31:07.331478 Received DATA (on stdin) 10:31:07.331653 > 30 bytes data, server => client 10:31:07.331739 '230 Welcome you silly person\r\n' 10:31:07.332569 < 5 bytes data, client => server 10:31:07.332740 'PWD\r\n' 10:31:07.334121 Received DATA (on stdin) 10:31:07.334346 > 30 bytes data, server => client 10:31:07.335049 '257 "/" is current directory\r\n' 10:31:07.336025 < 6 bytes data, client => server 10:31:07.336255 'EPSV\r\n' 10:31:07.356708 Received DATA (on stdin) 10:31:07.356887 > 38 bytes data, server => client 10:31:07.356995 '229 Entering Passive Mode (|||41995|)\n' 10:31:07.361705 < 8 bytes data, client => server 10:31:07.361928 'TYPE I\r\n' 10:31:07.364011 Received DATA (on stdin) 10:31:07.364235 > 33 bytes data, server => client 10:31:07.364347 '200 I modify TYPE as you wanted\r\n' 10:31:07.365785 < 21 bytes data, client => server 10:31:07.365935 'SIZE verifiedserver\r\n' 10:31:07.368867 Received DATA (on stdin) 10:31:07.369111 > 8 bytes data, server => client 10:31:07.369223 '213 17\r\n' 10:31:07.369889 < 21 bytes data, client => server 10:31:07.370121 'RETR verifiedserver\r\n' 10:31:07.372616 Received DATA (on stdin) 10:31:07.372845 > 29 bytes data, server => client 10:31:07.372985 '150 Binary junk (17 bytes).\r\n' 10:31:07.379576 Received DATA (on stdin) 10:31:07.379733 > 28 bytes data, server => client 10:31:07.379821 '226 File transfer complete\r\n' 10:31:07.417516 < 6 bytes data, client => server 10:31:07.417826 'QUIT\r\n' 10:31:07.418961 Received DATA (on stdin) 10:31:07.419220 > 18 bytes data, server => client 10:31:07.419333 '221 bye bye baby\r\n' 10:31:07.422767 ====> Client disconnect 10:31:07.425360 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:07.347283 Running IPv4 version 10:31:07.347959 Listening on port 41995 10:31:07.351813 Wrote pid 86234 to log/1/server/ftp_sockdata.pid 10:31:07.352093 Received PING (on stdin) 10:31:07.354417 Received PORT (on stdin) 10:31:07.361371 ====> Client connect 10:31:07.373697 Received DATA (on stdin) 10:31:07.373964 > 17 bytes data, server => client 10:31:07.374078 'WE ROOLZ: 79585\r\n' 10:31:07.374470 Received DISC (on stdin) 10:31:07.374652 ====> Client forcibly disconnected 10:31:07.375903 Received QUIT (on stdin) 10:31:07.376084 quits 10:31:07.376605 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 210 === End of file server.cmd === Start of file valgrind210 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, shorCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind211 ../src/curl -q --output log/3/curl211.out --include --trace-ascii log/3/trace211 --trace-time ftp://127.0.0.1:33831/a/path/211 ftp://127.0.0.1:33831/a/path/211 > log/3/stdout211 2> log/3/stderr211 t term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind210 test 0209...[HTTP proxy CONNECT auth NTLM] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind209 ../src/curl -q --output log/7/curl209.out --include --trace-ascii log/7/trace209 --trace-time http://test.remote.example.com.209:40129/path/2090002 --proxy http://127.0.0.1:40129 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/7/stdout209 2> log/7/stderr209 209: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 209 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind209 ../src/curl -q --output log/7/curl209.out --include --trace-ascii log/7/trace209 --trace-time http://test.remote.example.com.209:40129/path/2090002 --proxy http://127.0.0.1:40129 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/7/stdout209 2> log/7/stderr209 === End of file commands.log === Start of file http_server.log 10:31:07.253874 ====> Client connect 10:31:07.254165 accept_connection 3 returned 4 10:31:07.254328 accept_connection 3 returned 0 10:31:07.254451 Read 93 bytes 10:31:07.254530 Process 93 bytes request 10:31:07.254607 Got request: GET /verifiedserver HTTP/1.1 10:31:07.254672 Are-we-friendly question received 10:31:07.254869 Wrote request (93 bytes) input to log/7/server.input 10:31:07.255022 Identifying ourselves as friends 10:31:07.255644 Response sent (56 bytes) and written to log/7/server.response 10:31:07.255770 special request received, no persistency 10:31:07.255848 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 50830 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 209 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind209 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind209 test 0211...[Get two FTP files with no remote EPSV support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind211 ../src/curl -q --output log/3/curl211.out --include --trace-ascii log/3/trace211 --trace-time ftp://127.0.0.1:33831/a/path/211 ftp://127.0.0.1:33831/a/path/211 > log/3/stdout211 2> log/3/stderr211 211: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 211 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind211 ../src/curl -q --output log/3/curl211.out --include --trace-ascii log/3/trace211 --trace-time ftp://127.0.0.1:33831/a/path/211 ftp://127.0.0.1:33831/a/path/211 > log/3/stdout211 2> log/3/stderr211 === End of file commands.log === Start of file ftp_server.log 10:31:07.688022 ====> Client connect 10:31:07.689154 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:07.694195 < "USER anonymous" 10:31:07.694776 > "331 We are happy you popped in![CR][LF]" 10:31:07.700445 < "PASS ftp@example.com" 10:31:07.700876 > "230 Welcome you silly person[CR][LF]" 10:31:07.703810 < "PWD" 10:31:07.704348 > "257 "/" is current directory[CR][LF]" 10:31:07.709777 < "EPSV" 10:31:07.710249 ====> Passive DATA channel requested by client 10:31:07.710535 DATA sockfilt for passive data channel starting... 10:31:07.723202 DATA sockfilt for passive data channel started (pid 86260) 10:31:07.727425 DATA sockfilt for passive data channel listens on port 41875 10:31:07.728205 > "229 Entering Passive Mode (|||41875|)[LF]" 10:31:07.728600 Client has been notified that DATA conn will be accepted on port 41875 10:31:07.733636 Client connects to port 41875 10:31:07.734148 ====> Client established passive DATA connection on port 41875 10:31:07.735065 < "TYPE I" 10:31:07.735528 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:07.741131 < "SIZE verifiedserver" 10:31:07.741959 > "213 17[CR][LF]" 10:31:07.747371 < "RETR verifiedserver" 10:31:07.747993 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:07.748992 =====> Closing passive DATA connection... 10:31:07.749402 Server disconnects passive DATA connection 10:31:07.751249 Server disconnected passive DATA connection 10:31:07.751882 DATA sockfilt for passive data channel quits (pid 86260) 10:31:07.754765 DATA sockfilt for passive data channel quit (pid 86260) 10:31:07.755292 =====> Closed passive DATA connection 10:31:07.755887 > "226 File transfer complete[CR][LF]" 10:31:07.796511 < "QUIT" 10:31:07.797098 > "221 bye bye baby[CR][LF]" 10:31:07.803469 MAIN sockfilt said DISC 10:31:07.804074 ====> Client disconnected 10:31:07.804934 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:07.358286 ====> Client connect 10:31:07.360066 Received DATA (CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind212 ../src/curl -q --output log/6/curl212.out --include --trace-ascii log/6/trace212 --trace-time ftp://127.0.0.1:33323/a/path/212 ftp://127.0.0.1:33323/a/path/212 -P - > log/6/stdout212 2> log/6/stderr212 on stdin) 10:31:07.360304 > 160 bytes data, server => client 10:31:07.360730 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:07.360886 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:07.361030 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:07.362499 < 16 bytes data, client => server 10:31:07.362672 'USER anonymous\r\n' 10:31:07.365715 Received DATA (on stdin) 10:31:07.365909 > 33 bytes data, server => client 10:31:07.366018 '331 We are happy you popped in!\r\n' 10:31:07.366893 < 22 bytes data, client => server 10:31:07.367128 'PASS ftp@example.com\r\n' 10:31:07.371838 Received DATA (on stdin) 10:31:07.372023 > 30 bytes data, server => client 10:31:07.372152 '230 Welcome you silly person\r\n' 10:31:07.373930 < 5 bytes data, client => server 10:31:07.374117 'PWD\r\n' 10:31:07.378425 Received DATA (on stdin) 10:31:07.378638 > 30 bytes data, server => client 10:31:07.378767 '257 "/" is current directory\r\n' 10:31:07.379520 < 6 bytes data, client => server 10:31:07.379727 'EPSV\r\n' 10:31:07.399140 Received DATA (on stdin) 10:31:07.399445 > 38 bytes data, server => client 10:31:07.399582 '229 Entering Passive Mode (|||41875|)\n' 10:31:07.401705 < 8 bytes data, client => server 10:31:07.401909 'TYPE I\r\n' 10:31:07.406483 Received DATA (on stdin) 10:31:07.406694 > 33 bytes data, server => client 10:31:07.406800 '200 I modify TYPE as you wanted\r\n' 10:31:07.407472 < 21 bytes data, client => server 10:31:07.407683 'SIZE verifiedserver\r\n' 10:31:07.413165 Received DATA (on stdin) 10:31:07.413408 > 8 bytes data, server => client 10:31:07.413590 '213 17\r\n' 10:31:07.415677 < 21 bytes data, client => server 10:31:07.416006 'RETR verifiedserver\r\n' 10:31:07.419817 Received DATA (on stdin) 10:31:07.419951 > 29 bytes data, server => client 10:31:07.420071 '150 Binary junk (17 bytes).\r\n' 10:31:07.426834 Received DATA (on stdin) 10:31:07.427133 > 28 bytes data, server => client 10:31:07.427268 '226 File transfer complete\r\n' 10:31:07.462461 < 6 bytes data, client => server 10:31:07.462735 'QUIT\r\n' 10:31:07.472688 Received DATA (on stdin) 10:31:07.473016 > 18 bytes data, server => client 10:31:07.473189 '221 bye bye baby\r\n' 10:31:07.473943 ====> Client disconnect 10:31:07.475068 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:07.392455 Running IPv4 version 10:31:07.393036 Listening on port 41875 10:31:07.393522 Wrote pid 86260 to log/3/server/ftp_sockdata.pid 10:31:07.393741 Received PING (on stdin) 10:31:07.396742 Received PORT (on stdin) 10:31:07.401424 ====> Client connect 10:31:07.419463 Received DATA (on stdin) 10:31:07.419670 > 17 bytes data, server => client 10:31:07.419793 'WE ROOLZ: 79555\r\n' 10:31:07.421097 Received DISC (on stdin) 10:31:07.421510 ====> Client forcibly disconnected 10:31:07.423388 Received QUIT (on stdin) 10:31:07.423660 quits 10:31:07.424202 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 211 === End of file server.cmd === Start of file valgrind211 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind211 test 0212...[Get two FTP files with no remote EPRT support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind212 ../src/curl -q --output log/6/curl212.out --include --trace-ascii log/6/trace212 --trace-time ftp://127.0.0.1:33323/a/path/212 ftp://127.0.0.1:33323/a/path/212 -P - > log/6/stdout212 2> log/6/stderr212 212: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 212 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind212 ../src/curl -q --output log/6/curl212.out --include --trace-ascii log/6/trace212 --trace-time ftp://127.0.0.1:33323/a/path/212 ftp://127.0.0.1:33323/a/path/212 -P - > log/6/stdout212 2> log/6/stderr212 === End of file commands.log === Start of file ftp_server.log 10:31:08.106672 ====> Client connect 10:31:08.110211 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:08.112645 < "USER anonymous" 10:31:08.113281 > "331 We are happy you popped in![CR][LF]" 10:31:08.117937 < "PASS ftp@example.com" 10:31:08.118796 > "230 Welcome you silly person[CR][LF]" 10:31:08.126718 < "PWD" 10:31:08.127339 > "257 "/" is current directory[CR][LF]" 10:31:08.131059 < "EPSV" 10:31:08.131661 ====> Passive DATA channel requested by client 10:31:08.132116 DATA sockfilt for passive data channel starting... 10:31:08.154390 DATA sockfilt for passive data channel started (pid 86471) 10:31:08.158848 DATA sockfilt for passive data channel listens on port 44209 10:31:08.159429 > "229 Entering Passive Mode (|||44209|)[LF]" 10:31:08.159836 Client has been notified that DATA conn will be accepted on port 44209 10:31:08.163911 Client connects to port 44209 10:31:08.164329 ====> Client established passive DATA connection on port 44209 10:31:08.165347 < "TYPE I" 10:31:08.166748 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:08.170256 < "SIZE verifiedserver" 10:31:08.171611 > "213 17[CR][LF]" 10:31:08.179451 < "RETR verifiedserver" 10:31:08.180104 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:08.180985 =====> Closing passive DATA connection... 10:31:08.181370 Server disconnects passive DATA connection 10:31:08.190364 Server disconnected passive DATA connection 10:31:08.190773 DATA sockfilt for passive data channel quits (pid 86471) 10:31:08.192635 DATA sockfilt for passive data channel quit (pid 86471) 10:31:08.193015 =====> Closed passive DATA connection 10:31:08.193365 > "226 File transfer complete[CR][LF]" 10:31:08.229624 < "QUIT" 10:31:08.230122 > "221 bye bye baby[CR][LF]" 10:31:08.235154 MAIN sockfilt said DISC 10:31:08.235612 ====> Client disconnected 10:31:08.236148 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:08.776610 ====> Client connect 10:31:08.779294 Received DATA (on stdin) 10:31:08.779633 > 160 bytes data, server => client 10:31:08.781061 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:08.781361 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:08.781494 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:08.782325 < 16 bytes data, client => CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind213 ../src/curl -q --output log/5/curl213.out --include --trace-ascii log/5/trace213 --trace-time http://test.remote.example.com.213:41733/path/2130002 --proxy1.0 http://127.0.0.1:41733 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/5/stdout213 2> log/5/stderr213 server 10:31:08.782583 'USER anonymous\r\n' 10:31:08.784226 Received DATA (on stdin) 10:31:08.784562 > 33 bytes data, server => client 10:31:08.784706 '331 We are happy you popped in!\r\n' 10:31:08.787693 < 22 bytes data, client => server 10:31:08.787888 'PASS ftp@example.com\r\n' 10:31:08.794044 Received DATA (on stdin) 10:31:08.794394 > 30 bytes data, server => client 10:31:08.794551 '230 Welcome you silly person\r\n' 10:31:08.796706 < 5 bytes data, client => server 10:31:08.796955 'PWD\r\n' 10:31:08.798291 Received DATA (on stdin) 10:31:08.798599 > 30 bytes data, server => client 10:31:08.798739 '257 "/" is current directory\r\n' 10:31:08.801037 < 6 bytes data, client => server 10:31:08.801405 'EPSV\r\n' 10:31:08.831372 Received DATA (on stdin) 10:31:08.831649 > 38 bytes data, server => client 10:31:08.831791 '229 Entering Passive Mode (|||44209|)\n' 10:31:08.833729 < 8 bytes data, client => server 10:31:08.833997 'TYPE I\r\n' 10:31:08.838259 Received DATA (on stdin) 10:31:08.838491 > 33 bytes data, server => client 10:31:08.838602 '200 I modify TYPE as you wanted\r\n' 10:31:08.839571 < 21 bytes data, client => server 10:31:08.839983 'SIZE verifiedserver\r\n' 10:31:08.841929 Received DATA (on stdin) 10:31:08.842203 > 8 bytes data, server => client 10:31:08.843121 '213 17\r\n' 10:31:08.848958 < 21 bytes data, client => server 10:31:08.849286 'RETR verifiedserver\r\n' 10:31:08.852803 Received DATA (on stdin) 10:31:08.853027 > 29 bytes data, server => client 10:31:08.853143 '150 Binary junk (17 bytes).\r\n' 10:31:08.864577 Received DATA (on stdin) 10:31:08.864752 > 28 bytes data, server => client 10:31:08.864845 '226 File transfer complete\r\n' 10:31:08.899524 < 6 bytes data, client => server 10:31:08.899766 'QUIT\r\n' 10:31:08.901060 Received DATA (on stdin) 10:31:08.901244 > 18 bytes data, server => client 10:31:08.901358 '221 bye bye baby\r\n' 10:31:08.901952 ====> Client disconnect 10:31:08.906568 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:08.822231 Running IPv4 version 10:31:08.823145 Listening on port 44209 10:31:08.824042 Wrote pid 86471 to log/6/server/ftp_sockdata.pid 10:31:08.824642 Received PING (on stdin) 10:31:08.828806 Received PORT (on stdin) 10:31:08.834455 ====> Client connect 10:31:08.856512 Received DATA (on stdin) 10:31:08.856832 > 17 bytes data, server => client 10:31:08.856957 'WE ROOLZ: 79480\r\n' 10:31:08.857353 Received DISC (on stdin) 10:31:08.857542 ====> Client forcibly disconnected 10:31:08.862029 Received QUIT (on stdin) 10:31:08.862223 quits 10:31:08.862683 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPRT 500 no such command Testnum 212 === End of file server.cmd === Start of file valgrind212 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind212 test 0213...[HTTP 1.0 proxy CONNECT auth NTLM and then POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind213 ../src/curl -q --output log/5/curl213.out --include --trace-ascii log/5/trace213 --trace-time http://test.remote.example.com.213:41733/path/2130002 --proxy1.0 http://127.0.0.1:41733 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/5/stdout213 2> log/5/stderr213 213: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 213 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind213 ../src/curl -q --output log/5/curl213.out --include --trace-ascii log/5/trace213 --trace-time http://test.remote.example.com.213:41733/path/2130002 --proxy1.0 http://127.0.0.1:41733 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/5/stdout213 2> log/5/stderr213 === End of file commands.log === Start of file http_server.log 10:31:08.795575 ====> Client connect 10:31:08.796080 accept_connection 3 returned 4 10:31:08.796487 accept_connection 3 returned 0 10:31:08.796813 Read 93 bytes 10:31:08.796939 Process 93 bytes request 10:31:08.797061 Got request: GET /verifiedserver HTTP/1.1 10:31:08.797144 Are-we-friendly question received 10:31:08.797481 Wrote request (93 bytes) input to log/5/server.input 10:31:08.797771 Identifying ourselves as friends 10:31:08.798842 Response sent (56 bytes) and written to log/5/server.response 10:31:08.799010 special request received, no persistency 10:31:08.799096 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 45454 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 213 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind213 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you wiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind214 ../src/curl -q --output log/2/curl214.out --include --trace-ascii log/2/trace214 --trace-time "http://127.0.0.1:43789/\{\}\/214" > log/2/stdout214 2> log/2/stderr214 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind215 ../src/curl -q --output log/4/curl215.out --include --trace-ascii log/4/trace215 --trace-time ftp://127.0.0.1:42635/a/path/215/ ftp://127.0.0.1:42635/a/path/215/ > log/4/stdout215 2> log/4/stderr215 ll need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind213 setenv MSYS2_ARG_CONV_EXCL = http:// test 0214...[HTTP URL with escaped { and }] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind214 ../src/curl -q --output log/2/curl214.out --include --trace-ascii log/2/trace214 --trace-time "http://127.0.0.1:43789/\{\}\/214" > log/2/stdout214 2> log/2/stderr214 214: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 214 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind214 ../src/curl -q --output log/2/curl214.out --include --trace-ascii log/2/trace214 --trace-time "http://127.0.0.1:43789/\{\}\/214" > log/2/stdout214 2> log/2/stderr214 === End of file commands.log === Start of file http_server.log 10:31:07.992790 ====> Client connect 10:31:07.993122 accept_connection 3 returned 4 10:31:07.993293 accept_connection 3 returned 0 10:31:07.993411 Read 93 bytes 10:31:07.993482 Process 93 bytes request 10:31:07.993557 Got request: GET /verifiedserver HTTP/1.1 10:31:07.993618 Are-we-friendly question received 10:31:07.993801 Wrote request (93 bytes) input to log/2/server.input 10:31:07.993940 Identifying ourselves as friends 10:31:07.994584 Response sent (56 bytes) and written to log/2/server.response 10:31:07.994719 special request received, no persistency 10:31:07.994783 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36470 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 214 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind214 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind214 test 0215...[Get two FTP dir listings from the same remote dir: no second CWD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind215 ../src/curl -q --output log/4/curl215.out --include --trace-ascii log/4/trace215 --trace-time ftp://127.0.0.1:42635/a/path/215/ ftp://127.0.0.1:42635/a/path/215/ > log/4/stdout215 2> log/4/stderr215 215: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 215 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind215 ../src/curl -q --output log/4/curl215.out --include --trace-ascii log/4/trace215 --trace-time ftp://127.0.0.1:42635/a/path/215/ ftp://127.0.0.1:42635/a/path/215/ > log/4/stdout215 2> log/4/stderr215 === End of file commands.log === Start of file ftp_server.log 10:31:08.414308 ====> Client connect 10:31:08.416347 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:08.421402 < "USER anonymous" 10:31:08.422924 > "331 We are happy you popped in![CR][LF]" 10:31:08.426975 < "PASS ftp@example.com" 10:31:08.427767 > "230 Welcome you silly person[CR][LF]" 10:31:08.431473 < "PWD" 10:31:08.432190 > "257 "/" is current directory[CR][LF]" 10:31:08.435607 < "EPSV" 10:31:08.436161 ====> Passive DATA channel requested by client 10:31:08.436571 DATA sockfilt for passive data channel starting... 10:31:08.454764 DATA sockfilt for passive data channel started (pid 86578) 10:31:08.456606 DATA sockfilt for passive data channel listens on port 34735 10:31:08.457382 > "229 Entering Passive Mode (|||34735|)[LF]" 10:31:08.457915 Client has been notified that DATA conn will be accepted on port 34735 10:31:08.461908 Client connects to port 34735 10:31:08.462610 ====> Client established passive DATA connection on port 34735 10:31:08.465121 < "TYPE I" 10:31:08.467501 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:08.470382 < "SIZE verifiedserver" 10:31:08.471003 > "213 17[CR][LF]" 10:31:08.473839 < "RETR verifiedserver" 10:31:08.474648 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:08.475842 =====> Closing passive DATA connection... 10:31:08.476254 Server disconnects passive DATA connection 10:31:08.478947 Fancy that; client wants to DISC, too 10:31:08.480786 Server disconnected passive DATA connection 10:31:08.481285 DATA sockfilt for passive data channel quits (pid 86578) 10:31:08.483625 DATA sockfilt for passive data channel quit (pid 86578) 10:31:08.484076 =====> Closed passive DATA connection 10:31:08.484554 > "226 File transfer complete[CR][LF]" 10:31:08.530330 < "QUIT" 10:31:08.530848 > "221 bye bye baby[CR][LF]" 10:31:08.534275 MAIN sockfilt said DISC 10:31:08.534678 ====> Client disconnected 10:31:08.535320 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:09.083770 ====> Client connect 10:31:09.087984 Received DATA (on stdin) 10:31:09.088489 > 160 bytes data, server => client 10:31:09.088762 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:09.088894 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:09.089006 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:09.090438 < 16 bytes data, client => server 10:31:09.090789 'USER anonymous\r\n' 10:31:09.093160 Received DATA (on stdin) 10:31:09.093465 > 33 bytes data, server => client 10:31:09.094424 '331 We are happy you popped in!\r\n' 10:31:09.095627 < 22 bytes data, client => server 10:31:09.096002 'PASS ftp@example.com\r\n' 10:31:09.099384 Received DATA (on stdin) 10:31:09.099684 > 30 bytes data, server => client 10:31:09.099825 '230 Welcome you silly person\r\n' 10:31:09.100810 < 5 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind219 ../src/curl -q --output log/1/curl219.out --include --trace-ascii log/1/trace219 --trace-time -x foo://127.0.0.1:47/219 http://127.0.0.1:47/219 > log/1/stdout219 2> log/1/stderr219 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind217 ../src/curl -q --include --trace-ascii log/7/trace217 --trace-time http://test.remote.example.com.217:40129/path/2170002 --proxy http://127.0.0.1:40129 --proxytunnel -w "%{http_code} %{http_connect}\n" > log/7/stdout217 2> log/7/stderr217 bytes data, client => server 10:31:09.101043 'PWD\r\n' 10:31:09.103662 Received DATA (on stdin) 10:31:09.103885 > 30 bytes data, server => client 10:31:09.104013 '257 "/" is current directory\r\n' 10:31:09.105141 < 6 bytes data, client => server 10:31:09.105401 'EPSV\r\n' 10:31:09.129521 Received DATA (on stdin) 10:31:09.129834 > 38 bytes data, server => client 10:31:09.129995 '229 Entering Passive Mode (|||34735|)\n' 10:31:09.134336 < 8 bytes data, client => server 10:31:09.134607 'TYPE I\r\n' 10:31:09.136972 Received DATA (on stdin) 10:31:09.137265 > 33 bytes data, server => client 10:31:09.137615 '200 I modify TYPE as you wanted\r\n' 10:31:09.139818 < 21 bytes data, client => server 10:31:09.140128 'SIZE verifiedserver\r\n' 10:31:09.142355 Received DATA (on stdin) 10:31:09.142547 > 8 bytes data, server => client 10:31:09.142644 '213 17\r\n' 10:31:09.143496 < 21 bytes data, client => server 10:31:09.143721 'RETR verifiedserver\r\n' 10:31:09.147435 Received DATA (on stdin) 10:31:09.147682 > 29 bytes data, server => client 10:31:09.147846 '150 Binary junk (17 bytes).\r\n' 10:31:09.155492 Received DATA (on stdin) 10:31:09.155712 > 28 bytes data, server => client 10:31:09.155873 '226 File transfer complete\r\n' 10:31:09.194549 < 6 bytes data, client => server 10:31:09.194793 'QUIT\r\n' 10:31:09.202417 Received DATA (on stdin) 10:31:09.202636 > 18 bytes data, server => client 10:31:09.202741 '221 bye bye baby\r\n' 10:31:09.204707 ====> Client disconnect 10:31:09.205614 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:08.122508 Running IPv4 version 10:31:08.123223 Listening on port 34735 10:31:08.123774 Wrote pid 86578 to log/4/server/ftp_sockdata.pid 10:31:08.125133 Received PING (on stdin) 10:31:08.126392 Received PORT (on stdin) 10:31:08.131575 ====> Client connect 10:31:08.147434 Received DATA (on stdin) 10:31:08.147681 > 17 bytes data, server => client 10:31:08.147844 'WE ROOLZ: 79516\r\n' 10:31:08.149156 ====> Client disconnect 10:31:08.150455 Received DISC (on stdin) 10:31:08.150701 Crikey! Client also wants to disconnect 10:31:08.150917 Received ACKD (on stdin) 10:31:08.152769 Received QUIT (on stdin) 10:31:08.153024 quits 10:31:08.153523 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 215 === End of file server.cmd === Start of file valgrind215 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind215 test 0219...[try using proxy with unsupported scheme] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind219 ../src/curl -q --output log/1/curl219.out --include --trace-ascii log/1/trace219 --trace-time -x foo://127.0.0.1:47/219 http://127.0.0.1:47/219 > log/1/stdout219 2> log/1/stderr219 curl returned 1, when expecting 7 219: exit FAILED == Contents of files in the log/1/ dir after test 219 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind219 ../src/curl -q --output log/1/curl219.out --include --trace-ascii log/1/trace219 --trace-time -x foo://127.0.0.1:47/219 http://127.0.0.1:47/219 > log/1/stdout219 2> log/1/stderr219 === End of file commands.log === Start of file server.cmd Testnum 219 === End of file server.cmd === Start of file valgrind219 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind219 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind218 ../src/curl -q --output log/3/curl218.out --include --trace-ascii log/3/trace218 --trace-time -T log/3/file218 -H "Transfer-Encoding: chunked" http://127.0.0.1:36933/218 > log/3/stdout218 2> log/3/stderr218 test 0217...[HTTP proxy CONNECT to proxy returning 405] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind217 ../src/curl -q --include --trace-ascii log/7/trace217 --trace-time http://test.remote.example.com.217:40129/path/2170002 --proxy http://127.0.0.1:40129 --proxytunnel -w "%{http_code} %{http_connect}\n" > log/7/stdout217 2> log/7/stderr217 217: stdout FAILED: --- log/7/check-expected 2025-09-11 10:31:09.471446794 +0000 +++ log/7/check-generated 2025-09-11 10:31:09.471446794 +0000 @@ -1,3 +0,0 @@ -HTTP/1.1 405 Method Not Allowed swsclose[CR][LF] -[CR][LF] -000 405[LF] == Contents of files in the log/7/ dir after test 217 === Start of file check-expected HTTP/1.1 405 Method Not Allowed swsclose[CR][LF] [CR][LF] 000 405[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind217 ../src/curl -q --include --trace-ascii log/7/trace217 --trace-time http://test.remote.example.com.217:40129/path/2170002 --proxy http://127.0.0.1:40129 --proxytunnel -w "%{http_code} %{http_connect}\n" > log/7/stdout217 2> log/7/stderr217 === End of file commands.log === Start of file http_server.log 10:31:08.377732 ====> Client connect 10:31:08.378173 accept_connection 3 returned 4 10:31:08.378480 accept_connection 3 returned 0 10:31:08.379484 Read 93 bytes 10:31:08.379690 Process 93 bytes request 10:31:08.379802 Got request: GET /verifiedserver HTTP/1.1 10:31:08.379877 Are-we-friendly question received 10:31:08.380173 Wrote request (93 bytes) input to log/7/server.input 10:31:08.380525 Identifying ourselves as friends 10:31:08.381303 Response sent (56 bytes) and written to log/7/server.response 10:31:08.381491 special request received, no persistency 10:31:08.381618 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 50846 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 217 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind217 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind217 test 0218...[HTTP PUT from a file but enforce chunked transfer-encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind218 ../src/curl -q --output log/3/curl218.out --include --trace-ascii log/3/trace218 --trace-time -T log/3/file218 -H "Transfer-Encoding: chunked" http://127.0.0.1:36933/218 > log/3/stdout218 2> log/3/stderr218 218: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 218 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind218 ../src/curl -q --output log/3/curl218.out --include --trace-ascii log/3/trace218 --trace-time -T log/3/file218 -H "Transfer-Encoding: chunked" http://127.0.0.1:36933/218 > log/3/stdout218 2> log/3/stderr218 === End of file commands.log === Start of file file218 just some tiny teeny contents === End of file file218 === Start of file http_server.log 10:31:08.410702 ====> Client connect 10:31:08.411057 accept_connection 3 returned 4 10:31:08.411280 accept_connection 3 returned 0 10:31:08.411422 Read 93 bytes 10:31:08.411511 Process 93 bytes request 10:31:08.411609 Got request: GET /verifiedserver HTTP/1.1 10:31:08.411686 Are-we-friendly question received 10:31:08.411928 Wrote request (93 bytes) input to log/3/server.input 10:31:08.412166 Identifying ourselves as friends 10:31:08.413101 Response sent (56 bytes) and written to log/3/server.response 10:31:08.413293 special request received, no persistency 10:31:08.413397 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 35472 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 218 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind218 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind220 ../src/curl -q --output log/6/curl220.out --include --trace-ascii log/6/trace220 --trace-time http://127.0.0.1:33363/220 --compressed > log/6/stdout220 2> log/6/stderr220 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind221 ../src/curl -q --output log/5/curl221.out --include --trace-ascii log/5/trace221 --trace-time http://127.0.0.1:41733/221 --compressed > log/5/stdout221 2> log/5/stderr221 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind216 ../src/curl -q --output log/8/curl216.out --include --trace-ascii log/8/trace216 --trace-time -T log/8/upload.216 ftp://127.0.0.1:42977/a/path/216/ -T log/8/upload.216 ftp://127.0.0.1:42977/a/path/216/%2e%2eanotherup.216 > log/8/stdout216 2> log/8/stderr216 : Cannot continue -- exiting now. Sorry. === End of file valgrind218 test 0220...[HTTP GET gzip compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind220 ../src/curl -q --output log/6/curl220.out --include --trace-ascii log/6/trace220 --trace-time http://127.0.0.1:33363/220 --compressed > log/6/stdout220 2> log/6/stderr220 220: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 220 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind220 ../src/curl -q --output log/6/curl220.out --include --trace-ascii log/6/trace220 --trace-time http://127.0.0.1:33363/220 --compressed > log/6/stdout220 2> log/6/stderr220 === End of file commands.log === Start of file http_server.log 10:31:08.841112 ====> Client connect 10:31:08.841491 accept_connection 3 returned 4 10:31:08.841680 accept_connection 3 returned 0 10:31:08.841830 Read 93 bytes 10:31:08.841937 Process 93 bytes request 10:31:08.842026 Got request: GET /verifiedserver HTTP/1.1 10:31:08.842105 Are-we-friendly question received 10:31:08.842411 Wrote request (93 bytes) input to log/6/server.input 10:31:08.842658 Identifying ourselves as friends 10:31:08.843650 Response sent (56 bytes) and written to log/6/server.response 10:31:08.843807 special request received, no persistency 10:31:08.843899 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 37790 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 220 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind220 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind220 test 0221...[HTTP GET gzip compressed content with broken gzip header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind221 ../src/curl -q --output log/5/curl221.out --include --trace-ascii log/5/trace221 --trace-time http://127.0.0.1:41733/221 --compressed > log/5/stdout221 2> log/5/stderr221 221: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 221 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind221 ../src/curl -q --output log/5/curl221.out --include --trace-ascii log/5/trace221 --trace-time http://127.0.0.1:41733/221 --compressed > log/5/stdout221 2> log/5/stderr221 === End of file commands.log === Start of file http_server.log 10:31:09.933506 ====> Client connect 10:31:09.933954 accept_connection 3 returned 4 10:31:09.934290 accept_connection 3 returned 0 10:31:09.934533 Read 93 bytes 10:31:09.934717 Process 93 bytes request 10:31:09.934866 Got request: GET /verifiedserver HTTP/1.1 10:31:09.935011 Are-we-friendly question received 10:31:09.935388 Wrote request (93 bytes) input to log/5/server.input 10:31:09.935750 Identifying ourselves as friends 10:31:09.941158 Response sent (56 bytes) and written to log/5/server.response 10:31:09.941359 special request received, no persistency 10:31:09.941598 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 45464 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 221 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind221 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind221 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/8/server/ftp_server.pid" --logfile "log/8/ftp_server.log" --logdir "log/8" --portfile "log/8/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42977 (log/8/server/ftp_serverCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind223 ../src/curl -q --output log/4/curl223.out --include --trace-ascii log/4/trace223 --trace-time http://127.0.0.1:36757/223 --compressed > log/4/stdout223 2> log/4/stderr223 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind222 ../src/curl -q --output log/2/curl222.out --include --trace-ascii log/2/trace222 --trace-time http://127.0.0.1:43789/222 --compressed > log/2/stdout222 2> log/2/stderr222 .port) RUN: FTP server is PID 86552 port 42977 * pid ftp => 86552 86552 test 0216...[FTP upload two files to the same dir] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind216 ../src/curl -q --output log/8/curl216.out --include --trace-ascii log/8/trace216 --trace-time -T log/8/upload.216 ftp://127.0.0.1:42977/a/path/216/ -T log/8/upload.216 ftp://127.0.0.1:42977/a/path/216/%2e%2eanotherup.216 > log/8/stdout216 2> log/8/stderr216 216: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 216 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind216 ../src/curl -q --output log/8/curl216.out --include --trace-ascii log/8/trace216 --trace-time -T log/8/upload.216 ftp://127.0.0.1:42977/a/path/216/ -T log/8/upload.216 ftp://127.0.0.1:42977/a/path/216/%2e%2eanotherup.216 > log/8/stdout216 2> log/8/stderr216 === End of file commands.log === Start of file ftp_server.log 10:31:08.870033 FTP server listens on port IPv4/42977 10:31:08.871013 logged pid 86552 in log/8/server/ftp_server.pid 10:31:08.871401 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:08.533667 Running IPv4 version 10:31:08.534297 Listening on port 42977 10:31:08.534657 Wrote pid 86775 to log/8/server/ftp_sockctrl.pid 10:31:08.534939 Wrote port 42977 to log/8/server/ftp_server.port 10:31:08.535100 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd Testnum 216 === End of file server.cmd === Start of file upload.216 upload this file twice === End of file upload.216 === Start of file valgrind216 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind216 test 0223...[HTTP GET deflate compressed content with broken deflate header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind223 ../src/curl -q --output log/4/curl223.out --include --trace-ascii log/4/trace223 --trace-time http://127.0.0.1:36757/223 --compressed > log/4/stdout223 2> log/4/stderr223 223: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 223 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind223 ../src/curl -q --output log/4/curl223.out --include --trace-ascii log/4/trace223 --trace-time http://127.0.0.1:36757/223 --compressed > log/4/stdout223 2> log/4/stderr223 === End of file commands.log === Start of file http_server.log 10:31:10.164579 ====> Client connect 10:31:10.165137 accept_connection 3 returned 4 10:31:10.165470 accept_connection 3 returned 0 10:31:10.165756 Read 93 bytes 10:31:10.166440 Process 93 bytes request 10:31:10.166723 Got request: GET /verifiedserver HTTP/1.1 10:31:10.166936 Are-we-friendly question received 10:31:10.167440 Wrote request (93 bytes) input to log/4/server.input 10:31:10.167793 Identifying ourselves as friends 10:31:10.171469 Response sent (56 bytes) and written to log/4/server.response 10:31:10.171713 special request received, no persistency 10:31:10.171908 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 54858 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 223 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind223 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind223 test 0222...[HTTP GET deflate compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind222 ../src/curl -q --output log/2/curl222.out --include --trace-ascii log/2/trace222 --trace-time http://127.0.0.1:43789/222 --compressed > log/2/stdout222 2> log/2/stderr222 222: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 222 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind222 ../src/curl -q --output log/2/curl222.out --include --trace-ascii log/2/trace222 --traceCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind224 ../src/curl -q --output log/1/curl224.out --include --trace-ascii log/1/trace224 --trace-time http://127.0.0.1:36129/224 --compressed > log/1/stdout224 2> log/1/stderr224 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind225 ../src/curl -q --output log/7/curl225.out --include --trace-ascii log/7/trace225 --trace-time ftp://bad%0auser:passwd@127.0.0.1:38253/225%0a > log/7/stdout225 2> log/7/stderr225 -time http://127.0.0.1:43789/222 --compressed > log/2/stdout222 2> log/2/stderr222 === End of file commands.log === Start of file http_server.log 10:31:08.968788 ====> Client connect 10:31:08.969066 accept_connection 3 returned 4 10:31:08.969242 accept_connection 3 returned 0 10:31:08.969368 Read 93 bytes 10:31:08.969469 Process 93 bytes request 10:31:08.969552 Got request: GET /verifiedserver HTTP/1.1 10:31:08.969618 Are-we-friendly question received 10:31:08.969828 Wrote request (93 bytes) input to log/2/server.input 10:31:08.969990 Identifying ourselves as friends 10:31:08.970599 Response sent (56 bytes) and written to log/2/server.response 10:31:08.970719 special request received, no persistency 10:31:08.970779 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 36482 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 222 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind222 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind222 test 0224...[HTTP GET gzip compressed content with huge comment and extra field] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind224 ../src/curl -q --output log/1/curl224.out --include --trace-ascii log/1/trace224 --trace-time http://127.0.0.1:36129/224 --compressed > log/1/stdout224 2> log/1/stderr224 224: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 224 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind224 ../src/curl -q --output log/1/curl224.out --include --trace-ascii log/1/trace224 --trace-time http://127.0.0.1:36129/224 --compressed > log/1/stdout224 2> log/1/stderr224 === End of file commands.log === Start of file http_server.log 10:31:09.228814 ====> Client connect 10:31:09.229175 accept_connection 3 returned 4 10:31:09.229373 accept_connection 3 returned 0 10:31:09.229562 Read 93 bytes 10:31:09.229707 Process 93 bytes request 10:31:09.229823 Got request: GET /verifiedserver HTTP/1.1 10:31:09.229915 Are-we-friendly question received 10:31:09.230180 Wrote request (93 bytes) input to log/1/server.input 10:31:09.230381 Identifying ourselves as friends 10:31:09.231250 Response sent (56 bytes) and written to log/1/server.response 10:31:09.231450 special request received, no persistency 10:31:09.231535 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 48334 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 224 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind224 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind224 test 0225...[FTP %0a-code in URL's name part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind225 ../src/curl -q --output log/7/curl225.out --include --trace-ascii log/7/trace225 --trace-time ftp://bad%0auser:passwd@127.0.0.1:38253/225%0a > log/7/stdout225 2> log/7/stderr225 curl returned 1, when expecting 3 225: exit FAILED == Contents of files in the log/7/ dir after test 225 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind225 ../src/curl -q --output log/7/curl225.out --include --trace-ascii log/7/trace225 --trace-time ftp://bad%0auser:passwd@127.0.0.1:38253/225%0a > log/7/stdout225 2> log/7/stderr225 === End of file commands.log === Start of file ftp_server.log 10:31:09.671609 ====> Client connect 10:31:09.674445 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:09.681573 < "USER anonymous" 10:31:09.682235 > "331 We are happy you popped in![CR][LF]" 1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind226 ../src/curl -q --output log/3/curl226.out --include --trace-ascii log/3/trace226 --trace-time ftp://127.0.0.1:33831/226%0d > log/3/stdout226 2> log/3/stderr226 0:31:09.684913 < "PASS ftp@example.com" 10:31:09.687496 > "230 Welcome you silly person[CR][LF]" 10:31:09.689966 < "PWD" 10:31:09.691035 > "257 "/" is current directory[CR][LF]" 10:31:09.698326 < "EPSV" 10:31:09.698744 ====> Passive DATA channel requested by client 10:31:09.699001 DATA sockfilt for passive data channel starting... 10:31:09.715221 DATA sockfilt for passive data channel started (pid 87150) 10:31:09.719987 DATA sockfilt for passive data channel listens on port 35673 10:31:09.720667 > "229 Entering Passive Mode (|||35673|)[LF]" 10:31:09.721018 Client has been notified that DATA conn will be accepted on port 35673 10:31:09.725283 Client connects to port 35673 10:31:09.725836 ====> Client established passive DATA connection on port 35673 10:31:09.726905 < "TYPE I" 10:31:09.727476 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:09.736030 < "SIZE verifiedserver" 10:31:09.736644 > "213 17[CR][LF]" 10:31:09.742726 < "RETR verifiedserver" 10:31:09.743445 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:09.744388 =====> Closing passive DATA connection... 10:31:09.744775 Server disconnects passive DATA connection 10:31:09.749910 Server disconnected passive DATA connection 10:31:09.750402 DATA sockfilt for passive data channel quits (pid 87150) 10:31:09.753410 DATA sockfilt for passive data channel quit (pid 87150) 10:31:09.753960 =====> Closed passive DATA connection 10:31:09.754469 > "226 File transfer complete[CR][LF]" 10:31:09.788636 < "QUIT" 10:31:09.789112 > "221 bye bye baby[CR][LF]" 10:31:09.793378 MAIN sockfilt said DISC 10:31:09.793910 ====> Client disconnected 10:31:09.794493 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:10.341787 ====> Client connect 10:31:10.343885 Received DATA (on stdin) 10:31:10.344151 > 160 bytes data, server => client 10:31:10.344439 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:10.344601 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:10.344726 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:10.350781 < 16 bytes data, client => server 10:31:10.351061 'USER anonymous\r\n' 10:31:10.353727 Received DATA (on stdin) 10:31:10.353914 > 33 bytes data, server => client 10:31:10.354001 '331 We are happy you popped in!\r\n' 10:31:10.354709 < 22 bytes data, client => server 10:31:10.354909 'PASS ftp@example.com\r\n' 10:31:10.357857 Received DATA (on stdin) 10:31:10.358105 > 30 bytes data, server => client 10:31:10.358808 '230 Welcome you silly person\r\n' 10:31:10.359625 < 5 bytes data, client => server 10:31:10.359860 'PWD\r\n' 10:31:10.361397 Received DATA (on stdin) 10:31:10.361600 > 30 bytes data, server => client 10:31:10.362475 '257 "/" is current directory\r\n' 10:31:10.364700 < 6 bytes data, client => server 10:31:10.364962 'EPSV\r\n' 10:31:10.392235 Received DATA (on stdin) 10:31:10.392565 > 38 bytes data, server => client 10:31:10.392696 '229 Entering Passive Mode (|||35673|)\n' 10:31:10.395820 < 8 bytes data, client => server 10:31:10.396047 'TYPE I\r\n' 10:31:10.398964 Received DATA (on stdin) 10:31:10.399200 > 33 bytes data, server => client 10:31:10.399304 '200 I modify TYPE as you wanted\r\n' 10:31:10.404545 < 21 bytes data, client => server 10:31:10.404800 'SIZE verifiedserver\r\n' 10:31:10.407533 Received DATA (on stdin) 10:31:10.407762 > 8 bytes data, server => client 10:31:10.407863 '213 17\r\n' 10:31:10.412873 < 21 bytes data, client => server 10:31:10.413086 'RETR verifiedserver\r\n' 10:31:10.414335 Received DATA (on stdin) 10:31:10.414616 > 29 bytes data, server => client 10:31:10.414736 '150 Binary junk (17 bytes).\r\n' 10:31:10.425364 Received DATA (on stdin) 10:31:10.425576 > 28 bytes data, server => client 10:31:10.425684 '226 File transfer complete\r\n' 10:31:10.458299 < 6 bytes data, client => server 10:31:10.458514 'QUIT\r\n' 10:31:10.461398 Received DATA (on stdin) 10:31:10.461669 > 18 bytes data, server => client 10:31:10.461781 '221 bye bye baby\r\n' 10:31:10.462328 ====> Client disconnect 10:31:10.465369 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:09.383653 Running IPv4 version 10:31:09.384402 Listening on port 35673 10:31:09.385119 Wrote pid 87150 to log/7/server/ftp_sockdata.pid 10:31:09.385349 Received PING (on stdin) 10:31:09.389600 Received PORT (on stdin) 10:31:09.393913 ====> Client connect 10:31:09.418334 Received DATA (on stdin) 10:31:09.418589 > 17 bytes data, server => client 10:31:09.418693 'WE ROOLZ: 79543\r\n' 10:31:09.419080 Received DISC (on stdin) 10:31:09.419258 ====> Client forcibly disconnected 10:31:09.421731 Received QUIT (on stdin) 10:31:09.421953 quits 10:31:09.422490 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 225 === End of file server.cmd === Start of file valgrind225 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind225 test 0226...[FTP %0d-code in URL's CWD part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind226 ../src/curl -q --output log/3/curl226.out --include --trace-ascii log/3/trace226 --trace-time ftp://127.0.0.1:33831/226%0d > log/3/stdout226 2> log/3/stderr226 curl returned 1, when expecting 3 226: exit FAILED == Contents of files in the log/3/ dir after test 226 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind226 ../src/curl -q --output log/3/curl226.out --include --trace-ascii log/3/trace226 --trace-time ftp://127.0.0.1:33831/226%0d > log/3/stdout226 2> log/3/stderr226 === End of file commands.log === Start of file ftp_server.log 10:31:09.768170 ====> Client connect 10:31:09.769773 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:09.779379 < "USER anonymous" 10:31:09.780437 > "331 We are happy you popped in![CR][LF]" 10:31:09.783441 < "PASS ftp@example.com" 10:31:09.784106 > "230 Welcome you silly person[CR][LF]" 10:31:09.787011 < "PWD" 10:31:09.788111 > "257 "/" is current directory[CR][LF]" 10:31:09.792976 < "EPSV" 10:31:09.793582 ====> Passive DATA channel requested by client 10:31:09.793827 DATA sockfilt for passive data channel starting... 10:31:09.806968 DATA sockfilt for passive data channel started (pid 87224) 10:31:09.808356 DATA sockfilt for passive data channel listens on port 44327 10:31:09.809073 > "229 Entering Passive Mode (|||4432CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind231 ../src/curl -q --output log/2/curl231.out --trace-ascii log/2/trace231 --trace-time file://localhost/build/curl/src/build-curl/tests/log/2/test231.txt -C 10 > log/2/stdout231 2> log/2/stderr231 7|)[LF]" 10:31:09.809586 Client has been notified that DATA conn will be accepted on port 44327 10:31:09.817677 Client connects to port 44327 10:31:09.818188 ====> Client established passive DATA connection on port 44327 10:31:09.819372 < "TYPE I" 10:31:09.819969 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:09.827317 < "SIZE verifiedserver" 10:31:09.827941 > "213 17[CR][LF]" 10:31:09.831128 < "RETR verifiedserver" 10:31:09.831873 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:09.832872 =====> Closing passive DATA connection... 10:31:09.833263 Server disconnects passive DATA connection 10:31:09.836480 Server disconnected passive DATA connection 10:31:09.836925 DATA sockfilt for passive data channel quits (pid 87224) 10:31:09.839335 DATA sockfilt for passive data channel quit (pid 87224) 10:31:09.840331 =====> Closed passive DATA connection 10:31:09.840907 > "226 File transfer complete[CR][LF]" 10:31:09.883172 < "QUIT" 10:31:09.885970 > "221 bye bye baby[CR][LF]" 10:31:09.887160 MAIN sockfilt said DISC 10:31:09.888573 ====> Client disconnected 10:31:09.889418 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:09.438158 ====> Client connect 10:31:09.441152 Received DATA (on stdin) 10:31:09.441384 > 160 bytes data, server => client 10:31:09.441507 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:09.441591 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:09.441656 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:09.448796 < 16 bytes data, client => server 10:31:09.449039 'USER anonymous\r\n' 10:31:09.450816 Received DATA (on stdin) 10:31:09.451012 > 33 bytes data, server => client 10:31:09.451786 '331 We are happy you popped in!\r\n' 10:31:09.453128 < 22 bytes data, client => server 10:31:09.453325 'PASS ftp@example.com\r\n' 10:31:09.455454 Received DATA (on stdin) 10:31:09.455676 > 30 bytes data, server => client 10:31:09.455807 '230 Welcome you silly person\r\n' 10:31:09.456642 < 5 bytes data, client => server 10:31:09.456872 'PWD\r\n' 10:31:09.458481 Received DATA (on stdin) 10:31:09.458643 > 30 bytes data, server => client 10:31:09.459521 '257 "/" is current directory\r\n' 10:31:09.462599 < 6 bytes data, client => server 10:31:09.462787 'EPSV\r\n' 10:31:09.481089 Received DATA (on stdin) 10:31:09.481333 > 38 bytes data, server => client 10:31:09.481446 '229 Entering Passive Mode (|||44327|)\n' 10:31:09.485611 < 8 bytes data, client => server 10:31:09.485886 'TYPE I\r\n' 10:31:09.491481 Received DATA (on stdin) 10:31:09.491770 > 33 bytes data, server => client 10:31:09.491960 '200 I modify TYPE as you wanted\r\n' 10:31:09.496999 < 21 bytes data, client => server 10:31:09.497257 'SIZE verifiedserver\r\n' 10:31:09.499312 Received DATA (on stdin) 10:31:09.499540 > 8 bytes data, server => client 10:31:09.499641 '213 17\r\n' 10:31:09.500752 < 21 bytes data, client => server 10:31:09.501011 'RETR verifiedserver\r\n' 10:31:09.504824 Received DATA (on stdin) 10:31:09.505088 > 29 bytes data, server => client 10:31:09.505214 '150 Binary junk (17 bytes).\r\n' 10:31:09.512243 Received DATA (on stdin) 10:31:09.512536 > 28 bytes data, server => client 10:31:09.512659 '226 File transfer complete\r\n' 10:31:09.552560 < 6 bytes data, client => server 10:31:09.552879 'QUIT\r\n' 10:31:09.554694 Received DATA (on stdin) 10:31:09.554939 > 18 bytes data, server => client 10:31:09.556011 '221 bye bye baby\r\n' 10:31:09.557135 ====> Client disconnect 10:31:09.558667 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:09.475209 Running IPv4 version 10:31:09.475761 Listening on port 44327 10:31:09.476284 Wrote pid 87224 to log/3/server/ftp_sockdata.pid 10:31:09.477480 Received PING (on stdin) 10:31:09.478459 Received PORT (on stdin) 10:31:09.487244 ====> Client connect 10:31:09.505651 Received DATA (on stdin) 10:31:09.505913 > 17 bytes data, server => client 10:31:09.506035 'WE ROOLZ: 79555\r\n' 10:31:09.506644 Received DISC (on stdin) 10:31:09.506881 ====> Client forcibly disconnected 10:31:09.508312 Received QUIT (on stdin) 10:31:09.508678 quits 10:31:09.509176 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 226 === End of file server.cmd === Start of file valgrind226 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind226 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind227 ../src/curl -q --output log/6/curl227.out --include --trace-ascii log/6/trace227 --trace-time ftp://127.0.0.1:33323/227 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/6/stdout227 2> log/6/stderr227 test 0231...[file:// with resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind231 ../src/curl -q --output log/2/curl231.out --trace-ascii log/2/trace231 --trace-time file://localhost/build/curl/src/build-curl/tests/log/2/test231.txt -C 10 > log/2/stdout231 2> log/2/stderr231 231: data FAILED: --- log/2/check-expected 2025-09-11 10:31:11.079478804 +0000 +++ log/2/check-generated 2025-09-11 10:31:11.079478804 +0000 @@ -1,2 +0,0 @@ -B01234567[LF] -C01234567[LF] == Contents of files in the log/2/ dir after test 231 === Start of file check-expected B01234567[LF] C01234567[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind231 ../src/curl -q --output log/2/curl231.out --trace-ascii log/2/trace231 --trace-time file://localhost/build/curl/src/build-curl/tests/log/2/test231.txt -C 10 > log/2/stdout231 2> log/2/stderr231 === End of file commands.log === Start of file server.cmd Testnum 231 === End of file server.cmd === Start of file test231.txt A01234567 B01234567 C01234567 === End of file test231.txt === Start of file valgrind231 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind231 test 0227...[FTP with quote ops] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind227 ../src/curl -q --output log/6/curl227.out --include --trace-ascii log/6/trace227 --trace-time ftp://127.0.0.1:33323/227 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/6/stdout227 2> log/6/stderr227 227: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 227 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind227 ../src/curl -q --output log/6/curl227.out --include --trace-ascii log/6/trace227 --trace-time ftp://127.0.0.1:33323/227 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/6/stdout227 2> log/6/stderr227 === End of file commands.log === Start of file ftp_server.log 10:31:10.175707 ====> Client connect 10:31:10.177716 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:10.184821 < "USER anonymous" 10:31:10.185435 > "331 We are happy you popped in![CR][LF]" 10:31:10.192461 < "PASS ftp@example.com" 10:31:10.193091 > "230 Welcome you silly person[CR][LF]" 10:31:10.206348 < "PWD" 10:31:10.207055 > "257 "/" is current directory[CR][LF]" 10:31:10.211464 < "EPSV" 10:31:10.211940 ====> Passive DATA channel requested by client 10:31:10.212283 DATA sockfilt for passive data channel starting... 10:31:10.241904 DATA sockfilt for passive data channel started (pid 87453) 10:31:10.244249 DATA sockfilt for passive data channel listens on port 36425 10:31:10.245281 > "229 Entering Passive Mode (|||36425|)[LF]" 10:31:10.246412 Client has been notified that DATA conn will be accepted on port 36425 10:31:10.257226 Client connects to port 36425 10:31:10.257807 ====> Client established passive DATA connection on port 36425 10:31:10.259986 < "TYPE I" 10:31:10.260840 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:10.263555 < "SIZE verifiedserver" 10:31:10.264196 > "213 17[CR][LF]" 10:31:10.266979 < "RETR verifiedserver" 10:31:10.267726 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:10.268638 =====> Closing passive DATA connection... 10:31:10.269142 Server disconnects passive DATA connection 10:31:10.275636 Server disconnected passive DATA connection 10:31:10.276179 DATA sockfilt for passive data channel quits (pid 87453) 10:31:10.281702 DATA sockfilt for passive data channel quit (pid 87453) 10:31:10.282067 =====> Closed passive DATA connection 10:31:10.282535 > "226 File transfer complete[CR][LF]" 10:31:10.314217 < "QUIT" 10:31:10.314673 > "221 bye bye baby[CR][LF]" 10:31:10.315720 MAIN sockfilt said DISC 10:31:10.316147 ====> Client disconnected 10:31:10.316694 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:10.845773 ====> Client connect 10:31:10.849523 Received DATA (on stdin) 10:31:10.849811 > 160 bytes data, server => client 10:31:10.849959 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:10.850075 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:10.850167 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:10.853865 < 16 bytes data, client => server 10:31:10.854165 'USER anonymous\r\n' 10:31:10.858259 Received DATA (on stdin) 10:31:10.858533 > 33 bytes data, server => client 10:31:10.858682 '331 We are happy you popped in!\r\n' 10:31:10.859684 < 22 bytes data, client => server 10:31:10.859889 'PASS ftp@example.com\r\n' 10:31:10.865078 Received DATA (on stdin) 10:31:10.865397 > 30 bytes data, server => client 10:31:10.865526 '230 Welcome you silly person\r\n' 10:31:10.872927 < 5 bytes data, client => server 10:31:10.873240 'PWD\r\n' 10:31:10.878133 Received DATA (on stdin) 10:31:10.878319 > 30 bytes data, server => client 10:31:10.878436 '257 "/" is current directory\r\n' 10:31:10.879438 < 6 bytes data, client => server 10:31:10.879648 'EPSV\r\n' 10:31:10.918231 Received DATA (on stdin) 10:31:10.918556 > 38 bytes data, server => client 10:31:10.918750 '229 Entering Passive Mode (|||36425|)\n' 10:31:10.925043 < 8 bytes data, client => server 10:31:10.925277 'TYPE I\r\n' 10:31:10.931727 Received DATA (on stdin) 10:31:10.932006 > 33 bytes data, server => client 10:31:10.932125 '200 I modify TYPE as you wanted\r\n' 10:31:10.933536 < 21 bytes data, client => server 10:31:10.933732 'SIZE verifiedserver\r\n' 10:31:10.935095 Received DATA (on stdin) 10:31:10.935366 > 8 bytes data, server => client 10:31:10.935490 '213 17\r\n' 10:31:10.936769 < 21 bytes data, client => server 10:31:10.937067 'RETR verifiedserver\r\n' 10:31:10.938586 Received DATA (on stdin) 10:31:10.938855 > 29 bytes data, server => client 10:31:10.938983 '150 Binary junk (17 bytes).\r\n' 10:31:10.956461 Received DATA (on stdin) 10:31:10.956778 > 28 bytes data, server => client 10:31:10.956905 '226 File transfer complete\r\n' 10:31:10.982625 < 6 bytes data, client => server 10:31:10.98283CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind228 ../src/curl -q --output log/5/curl228.out --include --trace-ascii log/5/trace228 --trace-time ftp://127.0.0.1:43393/228 --ftp-account "one count" > log/5/stdout228 2> log/5/stderr228 0 'QUIT\r\n' 10:31:10.985543 Received DATA (on stdin) 10:31:10.985663 > 18 bytes data, server => client 10:31:10.985740 '221 bye bye baby\r\n' 10:31:10.986245 ====> Client disconnect 10:31:10.987030 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:10.908644 Running IPv4 version 10:31:10.909397 Listening on port 36425 10:31:10.910679 Wrote pid 87453 to log/6/server/ftp_sockdata.pid 10:31:10.910918 Received PING (on stdin) 10:31:10.913784 Received PORT (on stdin) 10:31:10.921064 ====> Client connect 10:31:10.944917 Received DATA (on stdin) 10:31:10.945238 > 17 bytes data, server => client 10:31:10.945429 'WE ROOLZ: 79480\r\n' 10:31:10.945930 Received DISC (on stdin) 10:31:10.946193 ====> Client forcibly disconnected 10:31:10.947596 Received QUIT (on stdin) 10:31:10.947781 quits 10:31:10.948311 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command REPLY FAIL 500 this might not be a failure Testnum 227 === End of file server.cmd === Start of file valgrind227 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind227 test 0228...[FTP RETR with ACCT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind228 ../src/curl -q --output log/5/curl228.out --include --trace-ascii log/5/trace228 --trace-time ftp://127.0.0.1:43393/228 --ftp-account "one count" > log/5/stdout228 2> log/5/stderr228 228: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 228 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind228 ../src/curl -q --output log/5/curl228.out --include --trace-ascii log/5/trace228 --trace-time ftp://127.0.0.1:43393/228 --ftp-account "one count" > log/5/stdout228 2> log/5/stderr228 === End of file commands.log === Start of file ftp_server.log 10:31:10.234620 ====> Client connect 10:31:10.236689 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:10.240607 < "USER anonymous" 10:31:10.243305 > "331 We are happy you popped in![CR][LF]" 10:31:10.250946 < "PASS ftp@example.com" 10:31:10.251921 > "230 Welcome you silly person[CR][LF]" 10:31:10.256272 < "PWD" 10:31:10.256993 > "257 "/" is current directory[CR][LF]" 10:31:10.261833 < "EPSV" 10:31:10.262408 ====> Passive DATA channel requested by client 10:31:10.262823 DATA sockfilt for passive data channel starting... 10:31:10.277723 DATA sockfilt for passive data channel started (pid 87466) 10:31:10.282400 DATA sockfilt for passive data channel listens on port 35945 10:31:10.282986 > "229 Entering Passive Mode (|||35945|)[LF]" 10:31:10.283288 Client has been notified that DATA conn will be accepted on port 35945 10:31:10.286847 Client connects to port 35945 10:31:10.287371 ====> Client established passive DATA connection on port 35945 10:31:10.289425 < "TYPE I" 10:31:10.290399 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:10.298238 < "SIZE verifiedserver" 10:31:10.298779 > "213 17[CR][LF]" 10:31:10.304193 < "RETR verifiedserver" 10:31:10.304783 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:10.307082 =====> Closing passive DATA connection... 10:31:10.307392 Server disconnects passive DATA connection 10:31:10.308351 Server disconnected passive DATA connection 10:31:10.308761 DATA sockfilt for passive data channel quits (pid 87466) 10:31:10.311135 DATA sockfilt for passive data channel quit (pid 87466) 10:31:10.311576 =====> Closed passive DATA connection 10:31:10.313267 > "226 File transfer complete[CR][LF]" 10:31:10.357642 < "QUIT" 10:31:10.358243 > "221 bye bye baby[CR][LF]" 10:31:10.362962 MAIN sockfilt said DISC 10:31:10.363341 ====> Client disconnected 10:31:10.363975 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:09.904511 ====> Client connect 10:31:09.907532 Received DATA (on stdin) 10:31:09.907892 > 160 bytes data, server => client 10:31:09.908059 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:09.908173 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:09.908263 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:09.910148 < 16 bytes data, client => server 10:31:09.910390 'USER anonymous\r\n' 10:31:09.917186 Received DATA (on stdin) 10:31:09.917627 > 33 bytes data, server => client 10:31:09.917874 '331 We are happy you popped in!\r\n' 10:31:09.920489 < 22 bytes data, client => server 10:31:09.920894 'PASS ftp@example.com\r\n' 10:31:09.922829 Received DATA (on stdin) 10:31:09.923103 > 30 bytes data, server => client 10:31:09.923255 '230 Welcome you silly person\r\n' 10:31:09.926043 < 5 bytes data, client => server 10:31:09.926380 'PWD\r\n' 10:31:09.927917 Received DATA (on stdin) 10:31:09.928167 > 30 bytes data, server => client 10:31:09.928277 '257 "/" is current directory\r\n' 10:31:09.929319 < 6 bytes data, client => server 10:31:09.929609 'EPSV\r\n' 10:31:09.954713 Received DATA (on stdin) 10:31:09.954961 > 38 bytes data, server => client 10:31:09.955087 '229 Entering Passive Mode (|||35945|)\n' 10:31:09.959579 < 8 bytes data, client => server 10:31:09.959814 'TYPE I\r\n' 10:31:09.961279 Received DATA (on stdin) 10:31:09.961479 > 33 bytes data, server => client 10:31:09.961572 '200 I modify TYPE as you wanted\r\n' 10:31:09.964876 < 21 bytes data, client => server 10:31:09.965155 'SIZE verifiedserver\r\n' 10:31:09.969657 Received DATA (on stdin) 10:31:09.969849 > 8 bytes data, server => client 10:31:09.969969 '213 17\r\n' 10:31:09.971954 < 21 bytes data, client => server 10:31:09.972227 'RETR verifiedserver\r\n' 10:31:09.980584 Received DATA (on stdin) 10:31:09.980834 > 29 bytes data, server => client 10:31:09.980934 '150 Binary junk (17 bytes).\r\n' 10:31:09.984160 Received DATA (on stdin) 10:31:09.984429 > 28 bytes data, server => client 10:31:09.984593 '226 File transfer complete\r\n' 10:31:10.025412 < 6 bytes data, client => server 10:31:10.025627 'QUIT\r\n' 10:31:10.029130 Received DATA (on stdin) 10:31:10.029355 > 18 bytes data, server => client 10:31:10.029467 '221 bye bye baby\r\n' 10:31:10.033455 ====> Client disconnect 10:31:10.034243 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:10.945770 Running IPv4 version 10:31:10.947134 ListeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind229 ../src/curl -q --output log/8/curl229.out --include --trace-ascii log/8/trace229 --trace-time ftp://127.0.0.1:42977/229 --ftp-account "one count" > log/8/stdout229 2> log/8/stderr229 ning on port 35945 10:31:10.947711 Wrote pid 87466 to log/5/server/ftp_sockdata.pid 10:31:10.947960 Received PING (on stdin) 10:31:10.952478 Received PORT (on stdin) 10:31:10.957289 ====> Client connect 10:31:10.976199 Received DATA (on stdin) 10:31:10.976709 > 17 bytes data, server => client 10:31:10.976972 'WE ROOLZ: 79602\r\n' 10:31:10.978576 Received DISC (on stdin) 10:31:10.978742 ====> Client forcibly disconnected 10:31:10.980023 Received QUIT (on stdin) 10:31:10.980193 quits 10:31:10.980996 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 please provide account name REPLY ACCT 230 thank you Testnum 228 === End of file server.cmd === Start of file valgrind228 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind228 test 0229...[FTP RETR with bad ACCT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind229 ../src/curl -q --output log/8/curl229.out --include --trace-ascii log/8/trace229 --trace-time ftp://127.0.0.1:42977/229 --ftp-account "one count" > log/8/stdout229 2> log/8/stderr229 229: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 229 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind229 ../src/curl -q --output log/8/curl229.out --include --trace-ascii log/8/trace229 --trace-time ftp://127.0.0.1:42977/229 --ftp-account "one count" > log/8/stdout229 2> log/8/stderr229 === End of file commands.log === Start of file ftp_server.log 10:31:10.312777 ====> Client connect 10:31:10.314093 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:10.320355 < "USER anonymous" 10:31:10.320899 > "331 We are happy you popped in![CR][LF]" 10:31:10.322624 < "PASS ftp@example.com" 10:31:10.323031 > "230 Welcome you silly person[CR][LF]" 10:31:10.325754 < "PWD" 10:31:10.326270 > "257 "/" is current directory[CR][LF]" 10:31:10.333320 < "EPSV" 10:31:10.333827 ====> Passive DATA channel requested by client 10:31:10.334033 DATA sockfilt for passive data channel starting... 10:31:10.354053 DATA sockfilt for passive data channel started (pid 87485) 10:31:10.355363 DATA sockfilt for passive data channel listens on port 39467 10:31:10.356033 > "229 Entering Passive Mode (|||39467|)[LF]" 10:31:10.356425 Client has been notified that DATA conn will be accepted on port 39467 10:31:10.361849 Client connects to port 39467 10:31:10.362278 ====> Client established passive DATA connection on port 39467 10:31:10.363135 < "TYPE I" 10:31:10.363564 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:10.365455 < "SIZE verifiedserver" 10:31:10.366039 > "213 17[CR][LF]" 10:31:10.371285 < "RETR verifiedserver" 10:31:10.371904 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:10.372845 =====> Closing passive DATA connection... 10:31:10.373233 Server disconnects passive DATA connection 10:31:10.375919 Server disconnected passive DATA connection 10:31:10.376306 DATA sockfilt for passive data channel quits (pid 87485) 10:31:10.378490 DATA sockfilt for passive data channel quit (pid 87485) 10:31:10.378833 =====> Closed passive DATA connection 10:31:10.379217 > "226 File transfer complete[CR][LF]" 10:31:10.422305 < "QUIT" 10:31:10.422786 > "221 bye bye baby[CR][LF]" 10:31:10.430389 MAIN sockfilt said DISC 10:31:10.430846 ====> Client disconnected 10:31:10.431494 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:09.983070 ====> Client connect 10:31:09.984906 Received DATA (on stdin) 10:31:09.985119 > 160 bytes data, server => client 10:31:09.985228 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:09.985316 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:09.985386 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:09.989214 < 16 bytes data, client => server 10:31:09.989417 'USER anonymous\r\n' 10:31:09.991781 Received DATA (on stdin) 10:31:09.991933 > 33 bytes data, server => client 10:31:09.992034 '331 We are happy you popped in!\r\n' 10:31:09.992733 < 22 bytes data, client => server 10:31:09.992948 'PASS ftp@example.com\r\n' 10:31:09.993907 Received DATA (on stdin) 10:31:09.994038 > 30 bytes data, server => client 10:31:09.994130 '230 Welcome you silly person\r\n' 10:31:09.994802 < 5 bytes data, client => server 10:31:09.995027 'PWD\r\n' 10:31:09.997152 Received DATA (on stdin) 10:31:09.997328 > 30 bytes data, server => client 10:31:09.997452 '257 "/" is current directory\r\n' 10:31:09.999169 < 6 bytes data, client => server 10:31:09.999416 'EPSV\r\n' 10:31:10.027844 Received DATA (on stdin) 10:31:10.028115 > 38 bytes data, server => client 10:31:10.028251 '229 Entering Passive Mode (|||39467|)\n' 10:31:10.032632 < 8 bytes data, client => server 10:31:10.032912 'TYPE I\r\n' 10:31:10.034515 Received DATA (on stdin) 10:31:10.034716 > 33 bytes data, server => client 10:31:10.034835 '200 I modify TYPE as you wanted\r\n' 10:31:10.035685 < 21 bytes data, client => server 10:31:10.035890 'SIZE verifiedserver\r\n' 10:31:10.038920 Received DATA (on stdin) 10:31:10.039189 > 8 bytes data, server => client 10:31:10.039309 '213 17\r\n' 10:31:10.041290 < 21 bytes data, client => server 10:31:10.041592 'RETR verifiedserver\r\n' 10:31:10.044756 Received DATA (on stdin) 10:31:10.044922 > 29 bytes data, server => client 10:31:10.045023 '150 Binary junk (17 bytes).\r\n' 10:31:10.050141 Received DATA (on stdin) 10:31:10.050316 > 28 bytes data, server => client 10:31:10.050425 '226 File transfer complete\r\n' 10:31:10.089526 < 6 bytes data, client => server 10:31:10.089795 'QUIT\r\n' 10:31:10.096849 Received DATA (on stdin) 10:31:10.097109 > 18 bytes data, server => client 10:31:10.097212 '221 bye bye baby\r\n' 10:31:10.100795 ====> Client disconnect 10:31:10.101781 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:10.023056 Running IPv4 version 10:31:10.023687 Listening on port 39467 10:31:10.024181 Wrote pid 87485 to log/8/server/ftp_sockdata.pid 10:31:10.024475 Received PING (on stdin) 10:31:10.025560 Received PORT (on stdin) 10:31:10.029560 ====> Client connect 10:31:10.044443 Received DATA (on stdin) 10:31:10.044692 > 17 bytes data, server => client 10:31:10.044818 'WE ROOLZ: 86552\r\n' 10:31:10.046031 RecCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind233 ../src/curl -q --output log/7/curl233.out --include --trace-ascii log/7/trace233 --trace-time http://first.host.it.is/we/want/that/page/233 -x 127.0.0.1:40129 --user iam:myself --proxy-user testing:this --location > log/7/stdout233 2> log/7/stderr233 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind230 ../src/curl -q --output log/4/curl230.out --include --trace-ascii log/4/trace230 --trace-time http://127.0.0.1:36757/230 --compressed > log/4/stdout230 2> log/4/stderr230 eived DISC (on stdin) 10:31:10.046266 ====> Client forcibly disconnected 10:31:10.047617 Received QUIT (on stdin) 10:31:10.047835 quits 10:31:10.048304 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 please provide account name REPLY ACCT 532 bluah Testnum 229 === End of file server.cmd === Start of file valgrind229 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind229 test 0233...[HTTP, proxy, site+proxy auth and Location: to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind233 ../src/curl -q --output log/7/curl233.out --include --trace-ascii log/7/trace233 --trace-time http://first.host.it.is/we/want/that/page/233 -x 127.0.0.1:40129 --user iam:myself --proxy-user testing:this --location > log/7/stdout233 2> log/7/stderr233 233: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 233 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind233 ../src/curl -q --output log/7/curl233.out --include --trace-ascii log/7/trace233 --trace-time http://first.host.it.is/we/want/that/page/233 -x 127.0.0.1:40129 --user iam:myself --proxy-user testing:this --location > log/7/stdout233 2> log/7/stderr233 === End of file commands.log === Start of file http_server.log 10:31:10.336798 ====> Client connect 10:31:10.337102 accept_connection 3 returned 4 10:31:10.337278 accept_connection 3 returned 0 10:31:10.337400 Read 93 bytes 10:31:10.337487 Process 93 bytes request 10:31:10.337573 Got request: GET /verifiedserver HTTP/1.1 10:31:10.337651 Are-we-friendly question received 10:31:10.337881 Wrote request (93 bytes) input to log/7/server.input 10:31:10.338064 Identifying ourselves as friends 10:31:10.338755 Response sent (56 bytes) and written to log/7/server.response 10:31:10.338897 special request received, no persistency 10:31:10.338962 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 51718 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 233 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind233 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind233 test 0230...[HTTP GET multiply compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind230 ../src/curl -q --output log/4/curl230.out --include --trace-ascii log/4/trace230 --trace-time http://127.0.0.1:36757/230 --compressed > log/4/stdout230 2> log/4/stderr230 230: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 230 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind230 ../src/curl -q --output log/4/curl230.out --include --trace-ascii log/4/trace230 --trace-time http://127.0.0.1:36757/230 --compressed > log/4/stdout230 2> log/4/stderr230 === End of file commands.log === Start of file http_server.log 10:31:11.111016 ====> Client connect 10:31:11.111301 accept_connection 3 returned 4 10:31:11.111475 accept_connection 3 returned 0 10:31:11.111618 Read 93 bytes 10:31:11.111720 Process 93 bytes request 10:31:11.111806 Got request: GET /verifiedserver HTTP/1.1 10:31:11.111884 Are-we-friendly question received 10:31:11.112109 Wrote request (93 bytes) input to log/4/server.input 10:31:11.112310 Identifying ourselves as friends 10:31:11.113212 Response sent (56 bytes) and written to log/4/server.response 10:31:11.113338 special request received, no persistency 10:31:11.113408 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 47344 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 230 === End of file server.cmd === Start of file server.response HTTP/1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind232 ../src/curl -q --output log/1/curl232.out --include --trace-ascii log/1/trace232 --trace-time http://127.0.0.1:36129/232 --compressed > log/1/stdout232 2> log/1/stderr232 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind234 ../src/curl -q --output log/3/curl234.out --include --trace-ascii log/3/trace234 --trace-time http://first.host.it.is/we/want/that/page/234 -x 127.0.0.1:36933 --user iam:myself --proxy-user testing:this --location-trusted > log/3/stdout234 2> log/3/stderr234 .1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind230 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind230 test 0232...[HTTP GET deflate raw-compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind232 ../src/curl -q --output log/1/curl232.out --include --trace-ascii log/1/trace232 --trace-time http://127.0.0.1:36129/232 --compressed > log/1/stdout232 2> log/1/stderr232 232: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 232 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind232 ../src/curl -q --output log/1/curl232.out --include --trace-ascii log/1/trace232 --trace-time http://127.0.0.1:36129/232 --compressed > log/1/stdout232 2> log/1/stderr232 === End of file commands.log === Start of file http_server.log 10:31:10.227668 ====> Client connect 10:31:10.228014 accept_connection 3 returned 4 10:31:10.228189 accept_connection 3 returned 0 10:31:10.228383 Read 93 bytes 10:31:10.228521 Process 93 bytes request 10:31:10.228625 Got request: GET /verifiedserver HTTP/1.1 10:31:10.228713 Are-we-friendly question received 10:31:10.228996 Wrote request (93 bytes) input to log/1/server.input 10:31:10.229211 Identifying ourselves as friends 10:31:10.230147 Response sent (56 bytes) and written to log/1/server.response 10:31:10.230322 special request received, no persistency 10:31:10.230436 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 55326 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 232 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind232 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind232 test 0234...[HTTP, proxy, site+proxy auth and Location: to new host location-trusted] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind234 ../src/curl -q --output log/3/curl234.out --include --trace-ascii log/3/trace234 --trace-time http://first.host.it.is/we/want/that/page/234 -x 127.0.0.1:36933 --user iam:myself --proxy-user testing:this --location-trusted > log/3/stdout234 2> log/3/stderr234 234: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 234 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind234 ../src/curl -q --output log/3/curl234.out --include --trace-ascii log/3/trace234 --trace-time http://first.host.it.is/we/want/that/page/234 -x 127.0.0.1:36933 --user iam:myself --proxy-user testing:this --location-trusted > log/3/stdout234 2> log/3/stderr234 === End of file commands.log === Start of file http_server.log 10:31:10.440104 ====> Client connect 10:31:10.440546 accept_connection 3 returned 4 10:31:10.440768 accept_connection 3 returned 0 10:31:10.440922 Read 93 bytes 10:31:10.441015 Process 93 bytes request 10:31:10.441104 Got request: GET /verifiedserver HTTP/1.1 10:31:10.441178 Are-we-friendly question received 10:31:10.441416 Wrote request (93 bytes) input to log/3/server.input 10:31:10.441599 Identifying ourselves as friends 10:31:10.442286 Response sent (56 bytes) and written to log/3/server.response 10:31:10.442432 special request received, no persistency 10:31:10.442505 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42402 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 234 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind234 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind235 ../src/curl -q --output log/2/curl235.out --include --trace-ascii log/2/trace235 --trace-time ftp://127.0.0.1:37959/235 -T log/2/upload235 -C - > log/2/stdout235 2> log/2/stderr235 grind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind234 test 0235...[FTP resumed upload but no file present remotely] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind235 ../src/curl -q --output log/2/curl235.out --include --trace-ascii log/2/trace235 --trace-time ftp://127.0.0.1:37959/235 -T log/2/upload235 -C - > log/2/stdout235 2> log/2/stderr235 235: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 235 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind235 ../src/curl -q --output log/2/curl235.out --include --trace-ascii log/2/trace235 --trace-time ftp://127.0.0.1:37959/235 -T log/2/upload235 -C - > log/2/stdout235 2> log/2/stderr235 === End of file commands.log === Start of file ftp_server.log 10:31:11.291638 ====> Client connect 10:31:11.293149 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:11.301357 < "USER anonymous" 10:31:11.302125 > "331 We are happy you popped in![CR][LF]" 10:31:11.307356 < "PASS ftp@example.com" 10:31:11.308044 > "230 Welcome you silly person[CR][LF]" 10:31:11.311019 < "PWD" 10:31:11.311595 > "257 "/" is current directory[CR][LF]" 10:31:11.316107 < "EPSV" 10:31:11.316665 ====> Passive DATA channel requested by client 10:31:11.316948 DATA sockfilt for passive data channel starting... 10:31:11.330385 DATA sockfilt for passive data channel started (pid 87967) 10:31:11.331794 DATA sockfilt for passive data channel listens on port 33141 10:31:11.332438 > "229 Entering Passive Mode (|||33141|)[LF]" 10:31:11.332880 Client has been notified that DATA conn will be accepted on port 33141 10:31:11.335970 Client connects to port 33141 10:31:11.336405 ====> Client established passive DATA connection on port 33141 10:31:11.337632 < "TYPE I" 10:31:11.338246 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:11.340556 < "SIZE verifiedserver" 10:31:11.341241 > "213 17[CR][LF]" 10:31:11.347604 < "RETR verifiedserver" 10:31:11.348256 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:11.349169 =====> Closing passive DATA connection... 10:31:11.349593 Server disconnects passive DATA connection 10:31:11.351365 Server disconnected passive DATA connection 10:31:11.351899 DATA sockfilt for passive data channel quits (pid 87967) 10:31:11.355394 DATA sockfilt for passive data channel quit (pid 87967) 10:31:11.355776 =====> Closed passive DATA connection 10:31:11.356231 > "226 File transfer complete[CR][LF]" 10:31:11.395378 < "QUIT" 10:31:11.395893 > "221 bye bye baby[CR][LF]" 10:31:11.398008 MAIN sockfilt said DISC 10:31:11.398376 ====> Client disconnected 10:31:11.399043 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:10.960774 ====> Client connect 10:31:10.964492 Received DATA (on stdin) 10:31:10.964740 > 160 bytes data, server => client 10:31:10.964912 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:10.965014 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:10.965094 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:10.968585 < 16 bytes data, client => server 10:31:10.968882 'USER anonymous\r\n' 10:31:10.974739 Received DATA (on stdin) 10:31:10.975040 > 33 bytes data, server => client 10:31:10.975191 '331 We are happy you popped in!\r\n' 10:31:10.976401 < 22 bytes data, client => server 10:31:10.976684 'PASS ftp@example.com\r\n' 10:31:10.979558 Received DATA (on stdin) 10:31:10.979781 > 30 bytes data, server => client 10:31:10.979909 '230 Welcome you silly person\r\n' 10:31:10.980781 < 5 bytes data, client => server 10:31:10.981010 'PWD\r\n' 10:31:10.982457 Received DATA (on stdin) 10:31:10.982687 > 30 bytes data, server => client 10:31:10.982800 '257 "/" is current directory\r\n' 10:31:10.983596 < 6 bytes data, client => server 10:31:10.983805 'EPSV\r\n' 10:31:11.004172 Received DATA (on stdin) 10:31:11.004843 > 38 bytes data, server => client 10:31:11.005058 '229 Entering Passive Mode (|||33141|)\n' 10:31:11.006792 < 8 bytes data, client => server 10:31:11.007009 'TYPE I\r\n' 10:31:11.009510 Received DATA (on stdin) 10:31:11.009742 > 33 bytes data, server => client 10:31:11.009838 '200 I modify TYPE as you wanted\r\n' 10:31:11.010588 < 21 bytes data, client => server 10:31:11.010839 'SIZE verifiedserver\r\n' 10:31:11.015504 Received DATA (on stdin) 10:31:11.015744 > 8 bytes data, server => client 10:31:11.015879 '213 17\r\n' 10:31:11.016946 < 21 bytes data, client => server 10:31:11.017217 'RETR verifiedserver\r\n' 10:31:11.020511 Received DATA (on stdin) 10:31:11.020767 > 29 bytes data, server => client 10:31:11.020942 '150 Binary junk (17 bytes).\r\n' 10:31:11.030310 Received DATA (on stdin) 10:31:11.030497 > 28 bytes data, server => client 10:31:11.030659 '226 File transfer complete\r\n' 10:31:11.065423 < 6 bytes data, client => server 10:31:11.065577 'QUIT\r\n' 10:31:11.066801 Received DATA (on stdin) 10:31:11.066995 > 18 bytes data, server => client 10:31:11.067111 '221 bye bye baby\r\n' 10:31:11.067826 ====> Client disconnect 10:31:11.072397 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:11.998528 Running IPv4 version 10:31:11.999157 Listening on port 33141 10:31:11.999647 Wrote pid 87967 to log/2/server/ftp_sockdata.pid 10:31:12.000804 Received PING (on stdin) 10:31:12.001818 Received PORT (on stdin) 10:31:12.006400 ====> Client connect 10:31:12.019649 Received DATA (on stdin) 10:31:12.019882 > 17 bytes data, server => client 10:31:12.019999 'WE ROOLZ: 79558\r\n' 10:31:12.021494 Received DISC (on stdin) 10:31:12.021826 ====> Client forcibly disconnected 10:31:12.023148 Received QUIT (on stdin) 10:31:12.023389 quits 10:31:12.023921 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY SIZE 500 command not understood Testnum 235 === End of file server.cmd === Start of file upload235 this is the *****crap******** that we're gonna upload worx? === End of file upload235 === Start of file valgrind235 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind238 ../src/curl -q --output log/8/curl238.out --include --trace-ascii log/8/trace238 --trace-time ftp://127.0.0.1:42977/238 > log/8/stdout238 2> log/8/stderr238 ind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind235 test 0238...[FTP getting bad port in response to EPSV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind238 ../src/curl -q --output log/8/curl238.out --include --trace-ascii log/8/trace238 --trace-time ftp://127.0.0.1:42977/238 > log/8/stdout238 2> log/8/stderr238 238: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 238 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind238 ../src/curl -q --output log/8/curl238.out --include --trace-ascii log/8/trace238 --trace-time ftp://127.0.0.1:42977/238 > log/8/stdout238 2> log/8/stderr238 === End of file commands.log === Start of file ftp_server.log 10:31:11.409678 ====> Client connect 10:31:11.411298 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:11.420898 < "USER anonymous" 10:31:11.421346 > "331 We are happy you popped in![CR][LF]" 10:31:11.427403 < "PASS ftp@example.com" 10:31:11.427848 > "230 Welcome you silly person[CR][LF]" 10:31:11.432158 < "PWD" 10:31:11.432685 > "257 "/" is current directory[CR][LF]" 10:31:11.434681 < "EPSV" 10:31:11.435098 ====> Passive DATA channel requested by client 10:31:11.435425 DATA sockfilt for passive data channel starting... 10:31:11.447895 DATA sockfilt for passive data channel started (pid 87999) 10:31:11.449243 DATA sockfilt for passive data channel listens on port 34425 10:31:11.449963 > "229 Entering Passive Mode (|||34425|)[LF]" 10:31:11.450271 Client has been notified that DATA conn will be accepted on port 34425 10:31:11.461922 Client connects to port 34425 10:31:11.462525 ====> Client established passive DATA connection on port 34425 10:31:11.463734 < "TYPE I" 10:31:11.464370 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:11.472513 < "SIZE verifiedserver" 10:31:11.473367 > "213 17[CR][LF]" 10:31:11.486351 < "RETR verifiedserver" 10:31:11.487038 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:11.487998 =====> Closing passive DATA connection... 10:31:11.488374 Server disconnects passive DATA connection 10:31:11.489268 Server disconnected passive DATA connection 10:31:11.489736 DATA sockfilt for passive data channel quits (pid 87999) 10:31:11.501685 DATA sockfilt for passive data channel quit (pid 87999) 10:31:11.502114 =====> Closed passive DATA connection 10:31:11.502550 > "226 File transfer complete[CR][LF]" 10:31:11.534033 < "QUIT" 10:31:11.534443 > "221 bye bye baby[CR][LF]" 10:31:11.542919 MAIN sockfilt said DISC 10:31:11.543439 ====> Client disconnected 10:31:11.544018 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:11.075642 ====> Client connect 10:31:11.082081 Received DATA (on stdin) 10:31:11.082265 > 160 bytes data, server => client 10:31:11.082364 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:11.082456 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:11.082532 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:11.086617 < 16 bytes data, client => server 10:31:11.086813 'USER anonymous\r\n' 10:31:11.096463 Received DATA (on stdin) 10:31:11.096669 > 33 bytes data, server => client 10:31:11.096765 '331 We are happy you popped in!\r\n' 10:31:11.097488 < 22 bytes data, client => server 10:31:11.097696 'PASS ftp@example.com\r\n' 10:31:11.098705 Received DATA (on stdin) 10:31:11.098913 > 30 bytes data, server => client 10:31:11.099004 '230 Welcome you silly person\r\n' 10:31:11.099684 < 5 bytes data, client => server 10:31:11.099937 'PWD\r\n' 10:31:11.103557 Received DATA (on stdin) 10:31:11.103763 > 30 bytes data, server => client 10:31:11.103861 '257 "/" is current directory\r\n' 10:31:11.104823 < 6 bytes data, client => server 10:31:11.105055 'EPSV\r\n' 10:31:11.120788 Received DATA (on stdin) 10:31:11.121029 > 38 bytes data, server => client 10:31:11.121156 '229 Entering Passive Mode (|||34425|)\n' 10:31:11.126297 < 8 bytes data, client => server 10:31:11.126498 'TYPE I\r\n' 10:31:11.137106 Received DATA (on stdin) 10:31:11.137376 > 33 bytes data, server => client 10:31:11.137539 '200 I modify TYPE as you wanted\r\n' 10:31:11.142281 < 21 bytes data, client => server 10:31:11.142626 'SIZE verifiedserver\r\n' 10:31:11.144252 Received DATA (on stdin) 10:31:11.144595 > 8 bytes data, server => client 10:31:11.144812 '213 17\r\n' 10:31:11.152647 < 21 bytes data, client => server 10:31:11.152884 'RETR verifiedserver\r\n' 10:31:11.157933 Received DATA (on stdin) 10:31:11.158186 > 29 bytes data, server => client 10:31:11.158378 '150 Binary junk (17 bytes).\r\n' 10:31:11.176436 Received DATA (on stdin) 10:31:11.176665 > 28 bytes data, server => client 10:31:11.176785 '226 File transfer complete\r\n' 10:31:11.204147 < 6 bytes data, client => server 10:31:11.204413 'QUIT\r\n' 10:31:11.208433 Received DATA (on stdin) 10:31:11.208768 > 18 bytes data, server => client 10:31:11.208943 '221 bye bye baby\r\n' 10:31:11.209741 ====> Client disconnect 10:31:11.220407 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:11.117014 Running IPv4 version 10:31:11.117690 Listening on port 34425 10:31:11.118142 Wrote pid 87999 to log/8/server/ftp_sockdata.pid 10:31:11.118334 Received PING (on stdin) 10:31:11.119336 Received PORT (on stdin) 10:31:11.125850 ====> Client connect 10:31:11.158931 Received DATA (on stdin) 10:31:11.159168 > 17 bytes data, server => client 10:31:11.159307 'WE ROOLZ: 86552\r\n' 10:31:11.159716 Received DISC (on stdin) 10:31:11.159949 ====> Client forcibly disconnected 10:31:11.168437 Received QUIT (on stdin) 10:31:11.168687 quits 10:31:11.169191 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 229 Entering Passive Mode (|||1000000|) Testnum 238 === End of file server.cmd === Start of file valgrind238 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind237 ../src/curl -q --output log/5/curl237.out --include --trace-ascii log/5/trace237 --trace-time ftp://127.0.0.1:43393/237 --disable-epsv > log/5/stdout237 2> log/5/stderr237 called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind238 test 0237...[FTP getting bad host in 227-response to PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind237 ../src/curl -q --output log/5/curl237.out --include --trace-ascii log/5/trace237 --trace-time ftp://127.0.0.1:43393/237 --disable-epsv > log/5/stdout237 2> log/5/stderr237 237: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 237 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind237 ../src/curl -q --output log/5/curl237.out --include --trace-ascii log/5/trace237 --trace-time ftp://127.0.0.1:43393/237 --disable-epsv > log/5/stdout237 2> log/5/stderr237 === End of file commands.log === Start of file ftp_server.log 10:31:11.361641 ====> Client connect 10:31:11.363864 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:11.366785 < "USER anonymous" 10:31:11.367493 > "331 We are happy you popped in![CR][LF]" 10:31:11.370285 < "PASS ftp@example.com" 10:31:11.370980 > "230 Welcome you silly person[CR][LF]" 10:31:11.373785 < "PWD" 10:31:11.374368 > "257 "/" is current directory[CR][LF]" 10:31:11.375995 < "EPSV" 10:31:11.376321 ====> Passive DATA channel requested by client 10:31:11.376569 DATA sockfilt for passive data channel starting... 10:31:11.391956 DATA sockfilt for passive data channel started (pid 87991) 10:31:11.395076 DATA sockfilt for passive data channel listens on port 40431 10:31:11.395570 > "229 Entering Passive Mode (|||40431|)[LF]" 10:31:11.395831 Client has been notified that DATA conn will be accepted on port 40431 10:31:11.402145 Client connects to port 40431 10:31:11.402661 ====> Client established passive DATA connection on port 40431 10:31:11.404059 < "TYPE I" 10:31:11.404704 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:11.408581 < "SIZE verifiedserver" 10:31:11.409352 > "213 17[CR][LF]" 10:31:11.412136 < "RETR verifiedserver" 10:31:11.412772 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:11.413846 =====> Closing passive DATA connection... 10:31:11.414232 Server disconnects passive DATA connection 10:31:11.415436 Server disconnected passive DATA connection 10:31:11.415948 DATA sockfilt for passive data channel quits (pid 87991) 10:31:11.418014 DATA sockfilt for passive data channel quit (pid 87991) 10:31:11.418477 =====> Closed passive DATA connection 10:31:11.418846 > "226 File transfer complete[CR][LF]" 10:31:11.462589 < "QUIT" 10:31:11.463168 > "221 bye bye baby[CR][LF]" 10:31:11.468125 MAIN sockfilt said DISC 10:31:11.468813 ====> Client disconnected 10:31:11.469874 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:11.031737 ====> Client connect 10:31:11.034696 Received DATA (on stdin) 10:31:11.034962 > 160 bytes data, server => client 10:31:11.035083 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:11.035162 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:11.035226 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:11.036598 < 16 bytes data, client => server 10:31:11.036844 'USER anonymous\r\n' 10:31:11.038495 Received DATA (on stdin) 10:31:11.038668 > 33 bytes data, server => client 10:31:11.038777 '331 We are happy you popped in!\r\n' 10:31:11.039783 < 22 bytes data, client => server 10:31:11.040029 'PASS ftp@example.com\r\n' 10:31:11.042308 Received DATA (on stdin) 10:31:11.042510 > 30 bytes data, server => client 10:31:11.042628 '230 Welcome you silly person\r\n' 10:31:11.043400 < 5 bytes data, client => server 10:31:11.043569 'PWD\r\n' 10:31:11.045221 Received DATA (on stdin) 10:31:11.045397 > 30 bytes data, server => client 10:31:11.045492 '257 "/" is current directory\r\n' 10:31:11.046149 < 6 bytes data, client => server 10:31:11.046316 'EPSV\r\n' 10:31:11.066434 Received DATA (on stdin) 10:31:11.066614 > 38 bytes data, server => client 10:31:11.066729 '229 Entering Passive Mode (|||40431|)\n' 10:31:11.072955 < 8 bytes data, client => server 10:31:11.073210 'TYPE I\r\n' 10:31:11.075570 Received DATA (on stdin) 10:31:11.075782 > 33 bytes data, server => client 10:31:11.075891 '200 I modify TYPE as you wanted\r\n' 10:31:11.076722 < 21 bytes data, client => server 10:31:11.077005 'SIZE verifiedserver\r\n' 10:31:11.080229 Received DATA (on stdin) 10:31:11.080875 > 8 bytes data, server => client 10:31:11.081084 '213 17\r\n' 10:31:11.081995 < 21 bytes data, client => server 10:31:11.082209 'RETR verifiedserver\r\n' 10:31:11.083676 Received DATA (on stdin) 10:31:11.083939 > 29 bytes data, server => client 10:31:11.085211 '150 Binary junk (17 bytes).\r\n' 10:31:11.089736 Received DATA (on stdin) 10:31:11.089862 > 28 bytes data, server => client 10:31:11.089946 '226 File transfer complete\r\n' 10:31:11.131254 < 6 bytes data, client => server 10:31:11.131476 'QUIT\r\n' 10:31:11.134753 Received DATA (on stdin) 10:31:11.134962 > 18 bytes data, server => client 10:31:11.135102 '221 bye bye baby\r\n' 10:31:11.138426 ====> Client disconnect 10:31:11.141516 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:11.059171 Running IPv4 version 10:31:11.059939 Listening on port 40431 10:31:11.061852 Wrote pid 87991 to log/5/server/ftp_sockdata.pid 10:31:11.062089 Received PING (on stdin) 10:31:11.063342 Received PORT (on stdin) 10:31:11.072599 ====> Client connect 10:31:11.084175 Received DATA (on stdin) 10:31:11.084490 > 17 bytes data, server => client 10:31:11.084686 'WE ROOLZ: 79602\r\n' 10:31:11.085542 Received DISC (on stdin) 10:31:11.085825 ====> Client forcibly disconnected 10:31:11.087107 Received QUIT (on stdin) 10:31:11.087271 quits 10:31:11.087748 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASV 227 Entering Passive Mode (1216,256,2,127,127,127) Testnum 237 === End of file server.cmd === Start of file valgrind237 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note thatCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind236 ../src/curl -q --output log/6/curl236.out --include --trace-ascii log/6/trace236 --trace-time ftp://127.0.0.1:33323/236 -T log/6/file236.txt -C - > log/6/stdout236 2> log/6/stderr236 if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind237 test 0236...[FTP resume upload but denied access to remote file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind236 ../src/curl -q --output log/6/curl236.out --include --trace-ascii log/6/trace236 --trace-time ftp://127.0.0.1:33323/236 -T log/6/file236.txt -C - > log/6/stdout236 2> log/6/stderr236 236: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 236 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind236 ../src/curl -q --output log/6/curl236.out --include --trace-ascii log/6/trace236 --trace-time ftp://127.0.0.1:33323/236 -T log/6/file236.txt -C - > log/6/stdout236 2> log/6/stderr236 === End of file commands.log === Start of file file236.txt Test data === End of file file236.txt === Start of file ftp_server.log 10:31:11.353747 ====> Client connect 10:31:11.355394 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:11.362515 < "USER anonymous" 10:31:11.362969 > "331 We are happy you popped in![CR][LF]" 10:31:11.368908 < "PASS ftp@example.com" 10:31:11.369625 > "230 Welcome you silly person[CR][LF]" 10:31:11.372785 < "PWD" 10:31:11.373294 > "257 "/" is current directory[CR][LF]" 10:31:11.377855 < "EPSV" 10:31:11.378254 ====> Passive DATA channel requested by client 10:31:11.378512 DATA sockfilt for passive data channel starting... 10:31:11.391235 DATA sockfilt for passive data channel started (pid 87992) 10:31:11.393000 DATA sockfilt for passive data channel listens on port 35289 10:31:11.393782 > "229 Entering Passive Mode (|||35289|)[LF]" 10:31:11.394233 Client has been notified that DATA conn will be accepted on port 35289 10:31:11.397764 Client connects to port 35289 10:31:11.398327 ====> Client established passive DATA connection on port 35289 10:31:11.399527 < "TYPE I" 10:31:11.400174 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:11.406513 < "SIZE verifiedserver" 10:31:11.407226 > "213 17[CR][LF]" 10:31:11.411338 < "RETR verifiedserver" 10:31:11.411814 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:11.412619 =====> Closing passive DATA connection... 10:31:11.413021 Server disconnects passive DATA connection 10:31:11.414361 Server disconnected passive DATA connection 10:31:11.414744 DATA sockfilt for passive data channel quits (pid 87992) 10:31:11.420129 DATA sockfilt for passive data channel quit (pid 87992) 10:31:11.420538 =====> Closed passive DATA connection 10:31:11.420932 > "226 File transfer complete[CR][LF]" 10:31:11.456928 < "QUIT" 10:31:11.457868 > "221 bye bye baby[CR][LF]" 10:31:11.464452 MAIN sockfilt said DISC 10:31:11.464931 ====> Client disconnected 10:31:11.465693 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:12.022421 ====> Client connect 10:31:12.028786 Received DATA (on stdin) 10:31:12.029557 > 160 bytes data, server => client 10:31:12.029724 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:12.029815 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:12.029886 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:12.030922 < 16 bytes data, client => server 10:31:12.031063 'USER anonymous\r\n' 10:31:12.035094 Received DATA (on stdin) 10:31:12.035255 > 33 bytes data, server => client 10:31:12.035349 '331 We are happy you popped in!\r\n' 10:31:12.037933 < 22 bytes data, client => server 10:31:12.038098 'PASS ftp@example.com\r\n' 10:31:12.040499 Received DATA (on stdin) 10:31:12.040759 > 30 bytes data, server => client 10:31:12.040882 '230 Welcome you silly person\r\n' 10:31:12.041818 < 5 bytes data, client => server 10:31:12.042061 'PWD\r\n' 10:31:12.044467 Received DATA (on stdin) 10:31:12.044671 > 30 bytes data, server => client 10:31:12.044770 '257 "/" is current directory\r\n' 10:31:12.047912 < 6 bytes data, client => server 10:31:12.048160 'EPSV\r\n' 10:31:12.065361 Received DATA (on stdin) 10:31:12.065584 > 38 bytes data, server => client 10:31:12.065674 '229 Entering Passive Mode (|||35289|)\n' 10:31:12.067967 < 8 bytes data, client => server 10:31:12.068111 'TYPE I\r\n' 10:31:12.071619 Received DATA (on stdin) 10:31:12.071853 > 33 bytes data, server => client 10:31:12.071953 '200 I modify TYPE as you wanted\r\n' 10:31:12.074222 < 21 bytes data, client => server 10:31:12.074457 'SIZE verifiedserver\r\n' 10:31:12.078100 Received DATA (on stdin) 10:31:12.078365 > 8 bytes data, server => client 10:31:12.078578 '213 17\r\n' 10:31:12.079733 < 21 bytes data, client => server 10:31:12.079921 'RETR verifiedserver\r\n' 10:31:12.082651 Received DATA (on stdin) 10:31:12.082785 > 29 bytes data, server => client 10:31:12.082870 '150 Binary junk (17 bytes).\r\n' 10:31:12.096440 Received DATA (on stdin) 10:31:12.096669 > 28 bytes data, server => client 10:31:12.096764 '226 File transfer complete\r\n' 10:31:12.125814 < 6 bytes data, client => server 10:31:12.126095 'QUIT\r\n' 10:31:12.128945 Received DATA (on stdin) 10:31:12.129128 > 18 bytes data, server => client 10:31:12.129238 '221 bye bye baby\r\n' 10:31:12.130730 ====> Client disconnect 10:31:12.135821 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:11.060190 Running IPv4 version 10:31:11.061005 Listening on port 35289 10:31:11.061457 Wrote pid 87992 to log/6/server/ftp_sockdata.pid 10:31:11.061651 Received PING (on stdin) 10:31:11.062661 Received PORT (on stdin) 10:31:11.067189 ====> Client connect 10:31:11.083033 Received DATA (on stdin) 10:31:11.083264 > 17 bytes data, server => client 10:31:11.083421 'WE ROOLZ: 79480\r\n' 10:31:11.084243 Received DISC (on stdin) 10:31:11.084503 ====> Client forcibly disconnected 10:31:11.089472 Received QUIT (on stdin) 10:31:11.089644 quits 10:31:11.090088 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY SIZE 550 access to this file is very much denied REPLY APPE 550 I said: access to this file is very much denied REPLY STOR 550 I said: access to this file is very much denied REPLY SIZE 500 command not understood Testnum 236 === End of file server.cmd === Start of file valgrind236 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit dCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind239 ../src/curl -q --output log/7/curl239.out --include --trace-ascii log/7/trace239 --trace-time http://127.0.0.1:40129/239 --proxy http://127.0.0.1:40129 --proxy-user testuser:testpass --proxy-ntlm -d "postit" > log/7/stdout239 2> log/7/stderr239 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind243 ../src/curl -q --output log/2/curl243.out --include --trace-ascii log/2/trace243 --trace-time http://127.0.0.1:43789/243 --proxy http://127.0.0.1:43789 --proxy-user testuser:testpass --proxy-anyauth -d "postit" > log/2/stdout243 2> log/2/stderr243 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind244 ../src/curl -q --output log/8/curl244.out --include --trace-ascii log/8/trace244 --trace-time --ftp-method nocwd ftp://127.0.0.1:42977/fir%23t/th%69rd/244/ > log/8/stdout244 2> log/8/stderr244 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind245 ../src/curl -q --output log/5/curl245.out --include --trace-ascii log/5/trace245 --trace-time http://127.0.0.1:41733/245 -u auser:apasswd --digest -d "junkelijunk" > log/5/stdout245 2> log/5/stderr245 ebuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind236 test 0239...[HTTP proxy-auth NTLM and then POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind239 ../src/curl -q --output log/7/curl239.out --include --trace-ascii log/7/trace239 --trace-time http://127.0.0.1:40129/239 --proxy http://127.0.0.1:40129 --proxy-user testuser:testpass --proxy-ntlm -d "postit" > log/7/stdout239 2> log/7/stderr239 239: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 239 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind239 ../src/curl -q --output log/7/curl239.out --include --trace-ascii log/7/trace239 --trace-time http://127.0.0.1:40129/239 --proxy http://127.0.0.1:40129 --proxy-user testuser:testpass --proxy-ntlm -d "postit" > log/7/stdout239 2> log/7/stderr239 === End of file commands.log === Start of file http_server.log 10:31:11.381713 ====> Client connect 10:31:11.382075 accept_connection 3 returned 4 10:31:11.386799 accept_connection 3 returned 0 10:31:11.387082 Read 93 bytes 10:31:11.387186 Process 93 bytes request 10:31:11.387275 Got request: GET /verifiedserver HTTP/1.1 10:31:11.387348 Are-we-friendly question received 10:31:11.387667 Wrote request (93 bytes) input to log/7/server.input 10:31:11.387909 Identifying ourselves as friends 10:31:11.388919 Response sent (56 bytes) and written to log/7/server.response 10:31:11.389098 special request received, no persistency 10:31:11.389178 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 51720 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 239 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind239 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind239 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/1/server/http_ipv6_server.pid" --logfile "log/1/http_ipv6_server.log" --logdir "log/1" --portfile log/1/server/http_ipv6_server.port --config log/1/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 88026 port 36867 * pid http-ipv6 => 88026 88026 prechecked ./server/servers resolve --ipv6 ip6-localhost test 0241 SKIPPED: Resolving IPv6 'ip6-localhost' didn't work test 0243...[HTTP POST with --proxy-anyauth, picking NTLM] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind243 ../src/curl -q --output log/2/curl243.out --include --trace-ascii log/2/trace243 --trace-time http://127.0.0.1:43789/243 --proxy http://127.0.0.1:43789 --proxy-user testuser:testpass --proxy-anyauth -d "postit" > log/2/stdout243 2> log/2/stderr243 243: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 243 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind243 ../src/curl -q --output log/2/curl243.out --include --trace-ascii log/2/trace243 --trace-time http://127.0.0.1:43789/243 --proxy http://127.0.0.1:43789 --proxy-user testuser:testpass --proxy-anyauth -d "postit" > log/2/stdout243 2> log/2/stderr243 === End of file commands.log === Start of file http_server.log 10:31:11.955601 ====> Client connect 10:31:11.956015 accept_connection 3 returned 4 10:31:11.956200 accept_connection 3 returned 0 10:31:11.956401 Read 93 bytes 10:31:11.956533 Process 93 bytes request 10:31:11.956637 Got request: GET /verifiedserver HTTP/1.1 10:31:11.956718 Are-we-friendly question received 10:31:11.957055 Wrote request (93 bytes) input to log/2/server.input 10:31:11.957322 Identifying ourselves as friends 10:31:11.958151 Response sent (56 bytes) and written to log/2/server.response 10:31:11.958345 special request received, no persistency 10:31:11.958429 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 41982 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 243 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind243 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind243 test 0245...[HTTP POST --digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind245 ../src/curl -q --output log/5/curl245.out --include --trace-ascii log/5/trace245 --trace-time http://127.0.0.1:41733/245 -u auser:apasswd --digest -d "junkelijunk" > log/5/stdout245 2> log/5/stderr245 245: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 245 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind245 ../src/curl -q --output log/5/curl245.out --include --trace-ascii log/5/trace245 --trace-time http://127.0.0.1:41733/245 -u auser:apasswd --digest -d "junkelijunk" > log/5/stdout245 2> log/5/stderr245 === End of file commands.log === Start of file http_server.log 10:31:13.019153 ====> Client connect 10:31:13.020844 accept_connection 3 returned 4 10:31:13.021034 accept_connection 3 returned 0 10:31:13.021157 Read 93 bytes 10:31:13.021247 Process 93 bytes request 10:31:13.021337 Got request: GET /verifiedserver HTTP/1.1 10:31:13.021406 Are-we-friendly question received 10:31:13.021637 Wrote request (93 bytes) input to log/5/server.input 10:31:13.021812 Identifying ourselves as friends 10:31:13.022495 Response sent (56 bytes) and written to log/5/server.response 10:31:13.022603 special request received, no persistency 10:31:13.022669 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 52530 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 245 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind245 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind245 test 0244...[FTP dir listing with nocwd and URL encoded path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind244 ../src/curl -q --output log/8/curl244.out --include --trace-ascii log/8/trace244 --trace-time --ftp-method nocwd ftp://127.0.0.1:42977/fir%23t/th%69rd/244/ > log/8/stdout244 2> log/8/stderr244 244: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 244 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind244 ../src/curl -q --output log/8/curl244.out --include --trace-ascii log/8/trace244 --trace-time --ftp-method nocwd ftp://127.0.0.1:42977/fir%23t/th%69rd/244/ > log/8/stdout244 2> log/8/stderr244 === End of file commands.log === Start of file ftp_server.log 10:31:12.326867 ====> Client connect 10:31:12.328107 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:12.331414 < "USER anonymous" 10:31:12.331819 > "331 We are happy you popped in![CR][LF]" 10:31:12.334430 < "PASS ftp@example.com" 10:31:12.334889 > "230 Welcome you silly person[CR][LF]" 10:31:12.336367 < "PWD" 10:31:12.336793 > "257 "/" is current directory[CR][LF]" 10:31:12.338740 < "EPSV" 10:31:12.339097 ====> Passive DATA channel requested by client 10:31:12.339347 DATA sockfilt for passive data channel starting... 10:31:12.350502 DATA sockfilt for passive data channel started (pid 88327) 10:31:12.351433 DATA sockfilt for passive data channel listens on port 36579 10:31:12.351925 > "229 Entering Passive Mode (|||36579|)[LF]" 10:31:12.352180 Client has been notified that DATA conn will be accepted on port 36579 10:31:12.353933 Client connects to port 36579 10:31:12.354312 ====> Client established passive DATA connection on port 36579 10:31:12.355120 < "TYPE I" 10:31:12.355509 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:12.356966 < "SIZE verifiedserver" 10:31:12.357557 > "213 17[CR][LF]" 10:31:12.359093 < "RETR verifiedserver" 10:31:12.359606 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:12.360329 =====> Closing passive DATA connection... 10:31:12.360556 Server disconnects passive DATA connection 10:31:12.361175 Server disconnected passive DATA connection 10:31:12.361458 DATA sockfilt for passive data channel quits (pid 88327) 10:31:12.363257 DATA sockfilt for passive data channel quit (pid 88327) 10:31:12.363608 =====> Closed passive DATA connection 10:31:12.363877 > "226 File transfer complete[CR][LF]" 10:31:12.410935 < "QUIT" 10:31:12.411331 > "221 bye bye baby[CR][LF]" 10:31:12.412382 MAIN sockfilt said DISC 10:31:12.412730 ====> Client disconnected 10:31:12.413270 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:11.997040 ====> Client connect 10:31:11.998924 Received DATA (on stdin) 10:31:11.999172 > 160 bytes data, server => client 10:31:11.999291 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:11.999390 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:11.999471 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:12.000230 < 16 bytes data, client => server 10:31:12.000643 'USER anonymous\r\n' 10:31:12.002681 Received DATA (on stdin) 10:31:12.002810 > 33 bytes data, server => client 10:31:12.002CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind246 ../src/curl -q --output log/6/curl246.out --include --trace-ascii log/6/trace246 --trace-time http://127.0.0.1:33363/246 -u auser:apasswd --digest -d "junkelijunk" > log/6/stdout246 2> log/6/stderr246 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind240 ../src/curl -q --output log/4/curl240.out --include --trace-ascii log/4/trace240 --trace-time -g "http://[::1]:36181/240" > log/4/stdout240 2> log/4/stderr240 895 '331 We are happy you popped in!\r\n' 10:31:12.003449 < 22 bytes data, client => server 10:31:12.003655 'PASS ftp@example.com\r\n' 10:31:12.005736 Received DATA (on stdin) 10:31:12.005911 > 30 bytes data, server => client 10:31:12.006014 '230 Welcome you silly person\r\n' 10:31:12.006594 < 5 bytes data, client => server 10:31:12.006782 'PWD\r\n' 10:31:12.007633 Received DATA (on stdin) 10:31:12.007823 > 30 bytes data, server => client 10:31:12.007958 '257 "/" is current directory\r\n' 10:31:12.008933 < 6 bytes data, client => server 10:31:12.009171 'EPSV\r\n' 10:31:12.022752 Received DATA (on stdin) 10:31:12.022877 > 38 bytes data, server => client 10:31:12.022963 '229 Entering Passive Mode (|||36579|)\n' 10:31:12.024605 < 8 bytes data, client => server 10:31:12.024741 'TYPE I\r\n' 10:31:12.026349 Received DATA (on stdin) 10:31:12.026511 > 33 bytes data, server => client 10:31:12.026604 '200 I modify TYPE as you wanted\r\n' 10:31:12.027222 < 21 bytes data, client => server 10:31:12.027397 'SIZE verifiedserver\r\n' 10:31:12.028392 Received DATA (on stdin) 10:31:12.028603 > 8 bytes data, server => client 10:31:12.028695 '213 17\r\n' 10:31:12.029249 < 21 bytes data, client => server 10:31:12.029451 'RETR verifiedserver\r\n' 10:31:12.036586 Received DATA (on stdin) 10:31:12.036866 > 29 bytes data, server => client 10:31:12.036993 '150 Binary junk (17 bytes).\r\n' 10:31:12.037340 Received DATA (on stdin) 10:31:12.037537 > 28 bytes data, server => client 10:31:12.037654 '226 File transfer complete\r\n' 10:31:12.081141 < 6 bytes data, client => server 10:31:12.081388 'QUIT\r\n' 10:31:12.082170 Received DATA (on stdin) 10:31:12.082305 > 18 bytes data, server => client 10:31:12.082387 '221 bye bye baby\r\n' 10:31:12.082896 ====> Client disconnect 10:31:12.083585 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:12.018433 Running IPv4 version 10:31:12.018971 Listening on port 36579 10:31:12.020898 Wrote pid 88327 to log/8/server/ftp_sockdata.pid 10:31:12.021057 Received PING (on stdin) 10:31:12.021745 Received PORT (on stdin) 10:31:12.024388 ====> Client connect 10:31:12.030857 Received DATA (on stdin) 10:31:12.031054 > 17 bytes data, server => client 10:31:12.031156 'WE ROOLZ: 86552\r\n' 10:31:12.031705 Received DISC (on stdin) 10:31:12.031909 ====> Client forcibly disconnected 10:31:12.032686 Received QUIT (on stdin) 10:31:12.032838 quits 10:31:12.033256 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 244 === End of file server.cmd === Start of file valgrind244 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind244 test 0246...[HTTP POST --digest with server doing a 100 before 401 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind246 ../src/curl -q --output log/6/curl246.out --include --trace-ascii log/6/trace246 --trace-time http://127.0.0.1:33363/246 -u auser:apasswd --digest -d "junkelijunk" > log/6/stdout246 2> log/6/stderr246 246: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 246 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind246 ../src/curl -q --output log/6/curl246.out --include --trace-ascii log/6/trace246 --trace-time http://127.0.0.1:33363/246 -u auser:apasswd --digest -d "junkelijunk" > log/6/stdout246 2> log/6/stderr246 === End of file commands.log === Start of file http_server.log 10:31:12.050957 ====> Client connect 10:31:12.051260 accept_connection 3 returned 4 10:31:12.051443 accept_connection 3 returned 0 10:31:12.051559 Read 93 bytes 10:31:12.051633 Process 93 bytes request 10:31:12.051717 Got request: GET /verifiedserver HTTP/1.1 10:31:12.051779 Are-we-friendly question received 10:31:12.051988 Wrote request (93 bytes) input to log/6/server.input 10:31:12.052151 Identifying ourselves as friends 10:31:12.052990 Response sent (56 bytes) and written to log/6/server.response 10:31:12.053136 special request received, no persistency 10:31:12.053206 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 35362 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 246 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind246 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind246 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/4/server/http_ipv6_server.pid" --logfCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind247 ../src/curl -q --output log/7/curl247.out --include --trace-ascii log/7/trace247 --trace-time ftp://127.0.0.1:38253/247 -T log/7/test247.txt -z "apr 1 2005 08:00:00" > log/7/stdout247 2> log/7/stderr247 ile "log/4/http_ipv6_server.log" --logdir "log/4" --portfile log/4/server/http_ipv6_server.port --config log/4/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 88016 port 36181 * pid http-ipv6 => 88016 88016 test 0240...[HTTP-IPv6 GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind240 ../src/curl -q --output log/4/curl240.out --include --trace-ascii log/4/trace240 --trace-time -g "http://[::1]:36181/240" > log/4/stdout240 2> log/4/stderr240 240: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 240 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind240 ../src/curl -q --output log/4/curl240.out --include --trace-ascii log/4/trace240 --trace-time -g "http://[::1]:36181/240" > log/4/stdout240 2> log/4/stderr240 === End of file commands.log === Start of file http_ipv6_server.log 10:31:11.514434 Running HTTP IPv6 version on port 36181 10:31:11.515369 Wrote pid 88016 to log/4/server/http_ipv6_server.pid 10:31:11.515875 Wrote port 36181 to log/4/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 240 === End of file server.cmd === Start of file valgrind240 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind240 test 0247...[FTP upload time condition evaluates TRUE => skip upload] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind247 ../src/curl -q --output log/7/curl247.out --include --trace-ascii log/7/trace247 --trace-time ftp://127.0.0.1:38253/247 -T log/7/test247.txt -z "apr 1 2005 08:00:00" > log/7/stdout247 2> log/7/stderr247 247: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 247 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind247 ../src/curl -q --output log/7/curl247.out --include --trace-ascii log/7/trace247 --trace-time ftp://127.0.0.1:38253/247 -T log/7/test247.txt -z "apr 1 2005 08:00:00" > log/7/stdout247 2> log/7/stderr247 === End of file commands.log === Start of file ftp_server.log 10:31:12.607186 ====> Client connect 10:31:12.608437 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:12.611158 < "USER anonymous" 10:31:12.611572 > "331 We are happy you popped in![CR][LF]" 10:31:12.613306 < "PASS ftp@example.com" 10:31:12.613976 > "230 Welcome you silly person[CR][LF]" 10:31:12.615709 < "PWD" 10:31:12.616196 > "257 "/" is current directory[CR][LF]" 10:31:12.619385 < "EPSV" 10:31:12.619808 ====> Passive DATA channel requested by client 10:31:12.620155 DATA sockfilt for passive data channel starting... 10:31:12.631750 DATA sockfilt for passive data channel started (pid 88407) 10:31:12.633131 DATA sockfilt for passive data channel listens on port 42333 10:31:12.633783 > "229 Entering Passive Mode (|||42333|)[LF]" 10:31:12.634228 Client has been notified that DATA conn will be accepted on port 42333 10:31:12.636151 Client connects to port 42333 10:31:12.636563 ====> Client established passive DATA connection on port 42333 10:31:12.637435 < "TYPE I" 10:31:12.638021 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:12.640482 < "SIZE verifiedserver" 10:31:12.641148 > "213 17[CR][LF]" 10:31:12.644627 < "RETR verifiedserver" 10:31:12.645215 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:12.646268 =====> Closing passive DATA connection... 10:31:12.646725 Server disconnects passive DATA connection 10:31:12.647931 Server disconnected passive DATA connection 10:31:12.648378 DATA sockfilt for passive data channel quits (pid 88407) 10:31:12.651170 DATA sockfilt for passive data channel quit (pid 88407) 10:31:12.651566 =====> Closed passive DATA connection 10:31:12.651912 > "226 File transfer complete[CR][LF]" 10:31:12.692386 < "QUIT" 10:31:12.692901 > "221 bye bye baby[CR][LF]" 10:31:12.698089 MAIN sockfilt said DISC 10:31:12.699132 ====> Client disconnected 10:31:12.699827 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:13.277350 ====> Client connect 10:31:13.279690 Received DATA (on stdin) 10:31:13.279890 > 160 bytes data, server => client 10:31:13.279986 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:13.280062 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:13.280138 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:13.280929 < 16 bytes data, client => server 10:31:13.281196 'USER anonymous\r\n' 10:31:13.282409 Received DATA (on stdin) 10:31:13.282543 > 33 bytes data, server => client 10:31:13.282654 '331 We are happy you popped in!\r\n' 10:31:13.283295 < 22 bytes data, client => server 10:31:13.283550 'PASS ftp@example.com\r\n' 10:31:13.284946 Received DATA (on stdin) 10:31:13.285104 > 30 bytes data, server => client 10:31:13.285200 '230 Welcome you silly person\r\n' 10:31:13.285863 < 5 bytes data, client => server 10:31:13.286049 'PWD\r\n' 10:31:13.286999 Received DATA (on stdin) 10:31:13.287186 > 30 bytes data, server => client 10:31:13.287320 '257 "/" is current directory\r\n' 10:31:13.289372 < 6 bytes data, client => server 10:31:13.289640 'EPSV\r\n' 10:31:13.304970 Received DATA (on stdin) 10:31:13.305185 > 38 bytes data, server => client 10:31:13.305289 '229 Entering Passive Mode (|||42333|)\n' 10:31:13.306932 < 8 bytes data, client => server 10:31:13.307140 'TYPE I\r\n' 10:31:13.308860 Received DATA (on stdin) 10:31:13.309065 > 33 bytes data, server => client 10:31:13.309166 '200 I modify TYPE as you wanted\r\n' 10:31:13.309924 < 21 bytes data, client => server 10:31:13.310141 'SIZE verifiedserver\r\n' 10:31:13.312483 Received DATA (on stdin) 10:31:13.312759 > 8 bytes data, server => client 10:31:13.312858 '213 17\r\n' 10:31:13.314706 < 21 bytes data, client => server 10:31:13.314971 'RETR verifiedserver\r\n' 10:31:13.316502 Received DATA (on stdin) 10:31:13.316739 > 29 bytes data, server => client 10:31:13.316852 '150 Binary junk (17 bytes).\r\CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind242 ../src/curl -q --output log/3/curl242.out --include --trace-ascii log/3/trace242 --trace-time -g "http://foobar:barfoo@[::1]:35121/242" > log/3/stdout242 2> log/3/stderr242 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind248 ../src/curl -q --output log/1/curl248.out --include --trace-ascii log/1/trace248 --trace-time ftp://127.0.0.1:38733/248 -T log/1/test248.txt -z "apr 1 2005 08:00:00" > log/1/stdout248 2> log/1/stderr248 n' 10:31:13.322756 Received DATA (on stdin) 10:31:13.322953 > 28 bytes data, server => client 10:31:13.323066 '226 File transfer complete\r\n' 10:31:13.361701 < 6 bytes data, client => server 10:31:13.361985 'QUIT\r\n' 10:31:13.364127 Received DATA (on stdin) 10:31:13.364441 > 18 bytes data, server => client 10:31:13.364579 '221 bye bye baby\r\n' 10:31:13.368479 ====> Client disconnect 10:31:13.369366 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:12.300929 Running IPv4 version 10:31:12.301538 Listening on port 42333 10:31:12.301942 Wrote pid 88407 to log/7/server/ftp_sockdata.pid 10:31:12.302122 Received PING (on stdin) 10:31:12.303187 Received PORT (on stdin) 10:31:12.306558 ====> Client connect 10:31:12.316717 Received DATA (on stdin) 10:31:12.316894 > 17 bytes data, server => client 10:31:12.316996 'WE ROOLZ: 79543\r\n' 10:31:12.317922 Received DISC (on stdin) 10:31:12.318171 ====> Client forcibly disconnected 10:31:12.320217 Received QUIT (on stdin) 10:31:12.320564 quits 10:31:12.321072 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 247 === End of file server.cmd === Start of file test247.txt data to see that FTP works so does it? === End of file test247.txt === Start of file valgrind247 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind247 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/3/server/http_ipv6_server.pid" --logfile "log/3/http_ipv6_server.log" --logdir "log/3" --portfile log/3/server/http_ipv6_server.port --config log/3/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 88084 port 35121 * pid http-ipv6 => 88084 88084 test 0242...[HTTP-IPv6 GET with username+password in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind242 ../src/curl -q --output log/3/curl242.out --include --trace-ascii log/3/trace242 --trace-time -g "http://foobar:barfoo@[::1]:35121/242" > log/3/stdout242 2> log/3/stderr242 242: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 242 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind242 ../src/curl -q --output log/3/curl242.out --include --trace-ascii log/3/trace242 --trace-time -g "http://foobar:barfoo@[::1]:35121/242" > log/3/stdout242 2> log/3/stderr242 === End of file commands.log === Start of file http_ipv6_server.log 10:31:11.648505 Running HTTP IPv6 version on port 35121 10:31:11.649185 Wrote pid 88084 to log/3/server/http_ipv6_server.pid 10:31:11.649469 Wrote port 35121 to log/3/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 242 === End of file server.cmd === Start of file valgrind242 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind242 test 0248...[FTP upload time condition evaluates FALSE => upload anyway] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind248 ../src/curl -q --output log/1/curl248.out --include --trace-ascii log/1/trace248 --trace-time ftp://127.0.0.1:38733/248 -T log/1/test248.txt -z "apr 1 2005 08:00:00" > log/1/stdout248 2> log/1/stderr248 248: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 248 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind248 ../src/curl -q --output log/1/curl248.out --include --trace-ascii log/1/trace248 --trace-time ftp://127.0.0.1:38733/248 -T log/1/test248.txt -z "apr 1 2005 08:00:00" > log/1/stdout248 2> log/1/stderr248 === End of file commands.log === Start of file ftp_server.log 10:31:12.985672 ====> Client connect 10:31:12.988254 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:12.998893 < "USER anonymous" 10:31:12.999599 > "331 We are happy you popped in![CR][LF]" 10:31:13.011377 < "PASS ftp@example.com" 10:31:13.011956 > "230 Welcome you silly person[CR][LF]" 10:31:13.014484 < "PWD" 10:31:13.015236 > "257 "/" is current directory[CR][LF]" 10:31:13.022442 < "EPSV" 10:31:13.022983 ====> Passive DATA channel requested by client 10:31:13.023354 DATA sockfilt for passive data channel starting... 10:31:13.048054 DATA sockfilt for passive data channel started (pid 88629) 10:31:13.051698 DATA sockfilt for passive data channel listens on port 41769 10:31:13.052566 > "229 Entering Passive Mode (|||41769|)[LF]" 10:31:13.053034 Client has been notified that DATA conn will be accepted on port 41769 10:31:13.058343 Client connects to port 41769 10:31:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind249 ../src/curl -q --output log/2/curl249.out --include --trace-ascii log/2/trace249 --trace-time http://127.0.0.1:43789/249 -z "dec 12 12:00:00 1999 GMT" > log/2/stdout249 2> log/2/stderr249 13.059144 ====> Client established passive DATA connection on port 41769 10:31:13.060648 < "TYPE I" 10:31:13.061368 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:13.067252 < "SIZE verifiedserver" 10:31:13.068012 > "213 17[CR][LF]" 10:31:13.074638 < "RETR verifiedserver" 10:31:13.075384 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:13.077432 =====> Closing passive DATA connection... 10:31:13.077975 Server disconnects passive DATA connection 10:31:13.078760 Server disconnected passive DATA connection 10:31:13.079131 DATA sockfilt for passive data channel quits (pid 88629) 10:31:13.081887 DATA sockfilt for passive data channel quit (pid 88629) 10:31:13.082317 =====> Closed passive DATA connection 10:31:13.082826 > "226 File transfer complete[CR][LF]" 10:31:13.121421 < "QUIT" 10:31:13.122187 > "221 bye bye baby[CR][LF]" 10:31:13.124412 MAIN sockfilt said DISC 10:31:13.124921 ====> Client disconnected 10:31:13.125633 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:12.652497 ====> Client connect 10:31:12.658274 Received DATA (on stdin) 10:31:12.658626 > 160 bytes data, server => client 10:31:12.660555 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:12.660978 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:12.661224 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:12.662822 < 16 bytes data, client => server 10:31:12.663122 'USER anonymous\r\n' 10:31:12.670812 Received DATA (on stdin) 10:31:12.671145 > 33 bytes data, server => client 10:31:12.679509 '331 We are happy you popped in!\r\n' 10:31:12.681254 < 22 bytes data, client => server 10:31:12.681491 'PASS ftp@example.com\r\n' 10:31:12.682788 Received DATA (on stdin) 10:31:12.683028 > 30 bytes data, server => client 10:31:12.683149 '230 Welcome you silly person\r\n' 10:31:12.684492 < 5 bytes data, client => server 10:31:12.684703 'PWD\r\n' 10:31:12.686020 Received DATA (on stdin) 10:31:12.686263 > 30 bytes data, server => client 10:31:12.686377 '257 "/" is current directory\r\n' 10:31:12.688988 < 6 bytes data, client => server 10:31:12.689263 'EPSV\r\n' 10:31:12.723366 Received DATA (on stdin) 10:31:12.723677 > 38 bytes data, server => client 10:31:12.723821 '229 Entering Passive Mode (|||41769|)\n' 10:31:12.728532 < 8 bytes data, client => server 10:31:12.728826 'TYPE I\r\n' 10:31:12.732325 Received DATA (on stdin) 10:31:12.732567 > 33 bytes data, server => client 10:31:12.732737 '200 I modify TYPE as you wanted\r\n' 10:31:12.737098 < 21 bytes data, client => server 10:31:12.737446 'SIZE verifiedserver\r\n' 10:31:12.738856 Received DATA (on stdin) 10:31:12.739151 > 8 bytes data, server => client 10:31:12.739371 '213 17\r\n' 10:31:12.744513 < 21 bytes data, client => server 10:31:12.744799 'RETR verifiedserver\r\n' 10:31:12.746196 Received DATA (on stdin) 10:31:12.746487 > 29 bytes data, server => client 10:31:12.746599 '150 Binary junk (17 bytes).\r\n' 10:31:12.753681 Received DATA (on stdin) 10:31:12.753868 > 28 bytes data, server => client 10:31:12.753956 '226 File transfer complete\r\n' 10:31:12.789407 < 6 bytes data, client => server 10:31:12.789670 'QUIT\r\n' 10:31:12.793040 Received DATA (on stdin) 10:31:12.793262 > 18 bytes data, server => client 10:31:12.793373 '221 bye bye baby\r\n' 10:31:12.794740 ====> Client disconnect 10:31:12.796845 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:13.716882 Running IPv4 version 10:31:13.717730 Listening on port 41769 10:31:13.718296 Wrote pid 88629 to log/1/server/ftp_sockdata.pid 10:31:13.718499 Received PING (on stdin) 10:31:13.721387 Received PORT (on stdin) 10:31:13.728483 ====> Client connect 10:31:13.746730 Received DATA (on stdin) 10:31:13.746904 > 17 bytes data, server => client 10:31:13.747122 'WE ROOLZ: 79585\r\n' 10:31:13.749227 Received DISC (on stdin) 10:31:13.750244 ====> Client forcibly disconnected 10:31:13.750817 Received QUIT (on stdin) 10:31:13.751015 quits 10:31:13.751443 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 248 === End of file server.cmd === Start of file test248.txt data to see that FTP works so does it? === End of file test248.txt === Start of file valgrind248 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind248 test 0249...[HTTP 304 response with "illegal" Content-Length: header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind249 ../src/curl -q --output log/2/curl249.out --include --trace-ascii log/2/trace249 --trace-time http://127.0.0.1:43789/249 -z "dec 12 12:00:00 1999 GMT" > log/2/stdout249 2> log/2/stderr249 249: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 249 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind249 ../src/curl -q --output log/2/curl249.out --include --trace-ascii log/2/trace249 --trace-time http://127.0.0.1:43789/249 -z "dec 12 12:00:00 1999 GMT" > log/2/stdout249 2> log/2/stderr249 === End of file commands.log === Start of file http_server.log 10:31:12.932206 ====> Client connect 10:31:12.932852 accept_connection 3 returned 4 10:31:12.933175 accept_connection 3 returned 0 10:31:12.933333 Read 93 bytes 10:31:12.933424 Process 93 bytes request 10:31:12.933511 Got request: GET /verifiedserver HTTP/1.1 10:31:12.933574 Are-we-friendly question received 10:31:12.933804 Wrote request (93 bytes) input to log/2/server.input 10:31:12.933980 Identifying ourselves as friends 10:31:12.934774 Response sent (56 bytes) and written to log/2/server.response 10:31:12.934907 special request received, no persistency 10:31:12.934982 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 41988 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 249 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-LCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind250 ../src/curl -q --output log/8/curl250.out --include --trace log/8/trace250 --trace-time ftp://127.0.0.1:42977/ > log/8/stdout250 2> log/8/stderr250 ength: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind249 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind249 test 0250...[FTP dir list PASV with slow response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind250 ../src/curl -q --output log/8/curl250.out --include --trace log/8/trace250 --trace-time ftp://127.0.0.1:42977/ > log/8/stdout250 2> log/8/stderr250 250: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 250 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind250 ../src/curl -q --output log/8/curl250.out --include --trace log/8/trace250 --trace-time ftp://127.0.0.1:42977/ > log/8/stdout250 2> log/8/stderr250 === End of file commands.log === Start of file ftp_server.log 10:31:13.305698 ====> Client connect 10:31:13.307097 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:13.310697 < "USER anonymous" 10:31:13.311159 > "331 We are happy you popped in![CR][LF]" 10:31:13.314788 < "PASS ftp@example.com" 10:31:13.315303 > "230 Welcome you silly person[CR][LF]" 10:31:13.322388 < "PWD" 10:31:13.322974 > "257 "/" is current directory[CR][LF]" 10:31:13.330951 < "EPSV" 10:31:13.331258 ====> Passive DATA channel requested by client 10:31:13.331542 DATA sockfilt for passive data channel starting... 10:31:13.345573 DATA sockfilt for passive data channel started (pid 88758) 10:31:13.346720 DATA sockfilt for passive data channel listens on port 41751 10:31:13.347338 > "229 Entering Passive Mode (|||41751|)[LF]" 10:31:13.347603 Client has been notified that DATA conn will be accepted on port 41751 10:31:13.349561 Client connects to port 41751 10:31:13.350006 ====> Client established passive DATA connection on port 41751 10:31:13.350965 < "TYPE I" 10:31:13.351548 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:13.359316 < "SIZE verifiedserver" 10:31:13.360102 > "213 17[CR][LF]" 10:31:13.370540 < "RETR verifiedserver" 10:31:13.371311 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:13.372437 =====> Closing passive DATA connection... 10:31:13.372932 Server disconnects passive DATA connection 10:31:13.378519 Server disconnected passive DATA connection 10:31:13.379170 DATA sockfilt for passive data channel quits (pid 88758) 10:31:13.382498 DATA sockfilt for passive data channel quit (pid 88758) 10:31:13.382910 =====> Closed passive DATA connection 10:31:13.383334 > "226 File transfer complete[CR][LF]" 10:31:13.418782 < "QUIT" 10:31:13.419549 > "221 bye bye baby[CR][LF]" 10:31:13.423680 MAIN sockfilt said DISC 10:31:13.424465 ====> Client disconnected 10:31:13.425286 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:12.974332 ====> Client connect 10:31:12.977914 Received DATA (on stdin) 10:31:12.978161 > 160 bytes data, server => client 10:31:12.978279 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:12.978371 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:12.978460 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:12.979194 < 16 bytes data, client => server 10:31:12.979387 'USER anonymous\r\n' 10:31:12.982014 Received DATA (on stdin) 10:31:12.982170 > 33 bytes data, server => client 10:31:12.982270 '331 We are happy you popped in!\r\n' 10:31:12.983045 < 22 bytes data, client => server 10:31:12.983255 'PASS ftp@example.com\r\n' 10:31:12.988397 Received DATA (on stdin) 10:31:12.988660 > 30 bytes data, server => client 10:31:12.988762 '230 Welcome you silly person\r\n' 10:31:12.989558 < 5 bytes data, client => server 10:31:12.989771 'PWD\r\n' 10:31:12.993795 Received DATA (on stdin) 10:31:12.994024 > 30 bytes data, server => client 10:31:12.994132 '257 "/" is current directory\r\n' 10:31:13.000505 < 6 bytes data, client => server 10:31:13.000753 'EPSV\r\n' 10:31:13.018133 Received DATA (on stdin) 10:31:13.018328 > 38 bytes data, server => client 10:31:13.018435 '229 Entering Passive Mode (|||41751|)\n' 10:31:13.020079 < 8 bytes data, client => server 10:31:13.020377 'TYPE I\r\n' 10:31:13.022383 Received DATA (on stdin) 10:31:13.022637 > 33 bytes data, server => client 10:31:13.022771 '200 I modify TYPE as you wanted\r\n' 10:31:13.023779 < 21 bytes data, client => server 10:31:13.023978 'SIZE verifiedserver\r\n' 10:31:13.031038 Received DATA (on stdin) 10:31:13.031321 > 8 bytes data, server => client 10:31:13.031635 '213 17\r\n' 10:31:13.036591 < 21 bytes data, client => server 10:31:13.036920 'RETR verifiedserver\r\n' 10:31:13.042269 Received DATA (on stdin) 10:31:13.042504 > 29 bytes data, server => client 10:31:13.042646 '150 Binary junk (17 bytes).\r\n' 10:31:13.056517 Received DATA (on stdin) 10:31:13.056794 > 28 bytes data, server => client 10:31:13.057005 '226 File transfer complete\r\n' 10:31:13.088523 < 6 bytes data, client => server 10:31:13.088731 'QUIT\r\n' 10:31:13.090385 Received DATA (on stdin) 10:31:13.090631 > 18 bytes data, server => client 10:31:13.090780 '221 bye bye baby\r\n' 10:31:13.091565 ====> Client disconnect 10:31:13.098791 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:13.014532 Running IPv4 version 10:31:13.015209 Listening on port 41751 10:31:13.015694 Wrote pid 88758 to log/8/server/ftp_sockdata.pid 10:31:13.015876 Received PING (on stdin) 10:31:13.016845 Received PORT (on stdin) 10:31:13.019793 ====> Client connect 10:31:13.044251 Received DATA (on stdin) 10:31:13.044566 > 17 bytes data, server => client 10:31:13.044702 'WE ROOLZ: 86552\r\n' 10:31:13.045153 Received DISC (on stdin) 10:31:13.045423 ====> Client forcibly disconnected 10:31:13.050671 Received QUIT (on stdin) 10:31:13.050945 quits 10:31:13.052189 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd SLOWDOWN Testnum 250 === End of file server.cmd === Start of file valgrind250 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind251 ../src/curl -q --output log/6/curl251.out --include --trace-ascii log/6/trace251 --trace-time ftp://127.0.0.1:33323/ -P 127.0.0.1 > log/6/stdout251 2> log/6/stderr251 was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind250 test 0251...[FTP dir list, PORT with specified IP and slow response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind251 ../src/curl -q --output log/6/curl251.out --include --trace-ascii log/6/trace251 --trace-time ftp://127.0.0.1:33323/ -P 127.0.0.1 > log/6/stdout251 2> log/6/stderr251 251: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 251 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind251 ../src/curl -q --output log/6/curl251.out --include --trace-ascii log/6/trace251 --trace-time ftp://127.0.0.1:33323/ -P 127.0.0.1 > log/6/stdout251 2> log/6/stderr251 === End of file commands.log === Start of file ftp_server.log 10:31:13.330286 ====> Client connect 10:31:13.331437 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:13.337734 < "USER anonymous" 10:31:13.338868 > "331 We are happy you popped in![CR][LF]" 10:31:13.344450 < "PASS ftp@example.com" 10:31:13.345332 > "230 Welcome you silly person[CR][LF]" 10:31:13.347826 < "PWD" 10:31:13.348350 > "257 "/" is current directory[CR][LF]" 10:31:13.352780 < "EPSV" 10:31:13.353283 ====> Passive DATA channel requested by client 10:31:13.353713 DATA sockfilt for passive data channel starting... 10:31:13.378552 DATA sockfilt for passive data channel started (pid 88762) 10:31:13.382105 DATA sockfilt for passive data channel listens on port 37605 10:31:13.382783 > "229 Entering Passive Mode (|||37605|)[LF]" 10:31:13.383141 Client has been notified that DATA conn will be accepted on port 37605 10:31:13.397910 Client connects to port 37605 10:31:13.398526 ====> Client established passive DATA connection on port 37605 10:31:13.399875 < "TYPE I" 10:31:13.400554 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:13.407886 < "SIZE verifiedserver" 10:31:13.408680 > "213 17[CR][LF]" 10:31:13.410950 < "RETR verifiedserver" 10:31:13.411629 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:13.412729 =====> Closing passive DATA connection... 10:31:13.413153 Server disconnects passive DATA connection 10:31:13.416083 Server disconnected passive DATA connection 10:31:13.416649 DATA sockfilt for passive data channel quits (pid 88762) 10:31:13.421813 DATA sockfilt for passive data channel quit (pid 88762) 10:31:13.422305 =====> Closed passive DATA connection 10:31:13.422928 > "226 File transfer complete[CR][LF]" 10:31:13.458977 < "QUIT" 10:31:13.459643 > "221 bye bye baby[CR][LF]" 10:31:13.462868 MAIN sockfilt said DISC 10:31:13.463419 ====> Client disconnected 10:31:13.464104 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:14.000487 ====> Client connect 10:31:14.004457 Received DATA (on stdin) 10:31:14.004737 > 160 bytes data, server => client 10:31:14.004847 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:14.004931 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:14.005001 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:14.005813 < 16 bytes data, client => server 10:31:14.006013 'USER anonymous\r\n' 10:31:14.009111 Received DATA (on stdin) 10:31:14.009355 > 33 bytes data, server => client 10:31:14.010230 '331 We are happy you popped in!\r\n' 10:31:14.013121 < 22 bytes data, client => server 10:31:14.013363 'PASS ftp@example.com\r\n' 10:31:14.015741 Received DATA (on stdin) 10:31:14.015868 > 30 bytes data, server => client 10:31:14.016813 '230 Welcome you silly person\r\n' 10:31:14.017738 < 5 bytes data, client => server 10:31:14.017923 'PWD\r\n' 10:31:14.019572 Received DATA (on stdin) 10:31:14.019758 > 30 bytes data, server => client 10:31:14.019883 '257 "/" is current directory\r\n' 10:31:14.020882 < 6 bytes data, client => server 10:31:14.021082 'EPSV\r\n' 10:31:14.056425 Received DATA (on stdin) 10:31:14.056794 > 38 bytes data, server => client 10:31:14.057006 '229 Entering Passive Mode (|||37605|)\n' 10:31:14.065350 < 8 bytes data, client => server 10:31:14.065643 'TYPE I\r\n' 10:31:14.071424 Received DATA (on stdin) 10:31:14.071710 > 33 bytes data, server => client 10:31:14.071851 '200 I modify TYPE as you wanted\r\n' 10:31:14.077053 < 21 bytes data, client => server 10:31:14.077345 'SIZE verifiedserver\r\n' 10:31:14.079517 Received DATA (on stdin) 10:31:14.079801 > 8 bytes data, server => client 10:31:14.079925 '213 17\r\n' 10:31:14.080839 < 21 bytes data, client => server 10:31:14.081091 'RETR verifiedserver\r\n' 10:31:14.082450 Received DATA (on stdin) 10:31:14.082691 > 29 bytes data, server => client 10:31:14.082813 '150 Binary junk (17 bytes).\r\n' 10:31:14.096409 Received DATA (on stdin) 10:31:14.096613 > 28 bytes data, server => client 10:31:14.096792 '226 File transfer complete\r\n' 10:31:14.125421 < 6 bytes data, client => server 10:31:14.125645 'QUIT\r\n' 10:31:14.130490 Received DATA (on stdin) 10:31:14.130727 > 18 bytes data, server => client 10:31:14.130847 '221 bye bye baby\r\n' 10:31:14.132779 ====> Client disconnect 10:31:14.134289 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:13.046748 Running IPv4 version 10:31:13.047639 Listening on port 37605 10:31:13.048410 Wrote pid 88762 to log/6/server/ftp_sockdata.pid 10:31:13.048791 Received PING (on stdin) 10:31:13.051357 Received PORT (on stdin) 10:31:13.065825 ====> Client connect 10:31:13.084781 Received DATA (on stdin) 10:31:13.085384 > 17 bytes data, server => client 10:31:13.085581 'WE ROOLZ: 79480\r\n' 10:31:13.086000 Received DISC (on stdin) 10:31:13.086293 ====> Client forcibly disconnected 10:31:13.087975 Received QUIT (on stdin) 10:31:13.088235 quits 10:31:13.091250 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd SLOWDOWN Testnum 251 === End of file server.cmd === Start of file valgrind251 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind256 ../src/curl -q --include --trace-ascii log/1/trace256 --trace-time -x http://127.0.0.1:36129 http://127.0.0.1:36129/want/256 -C - --no-include -o log/1/fewl256.txt -U daniel:stenberg > log/1/stdout256 2> log/1/stderr256 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind252 ../src/curl -q --output log/5/curl252.out --include --trace-ascii log/5/trace252 --trace-time -g "ftp://[::1]:41499/" > log/5/stdout252 2> log/5/stderr252 grind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind251 test 0256...[HTTP resume request over proxy with auth without server supporting it] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind256 ../src/curl -q --include --trace-ascii log/1/trace256 --trace-time -x http://127.0.0.1:36129 http://127.0.0.1:36129/want/256 -C - --no-include -o log/1/fewl256.txt -U daniel:stenberg > log/1/stdout256 2> log/1/stderr256 256: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 256 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind256 ../src/curl -q --include --trace-ascii log/1/trace256 --trace-time -x http://127.0.0.1:36129 http://127.0.0.1:36129/want/256 -C - --no-include -o log/1/fewl256.txt -U daniel:stenberg > log/1/stdout256 2> log/1/stderr256 === End of file commands.log === Start of file fewl256.txt This text is here to simulate a partly downloaded file to resume download on. === End of file fewl256.txt === Start of file http_server.log 10:31:13.776635 ====> Client connect 10:31:13.776903 accept_connection 3 returned 4 10:31:13.777056 accept_connection 3 returned 0 10:31:13.777167 Read 93 bytes 10:31:13.777242 Process 93 bytes request 10:31:13.777321 Got request: GET /verifiedserver HTTP/1.1 10:31:13.777385 Are-we-friendly question received 10:31:13.777595 Wrote request (93 bytes) input to log/1/server.input 10:31:13.777752 Identifying ourselves as friends 10:31:13.778344 Response sent (56 bytes) and written to log/1/server.response 10:31:13.778446 special request received, no persistency 10:31:13.778510 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 55342 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 256 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind256 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind256 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/5/server/ftp_ipv6_server.pid" --logfile "log/5/ftp_ipv6_server.log" --logdir "log/5" --portfile "log/5/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 41499 (log/5/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 88744 port 41499 * pid ftp-ipv6 => 88744 88744 test 0252...[FTP IPv6 dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind252 ../src/curl -q --output log/5/curl252.out --include --trace-ascii log/5/trace252 --trace-time -g "ftp://[::1]:41499/" > log/5/stdout252 2> log/5/stderr252 252: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 252 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind252 ../src/curl -q --output log/5/curl252.out --include --trace-ascii log/5/trace252 --trace-time -g "ftp://[::1]:41499/" > log/5/stdout252 2> log/5/stderr252 === End of file commands.log === Start of file ftp_ipv6_server.log 10:31:13.792208 FTP server listens on port IPv6/41499 10:31:13.793385 logged pid 88744 in log/5/server/ftp_ipv6_server.pid 10:31:13.794075 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 10:31:13.456021 Running IPv6 version 10:31:13.456730 Listening on port 41499 10:31:13.457331 Wrote pid 88890 to log/5/server/ftp_ipv6_sockctrl.pid 10:31:13.457817 Wrote port 41499 to log/5/server/ftp_ipv6_server.port 10:31:13.458044 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 252 === End of file server.cmd === Start of file valgrind252 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind257 ../src/curl -q --output log/2/curl257.out --include --trace-ascii log/2/trace257 --trace-time http://supersite.com/want/257 -L -x http://127.0.0.1:43789 --netrc-optional --netrc-file log/2/netrc257 > log/2/stdout257 2> log/2/stderr257 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind253 ../src/curl -q --output log/4/curl253.out --include --trace-ascii log/4/trace253 --trace-time -g "ftp://[::1]:41241/" -P - > log/4/stdout253 2> log/4/stderr253 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind258 ../src/curl -q --output log/8/curl258.out --include --trace-ascii log/8/trace258 --trace-time -x http://127.0.0.1:36007 http://remotehost:54321/we/want/258 -F name=daniel -F tool=curl -F file=@log/8/test258.txt -H "Expect:" -U uuuser:pppassword --proxy-anyauth > log/8/stdout258 2> log/8/stderr258 : Cannot continue -- exiting now. Sorry. === End of file valgrind252 test 0257...[HTTP Location: following with --netrc-optional] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind257 ../src/curl -q --output log/2/curl257.out --include --trace-ascii log/2/trace257 --trace-time http://supersite.com/want/257 -L -x http://127.0.0.1:43789 --netrc-optional --netrc-file log/2/netrc257 > log/2/stdout257 2> log/2/stderr257 257: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 257 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind257 ../src/curl -q --output log/2/curl257.out --include --trace-ascii log/2/trace257 --trace-time http://supersite.com/want/257 -L -x http://127.0.0.1:43789 --netrc-optional --netrc-file log/2/netrc257 > log/2/stdout257 2> log/2/stderr257 === End of file commands.log === Start of file http_server.log 10:31:13.832957 ====> Client connect 10:31:13.833223 accept_connection 3 returned 4 10:31:13.833376 accept_connection 3 returned 0 10:31:13.833506 Read 93 bytes 10:31:13.833583 Process 93 bytes request 10:31:13.833666 Got request: GET /verifiedserver HTTP/1.1 10:31:13.833724 Are-we-friendly question received 10:31:13.833921 Wrote request (93 bytes) input to log/2/server.input 10:31:13.834067 Identifying ourselves as friends 10:31:13.834637 Response sent (56 bytes) and written to log/2/server.response 10:31:13.834739 special request received, no persistency 10:31:13.834799 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 42002 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file netrc257 machine supersite.com login user1 password passwd1 machine anotherone.com login user2 password passwd2 === End of file netrc257 === Start of file server.cmd Testnum 257 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind257 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind257 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/4/server/ftp_ipv6_server.pid" --logfile "log/4/ftp_ipv6_server.log" --logdir "log/4" --portfile "log/4/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 41241 (log/4/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 88766 port 41241 * pid ftp-ipv6 => 88766 88766 test 0253...[FTP IPv6 dir list with EPRT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind253 ../src/curl -q --output log/4/curl253.out --include --trace-ascii log/4/trace253 --trace-time -g "ftp://[::1]:41241/" -P - > log/4/stdout253 2> log/4/stderr253 253: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 253 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind253 ../src/curl -q --output log/4/curl253.out --include --trace-ascii log/4/trace253 --trace-time -g "ftp://[::1]:41241/" -P - > log/4/stdout253 2> log/4/stderr253 === End of file commands.log === Start of file ftp_ipv6_server.log 10:31:13.889454 FTP server listens on port IPv6/41241 10:31:13.891099 logged pid 88766 in log/4/server/ftp_ipv6_server.pid 10:31:13.891549 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 10:31:13.557495 Running IPv6 version 10:31:13.558234 Listening on port 41241 10:31:13.558744 Wrote pid 88922 to log/4/server/ftp_ipv6_sockctrl.pid 10:31:13.559245 Wrote port 41241 to log/4/server/ftp_ipv6_server.port 10:31:13.559474 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 253 === End of file server.cmd === Start of file valgrind253 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind253 test 0258...[HTTP POST multipart without Expect: header using proxy anyauth (Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind258 ../src/curl -q --output log/8/curl258.out --include --trace-ascii log/8/trace258 --trace-time -x http://127.0.0.1:36007 http://remotehost:54321/we/waCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind254 ../src/curl -q --output log/7/curl254.out --include --trace-ascii log/7/trace254 --trace-time -g "ftp://[::1]:34505/" --disable-epsv > log/7/stdout254 2> log/7/stderr254 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind259 ../src/curl -q --output log/6/curl259.out --include --trace-ascii log/6/trace259 --trace-time -x http://127.0.0.1:33363 http://remotehost:54321/we/want/259 -F name=daniel -F tool=curl -F file=@log/6/test259.txt -U uuuser:pppassword --proxy-anyauth -H "Expect: 100-continue" > log/6/stdout259 2> log/6/stderr259 nt/258 -F name=daniel -F tool=curl -F file=@log/8/test258.txt -H "Expect:" -U uuuser:pppassword --proxy-anyauth > log/8/stdout258 2> log/8/stderr258 258: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 258 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind258 ../src/curl -q --output log/8/curl258.out --include --trace-ascii log/8/trace258 --trace-time -x http://127.0.0.1:36007 http://remotehost:54321/we/want/258 -F name=daniel -F tool=curl -F file=@log/8/test258.txt -H "Expect:" -U uuuser:pppassword --proxy-anyauth > log/8/stdout258 2> log/8/stderr258 === End of file commands.log === Start of file http_server.log 10:31:13.925723 ====> Client connect 10:31:13.926013 accept_connection 3 returned 4 10:31:13.926166 accept_connection 3 returned 0 10:31:13.926276 Read 93 bytes 10:31:13.926355 Process 93 bytes request 10:31:13.926433 Got request: GET /verifiedserver HTTP/1.1 10:31:13.926499 Are-we-friendly question received 10:31:13.926679 Wrote request (93 bytes) input to log/8/server.input 10:31:13.926819 Identifying ourselves as friends 10:31:13.927398 Response sent (56 bytes) and written to log/8/server.response 10:31:13.927493 special request received, no persistency 10:31:13.927560 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 49438 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 258 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file test258.txt foo- This is a moo- bar === End of file test258.txt === Start of file valgrind258 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind258 test 0259...[HTTP POST multipart with Expect: header using proxy anyauth (Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind259 ../src/curl -q --output log/6/curl259.out --include --trace-ascii log/6/trace259 --trace-time -x http://127.0.0.1:33363 http://remotehost:54321/we/want/259 -F name=daniel -F tool=curl -F file=@log/6/test259.txt -U uuuser:pppassword --proxy-anyauth -H "Expect: 100-continue" > log/6/stdout259 2> log/6/stderr259 259: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 259 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind259 ../src/curl -q --output log/6/curl259.out --include --trace-ascii log/6/trace259 --trace-time -x http://127.0.0.1:33363 http://remotehost:54321/we/want/259 -F name=daniel -F tool=curl -F file=@log/6/test259.txt -U uuuser:pppassword --proxy-anyauth -H "Expect: 100-continue" > log/6/stdout259 2> log/6/stderr259 === End of file commands.log === Start of file http_server.log 10:31:14.012706 ====> Client connect 10:31:14.012978 accept_connection 3 returned 4 10:31:14.013112 accept_connection 3 returned 0 10:31:14.013212 Read 93 bytes 10:31:14.013274 Process 93 bytes request 10:31:14.013357 Got request: GET /verifiedserver HTTP/1.1 10:31:14.013415 Are-we-friendly question received 10:31:14.013565 Wrote request (93 bytes) input to log/6/server.input 10:31:14.013682 Identifying ourselves as friends 10:31:14.014177 Response sent (56 bytes) and written to log/6/server.response 10:31:14.014274 special request received, no persistency 10:31:14.014330 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 35368 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 259 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file test259.txt foo- This is a moo- bar === End of file test259.txt === Start of file valgrind259 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind259 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfilCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind255 ../src/curl -q --output log/3/curl255.out --include --trace-ascii log/3/trace255 --trace-time -g "ftp://[::1]:35175/" -P - --disable-eprt > log/3/stdout255 2> log/3/stderr255 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind260 ../src/curl -q --output log/1/curl260.out --include --trace-ascii log/1/trace260 --trace-time "http://127.0.0.1:36129?260" > log/1/stdout260 2> log/1/stderr260 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind262 ../src/curl -q --output log/2/curl262.out --include --trace-ascii log/2/trace262 --trace-time http://127.0.0.1:43789/262 > log/2/stdout262 2> log/2/stderr262 e "log/7/server/ftp_ipv6_server.pid" --logfile "log/7/ftp_ipv6_server.log" --logdir "log/7" --portfile "log/7/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 34505 (log/7/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 88795 port 34505 * pid ftp-ipv6 => 88795 88795 test 0254...[FTP IPv6 dir list PASV and --disable-epsv] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind254 ../src/curl -q --output log/7/curl254.out --include --trace-ascii log/7/trace254 --trace-time -g "ftp://[::1]:34505/" --disable-epsv > log/7/stdout254 2> log/7/stderr254 254: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 254 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind254 ../src/curl -q --output log/7/curl254.out --include --trace-ascii log/7/trace254 --trace-time -g "ftp://[::1]:34505/" --disable-epsv > log/7/stdout254 2> log/7/stderr254 === End of file commands.log === Start of file ftp_ipv6_server.log 10:31:14.045446 FTP server listens on port IPv6/34505 10:31:14.046729 logged pid 88795 in log/7/server/ftp_ipv6_server.pid 10:31:14.047269 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 10:31:14.711999 Running IPv6 version 10:31:14.714372 Listening on port 34505 10:31:14.714901 Wrote pid 88959 to log/7/server/ftp_ipv6_sockctrl.pid 10:31:14.715265 Wrote port 34505 to log/7/server/ftp_ipv6_server.port 10:31:14.715474 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 254 === End of file server.cmd === Start of file valgrind254 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind254 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/3/server/ftp_ipv6_server.pid" --logfile "log/3/ftp_ipv6_server.log" --logdir "log/3" --portfile "log/3/server/ftp_ipv6_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv6 --port 0 --addr "[::1]" PINGPONG runs on port 35175 (log/3/server/ftp_ipv6_server.port) RUN: FTP-IPv6 server is PID 88798 port 35175 * pid ftp-ipv6 => 88798 88798 test 0255...[FTP IPv6 dir list with EPRT and --disable-eprt] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind255 ../src/curl -q --output log/3/curl255.out --include --trace-ascii log/3/trace255 --trace-time -g "ftp://[::1]:35175/" -P - --disable-eprt > log/3/stdout255 2> log/3/stderr255 255: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 255 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind255 ../src/curl -q --output log/3/curl255.out --include --trace-ascii log/3/trace255 --trace-time -g "ftp://[::1]:35175/" -P - --disable-eprt > log/3/stdout255 2> log/3/stderr255 === End of file commands.log === Start of file ftp_ipv6_server.log 10:31:14.041451 FTP server listens on port IPv6/35175 10:31:14.044827 logged pid 88798 in log/3/server/ftp_ipv6_server.pid 10:31:14.045356 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 10:31:14.708633 Running IPv6 version 10:31:14.709355 Listening on port 35175 10:31:14.710481 Wrote pid 88958 to log/3/server/ftp_ipv6_sockctrl.pid 10:31:14.710962 Wrote port 35175 to log/3/server/ftp_ipv6_server.port 10:31:14.711485 Received PING (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file server.cmd Testnum 255 === End of file server.cmd === Start of file valgrind255 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind255 test 0260...[HTTP GET URL without slash but with question mark] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind260 ../src/curl -q --output log/1/curl260.out --include --trace-ascii log/1/trace260 --trace-time "http://127.0.0.1:36129?260" > log/1/stdout260 2> log/1/stderr260 260: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 260 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind260 ../src/curl -q --output log/1/curl260.out --include --trace-ascii log/1/trace260 --trace-time "http://127.0.0.1:36129?260" > log/1/stdout260 2> log/1/stderr260 === End of file commands.log === Start of file http_server.log 10:31:14.756476 ====> Client connect 10:31:14.756921 accept_connection 3 returned 4 10:31:14.757199 aCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind261 ../src/curl -q --output log/5/curl261.out --include --trace-ascii log/5/trace261 --trace-time ftp://127.0.0.1:43393/261 > log/5/stdout261 2> log/5/stderr261 ccept_connection 3 returned 0 10:31:14.757399 Read 93 bytes 10:31:14.757511 Process 93 bytes request 10:31:14.757621 Got request: GET /verifiedserver HTTP/1.1 10:31:14.757722 Are-we-friendly question received 10:31:14.758058 Wrote request (93 bytes) input to log/1/server.input 10:31:14.758337 Identifying ourselves as friends 10:31:14.759509 Response sent (56 bytes) and written to log/1/server.response 10:31:14.759719 special request received, no persistency 10:31:14.759837 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 55356 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 260 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind260 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind260 test 0262...[Reject HTTP response with binary zero in header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind262 ../src/curl -q --output log/2/curl262.out --include --trace-ascii log/2/trace262 --trace-time http://127.0.0.1:43789/262 > log/2/stdout262 2> log/2/stderr262 262: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 262 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind262 ../src/curl -q --output log/2/curl262.out --include --trace-ascii log/2/trace262 --trace-time http://127.0.0.1:43789/262 > log/2/stdout262 2> log/2/stderr262 === End of file commands.log === Start of file http_server.log 10:31:14.848757 ====> Client connect 10:31:14.849077 accept_connection 3 returned 4 10:31:14.849268 accept_connection 3 returned 0 10:31:14.849394 Read 93 bytes 10:31:14.849476 Process 93 bytes request 10:31:14.849560 Got request: GET /verifiedserver HTTP/1.1 10:31:14.849629 Are-we-friendly question received 10:31:14.849834 Wrote request (93 bytes) input to log/2/server.input 10:31:14.849992 Identifying ourselves as friends 10:31:14.850652 Response sent (56 bytes) and written to log/2/server.response 10:31:14.850759 special request received, no persistency 10:31:14.850833 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 42012 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 262 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind262 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind262 test 0261...[FTP RETR with 226 response code to TYPE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind261 ../src/curl -q --output log/5/curl261.out --include --trace-ascii log/5/trace261 --trace-time ftp://127.0.0.1:43393/261 > log/5/stdout261 2> log/5/stderr261 261: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 261 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind261 ../src/curl -q --output log/5/curl261.out --include --trace-ascii log/5/trace261 --trace-time ftp://127.0.0.1:43393/261 > log/5/stdout261 2> log/5/stderr261 === End of file commands.log === Start of file ftp_server.log 10:31:15.132903 ====> Client connect 10:31:15.134667 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:15.139079 < "USER anonymous" 10:31:15.139654 > "331 We are happy you popped in![CR][LF]" 10:31:15.142765 < "PASS ftp@example.com" 10:31:15.143263 > "230 Welcome you silly person[CR][LF]" 10:31:15.145930 < "PWD" 10:31:15.148011 > "257 "/" is current directory[CR][LF]" 10:31:15.149685 < "EPSV" 10:31:15.150094 ====> Passive DATA channeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind263 ../src/curl -q --output log/4/curl263.out --include --trace-ascii log/4/trace263 --trace-time -g -x "http://[::1]:36181" http://veryveryremotesite.com/263 > log/4/stdout263 2> log/4/stderr263 l requested by client 10:31:15.150351 DATA sockfilt for passive data channel starting... 10:31:15.167814 DATA sockfilt for passive data channel started (pid 89455) 10:31:15.168866 DATA sockfilt for passive data channel listens on port 46721 10:31:15.170113 > "229 Entering Passive Mode (|||46721|)[LF]" 10:31:15.170493 Client has been notified that DATA conn will be accepted on port 46721 10:31:15.177697 Client connects to port 46721 10:31:15.178854 ====> Client established passive DATA connection on port 46721 10:31:15.179730 < "TYPE I" 10:31:15.180188 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:15.186127 < "SIZE verifiedserver" 10:31:15.186746 > "213 17[CR][LF]" 10:31:15.188773 < "RETR verifiedserver" 10:31:15.189331 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:15.190481 =====> Closing passive DATA connection... 10:31:15.190852 Server disconnects passive DATA connection 10:31:15.193629 Server disconnected passive DATA connection 10:31:15.194164 DATA sockfilt for passive data channel quits (pid 89455) 10:31:15.199106 DATA sockfilt for passive data channel quit (pid 89455) 10:31:15.199549 =====> Closed passive DATA connection 10:31:15.199943 > "226 File transfer complete[CR][LF]" 10:31:15.242611 < "QUIT" 10:31:15.243338 > "221 bye bye baby[CR][LF]" 10:31:15.252184 MAIN sockfilt said DISC 10:31:15.252762 ====> Client disconnected 10:31:15.253608 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:14.800427 ====> Client connect 10:31:14.806119 Received DATA (on stdin) 10:31:14.806380 > 160 bytes data, server => client 10:31:14.806495 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:14.806603 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:14.806701 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:14.807828 < 16 bytes data, client => server 10:31:14.808049 'USER anonymous\r\n' 10:31:14.810863 Received DATA (on stdin) 10:31:14.811094 > 33 bytes data, server => client 10:31:14.811190 '331 We are happy you popped in!\r\n' 10:31:14.811956 < 22 bytes data, client => server 10:31:14.812179 'PASS ftp@example.com\r\n' 10:31:14.814586 Received DATA (on stdin) 10:31:14.814737 > 30 bytes data, server => client 10:31:14.814816 '230 Welcome you silly person\r\n' 10:31:14.815541 < 5 bytes data, client => server 10:31:14.815705 'PWD\r\n' 10:31:14.817352 Received DATA (on stdin) 10:31:14.817549 > 30 bytes data, server => client 10:31:14.817719 '257 "/" is current directory\r\n' 10:31:14.819405 < 6 bytes data, client => server 10:31:14.819584 'EPSV\r\n' 10:31:14.840173 Received DATA (on stdin) 10:31:14.840573 > 38 bytes data, server => client 10:31:14.841660 '229 Entering Passive Mode (|||46721|)\n' 10:31:14.843150 < 8 bytes data, client => server 10:31:14.843431 'TYPE I\r\n' 10:31:14.851356 Received DATA (on stdin) 10:31:14.851519 > 33 bytes data, server => client 10:31:14.851618 '200 I modify TYPE as you wanted\r\n' 10:31:14.854789 < 21 bytes data, client => server 10:31:14.855037 'SIZE verifiedserver\r\n' 10:31:14.857712 Received DATA (on stdin) 10:31:14.857879 > 8 bytes data, server => client 10:31:14.857973 '213 17\r\n' 10:31:14.858842 < 21 bytes data, client => server 10:31:14.859057 'RETR verifiedserver\r\n' 10:31:14.860664 Received DATA (on stdin) 10:31:14.860868 > 29 bytes data, server => client 10:31:14.860961 '150 Binary junk (17 bytes).\r\n' 10:31:14.876149 Received DATA (on stdin) 10:31:14.876501 > 28 bytes data, server => client 10:31:14.876655 '226 File transfer complete\r\n' 10:31:14.910019 < 6 bytes data, client => server 10:31:14.910330 'QUIT\r\n' 10:31:14.914132 Received DATA (on stdin) 10:31:14.914462 > 18 bytes data, server => client 10:31:14.914715 '221 bye bye baby\r\n' 10:31:14.920432 ====> Client disconnect 10:31:14.923568 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:15.835589 Running IPv4 version 10:31:15.837490 Listening on port 46721 10:31:15.838082 Wrote pid 89455 to log/5/server/ftp_sockdata.pid 10:31:15.838278 Received PING (on stdin) 10:31:15.839085 Received PORT (on stdin) 10:31:15.844053 ====> Client connect 10:31:15.860866 Received DATA (on stdin) 10:31:15.861041 > 17 bytes data, server => client 10:31:15.861139 'WE ROOLZ: 79602\r\n' 10:31:15.861969 Received DISC (on stdin) 10:31:15.862218 ====> Client forcibly disconnected 10:31:15.866893 Received QUIT (on stdin) 10:31:15.867132 quits 10:31:15.867718 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY TYPE 226 Kind of on the positive side Testnum 261 === End of file server.cmd === Start of file valgrind261 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind261 test 0263...[HTTP-IPv6 GET with proxy specified using IPv6-numerical address] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind263 ../src/curl -q --output log/4/curl263.out --include --trace-ascii log/4/trace263 --trace-time -g -x "http://[::1]:36181" http://veryveryremotesite.com/263 > log/4/stdout263 2> log/4/stderr263 263: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 263 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind263 ../src/curl -q --output log/4/curl263.out --include --trace-ascii log/4/trace263 --trace-time -g -x "http://[::1]:36181" http://veryveryremotesite.com/263 > log/4/stdout263 2> log/4/stderr263 === End of file commands.log === Start of file http_ipv6_server.log 10:31:15.032637 ====> Client connect 10:31:15.032959 accept_connection 3 returned 4 10:31:15.033149 accept_connection 3 returned 0 10:31:15.033260 Read 89 bytes 10:31:15.033335 Process 89 bytes request 10:31:15.033417 Got request: GET /verifiedserver HTTP/1.1 10:31:15.033559 Are-we-friendly question received 10:31:15.033819 Wrote request (89 bytes) input to log/4/server.input 10:31:15.034044 Identifying ourselves as friends 10:31:15.034876 Response sent (56 bytes) and written to log/4/server.response 10:31:15.035030 special request received, no persistency 10:31:15.035131 ====> Client disconnect 0 === End of file http_ipv6_server.log === Start of file http_ipv6_verify.log * Trying [::1]:36181... * Established connection to ::1 (::1 port 36181) from ::1 port 46436 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: [::1]:36181 > User-Agent: curl/8.16.0 > Accept: */* > * RequesCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind264 ../src/curl -q --output log/8/curl264.out --include --trace-ascii log/8/trace264 --trace-time http://we.want.that.site.com/264 -x http://f%61ke:user@127.0.0.1:36007 > log/8/stdout264 2> log/8/stderr264 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind266 ../src/curl -q --output log/3/curl266.out --include --trace-ascii log/3/trace266 --trace-time http://127.0.0.1:36933/266 -D log/3/heads266 > log/3/stdout266 2> log/3/stderr266 t completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host ::1:36181 left intact === End of file http_ipv6_verify.log === Start of file http_ipv6_verify.out WE ROOLZ: 88016 === End of file http_ipv6_verify.out === Start of file server.cmd Testnum 263 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 88016 === End of file server.response === Start of file valgrind263 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind263 test 0264...[HTTP with proxy string including http:// and user+password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind264 ../src/curl -q --output log/8/curl264.out --include --trace-ascii log/8/trace264 --trace-time http://we.want.that.site.com/264 -x http://f%61ke:user@127.0.0.1:36007 > log/8/stdout264 2> log/8/stderr264 264: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 264 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind264 ../src/curl -q --output log/8/curl264.out --include --trace-ascii log/8/trace264 --trace-time http://we.want.that.site.com/264 -x http://f%61ke:user@127.0.0.1:36007 > log/8/stdout264 2> log/8/stderr264 === End of file commands.log === Start of file http_server.log 10:31:15.062668 ====> Client connect 10:31:15.062980 accept_connection 3 returned 4 10:31:15.063168 accept_connection 3 returned 0 10:31:15.063291 Read 93 bytes 10:31:15.063382 Process 93 bytes request 10:31:15.063463 Got request: GET /verifiedserver HTTP/1.1 10:31:15.063527 Are-we-friendly question received 10:31:15.063764 Wrote request (93 bytes) input to log/8/server.input 10:31:15.063960 Identifying ourselves as friends 10:31:15.064777 Response sent (56 bytes) and written to log/8/server.response 10:31:15.064940 special request received, no persistency 10:31:15.065005 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 49452 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 264 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind264 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind264 test 0266...[HTTP GET with chunked Transfer-Encoding and chunked trailer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind266 ../src/curl -q --output log/3/curl266.out --include --trace-ascii log/3/trace266 --trace-time http://127.0.0.1:36933/266 -D log/3/heads266 > log/3/stdout266 2> log/3/stderr266 266: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 266 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind266 ../src/curl -q --output log/3/curl266.out --include --trace-ascii log/3/trace266 --trace-time http://127.0.0.1:36933/266 -D log/3/heads266 > log/3/stdout266 2> log/3/stderr266 === End of file commands.log === Start of file http_server.log 10:31:15.224165 ====> Client connect 10:31:15.225232 accept_connection 3 returned 4 10:31:15.225456 accept_connection 3 returned 0 10:31:15.225616 Read 93 bytes 10:31:15.225727 Process 93 bytes request 10:31:15.225859 Got request: GET /verifiedserver HTTP/1.1 10:31:15.225964 Are-we-friendly question received 10:31:15.226295 Wrote request (93 bytes) input to log/3/server.input 10:31:15.226514 Identifying ourselves as friends 10:31:15.227448 Response sent (56 bytes) and written to log/3/server.response 10:31:15.227603 special request received, no persistency 10:31:15.227830 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42410 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 266 === End of fileCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind265 ../src/curl -q --output log/7/curl265.out --include --trace-ascii log/7/trace265 --trace-time http://test.remote.example.com.265:40129/path/2650002 --proxy http://127.0.0.1:40129 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/7/stdout265 2> log/7/stderr265 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind267 ../src/curl -q --output log/6/curl267.out --include --trace-ascii log/6/trace267 --trace-time http://127.0.0.1:33363/267 -u testuser:testpass --ntlm -d "data" -H "Header1: yes" -H "Header2: no" > log/6/stdout267 2> log/6/stderr267 server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind266 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind266 test 0265...[HTTP proxy CONNECT auth NTLM and then POST, response-body in the 407] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind265 ../src/curl -q --output log/7/curl265.out --include --trace-ascii log/7/trace265 --trace-time http://test.remote.example.com.265:40129/path/2650002 --proxy http://127.0.0.1:40129 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/7/stdout265 2> log/7/stderr265 265: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 265 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind265 ../src/curl -q --output log/7/curl265.out --include --trace-ascii log/7/trace265 --trace-time http://test.remote.example.com.265:40129/path/2650002 --proxy http://127.0.0.1:40129 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel -d "postit" > log/7/stdout265 2> log/7/stderr265 === End of file commands.log === Start of file http_server.log 10:31:15.188750 ====> Client connect 10:31:15.189112 accept_connection 3 returned 4 10:31:15.189347 accept_connection 3 returned 0 10:31:15.189525 Read 93 bytes 10:31:15.189639 Process 93 bytes request 10:31:15.189731 Got request: GET /verifiedserver HTTP/1.1 10:31:15.189808 Are-we-friendly question received 10:31:15.190007 Wrote request (93 bytes) input to log/7/server.input 10:31:15.190220 Identifying ourselves as friends 10:31:15.190968 Response sent (56 bytes) and written to log/7/server.response 10:31:15.191115 special request received, no persistency 10:31:15.191186 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 51728 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 265 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind265 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind265 test 0267...[HTTP POST with NTLM authorization and added custom headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind267 ../src/curl -q --output log/6/curl267.out --include --trace-ascii log/6/trace267 --trace-time http://127.0.0.1:33363/267 -u testuser:testpass --ntlm -d "data" -H "Header1: yes" -H "Header2: no" > log/6/stdout267 2> log/6/stderr267 267: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 267 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind267 ../src/curl -q --output log/6/curl267.out --include --trace-ascii log/6/trace267 --trace-time http://127.0.0.1:33363/267 -u testuser:testpass --ntlm -d "data" -H "Header1: yes" -H "Header2: no" > log/6/stdout267 2> log/6/stderr267 === End of file commands.log === Start of file http_server.log 10:31:15.327053 ====> Client connect 10:31:15.327375 accept_connection 3 returned 4 10:31:15.327561 accept_connection 3 returned 0 10:31:15.327735 Read 93 bytes 10:31:15.327862 Process 93 bytes request 10:31:15.327979 Got request: GET /verifiedserver HTTP/1.1 10:31:15.328078 Are-we-friendly question received 10:31:15.328465 Wrote request (93 bytes) input to log/6/server.input 10:31:15.328728 Identifying ourselves as friends 10:31:15.329603 Response sent (56 bytes) and written to log/6/server.response 10:31:15.329778 special request received, no persistency 10:31:15.329876 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 35384 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 267 === End of file server.cmd === Start of file server.response HCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind269 ../src/curl -q --output log/1/curl269.out --include --trace-ascii log/1/trace269 --trace-time http://127.0.0.1:36129/269 --ignore-content-length > log/1/stdout269 2> log/1/stderr269 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind268 ../src/curl -q --output log/2/curl268.out --include --trace-ascii log/2/trace268 --trace-time http://127.0.0.1:43789/268 --variable hello@log/2/junk --expand-data {{hello:json}} > log/2/stdout268 2> log/2/stderr268 TTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind267 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind267 test 0269...[HTTP --ignore-content-length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind269 ../src/curl -q --output log/1/curl269.out --include --trace-ascii log/1/trace269 --trace-time http://127.0.0.1:36129/269 --ignore-content-length > log/1/stdout269 2> log/1/stderr269 269: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 269 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind269 ../src/curl -q --output log/1/curl269.out --include --trace-ascii log/1/trace269 --trace-time http://127.0.0.1:36129/269 --ignore-content-length > log/1/stdout269 2> log/1/stderr269 === End of file commands.log === Start of file http_server.log 10:31:15.859886 ====> Client connect 10:31:15.860344 accept_connection 3 returned 4 10:31:15.860704 accept_connection 3 returned 0 10:31:15.860943 Read 93 bytes 10:31:15.861105 Process 93 bytes request 10:31:15.861223 Got request: GET /verifiedserver HTTP/1.1 10:31:15.861318 Are-we-friendly question received 10:31:15.861590 Wrote request (93 bytes) input to log/1/server.input 10:31:15.861826 Identifying ourselves as friends 10:31:15.862662 Response sent (56 bytes) and written to log/1/server.response 10:31:15.862785 special request received, no persistency 10:31:15.862850 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 55370 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 269 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind269 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind269 test 0268...[JSON encoding of Unicode string] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind268 ../src/curl -q --output log/2/curl268.out --include --trace-ascii log/2/trace268 --trace-time http://127.0.0.1:43789/268 --variable hello@log/2/junk --expand-data {{hello:json}} > log/2/stdout268 2> log/2/stderr268 268: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 268 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind268 ../src/curl -q --output log/2/curl268.out --include --trace-ascii log/2/trace268 --trace-time http://127.0.0.1:43789/268 --variable hello@log/2/junk --expand-data {{hello:json}} > log/2/stdout268 2> log/2/stderr268 === End of file commands.log === Start of file http_server.log 10:31:15.782342 ====> Client connect 10:31:15.782663 accept_connection 3 returned 4 10:31:15.782851 accept_connection 3 returned 0 10:31:15.782998 Read 93 bytes 10:31:15.783096 Process 93 bytes request 10:31:15.783190 Got request: GET /verifiedserver HTTP/1.1 10:31:15.783270 Are-we-friendly question received 10:31:15.783538 Wrote request (93 bytes) input to log/2/server.input 10:31:15.783779 Identifying ourselves as friends 10:31:15.784818 Response sent (56 bytes) and written to log/2/server.response 10:31:15.784965 special request received, no persistency 10:31:15.785036 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 42018 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file junk “ === End of file junk === Start of file server.cmd Testnum 268 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind268 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind270 ../src/curl -q --output log/5/curl270.out --include --trace-ascii log/5/trace270 --trace-time ftp://127.0.0.1:43393/270 --ftp-skip-pasv-ip --disable-epsv > log/5/stdout270 2> log/5/stderr270 grind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind268 test 0270...[FTP RETR PASV --ftp-skip-pasv-ip] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind270 ../src/curl -q --output log/5/curl270.out --include --trace-ascii log/5/trace270 --trace-time ftp://127.0.0.1:43393/270 --ftp-skip-pasv-ip --disable-epsv > log/5/stdout270 2> log/5/stderr270 270: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 270 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind270 ../src/curl -q --output log/5/curl270.out --include --trace-ascii log/5/trace270 --trace-time ftp://127.0.0.1:43393/270 --ftp-skip-pasv-ip --disable-epsv > log/5/stdout270 2> log/5/stderr270 === End of file commands.log === Start of file ftp_server.log 10:31:16.274098 ====> Client connect 10:31:16.275477 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:16.278451 < "USER anonymous" 10:31:16.279030 > "331 We are happy you popped in![CR][LF]" 10:31:16.282352 < "PASS ftp@example.com" 10:31:16.282917 > "230 Welcome you silly person[CR][LF]" 10:31:16.286528 < "PWD" 10:31:16.287263 > "257 "/" is current directory[CR][LF]" 10:31:16.290305 < "EPSV" 10:31:16.290690 ====> Passive DATA channel requested by client 10:31:16.290947 DATA sockfilt for passive data channel starting... 10:31:16.303671 DATA sockfilt for passive data channel started (pid 89970) 10:31:16.304795 DATA sockfilt for passive data channel listens on port 38061 10:31:16.305370 > "229 Entering Passive Mode (|||38061|)[LF]" 10:31:16.305930 Client has been notified that DATA conn will be accepted on port 38061 10:31:16.308987 Client connects to port 38061 10:31:16.309443 ====> Client established passive DATA connection on port 38061 10:31:16.310689 < "TYPE I" 10:31:16.311283 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:16.314280 < "SIZE verifiedserver" 10:31:16.314856 > "213 17[CR][LF]" 10:31:16.317916 < "RETR verifiedserver" 10:31:16.319746 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:16.322637 =====> Closing passive DATA connection... 10:31:16.322928 Server disconnects passive DATA connection 10:31:16.323141 Fancy that; client wants to DISC, too 10:31:16.329637 Server disconnected passive DATA connection 10:31:16.330118 DATA sockfilt for passive data channel quits (pid 89970) 10:31:16.334056 DATA sockfilt for passive data channel quit (pid 89970) 10:31:16.334458 =====> Closed passive DATA connection 10:31:16.334832 > "226 File transfer complete[CR][LF]" 10:31:16.363738 < "QUIT" 10:31:16.364432 > "221 bye bye baby[CR][LF]" 10:31:16.370947 MAIN sockfilt said DISC 10:31:16.371516 ====> Client disconnected 10:31:16.372221 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:15.943925 ====> Client connect 10:31:15.946245 Received DATA (on stdin) 10:31:15.946516 > 160 bytes data, server => client 10:31:15.946695 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:15.946832 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:15.946944 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:15.947830 < 16 bytes data, client => server 10:31:15.948064 'USER anonymous\r\n' 10:31:15.949824 Received DATA (on stdin) 10:31:15.950077 > 33 bytes data, server => client 10:31:15.950229 '331 We are happy you popped in!\r\n' 10:31:15.952122 < 22 bytes data, client => server 10:31:15.952452 'PASS ftp@example.com\r\n' 10:31:15.954496 Received DATA (on stdin) 10:31:15.954731 > 30 bytes data, server => client 10:31:15.954840 '230 Welcome you silly person\r\n' 10:31:15.955804 < 5 bytes data, client => server 10:31:15.955994 'PWD\r\n' 10:31:15.958522 Received DATA (on stdin) 10:31:15.958730 > 30 bytes data, server => client 10:31:15.958823 '257 "/" is current directory\r\n' 10:31:15.959777 < 6 bytes data, client => server 10:31:15.959991 'EPSV\r\n' 10:31:15.977137 Received DATA (on stdin) 10:31:15.977351 > 38 bytes data, server => client 10:31:15.977454 '229 Entering Passive Mode (|||38061|)\n' 10:31:15.979624 < 8 bytes data, client => server 10:31:15.979841 'TYPE I\r\n' 10:31:15.982595 Received DATA (on stdin) 10:31:15.982807 > 33 bytes data, server => client 10:31:15.982919 '200 I modify TYPE as you wanted\r\n' 10:31:15.983783 < 21 bytes data, client => server 10:31:15.983980 'SIZE verifiedserver\r\n' 10:31:15.986153 Received DATA (on stdin) 10:31:15.986392 > 8 bytes data, server => client 10:31:15.986530 '213 17\r\n' 10:31:15.987415 < 21 bytes data, client => server 10:31:15.987624 'RETR verifiedserver\r\n' 10:31:15.989356 Received DATA (on stdin) 10:31:15.989574 > 29 bytes data, server => client 10:31:15.989751 '150 Binary junk (17 bytes).\r\n' 10:31:16.005615 Received DATA (on stdin) 10:31:16.005787 > 28 bytes data, server => client 10:31:16.005896 '226 File transfer complete\r\n' 10:31:16.033442 < 6 bytes data, client => server 10:31:16.033766 'QUIT\r\n' 10:31:16.036005 Received DATA (on stdin) 10:31:16.037328 > 18 bytes data, server => client 10:31:16.037653 '221 bye bye baby\r\n' 10:31:16.041290 ====> Client disconnect 10:31:16.042747 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:16.971931 Running IPv4 version 10:31:16.973425 Listening on port 38061 10:31:16.973905 Wrote pid 89970 to log/5/server/ftp_sockdata.pid 10:31:16.974107 Received PING (on stdin) 10:31:16.974918 Received PORT (on stdin) 10:31:16.979259 ====> Client connect 10:31:16.991058 Received DATA (on stdin) 10:31:16.991246 > 17 bytes data, server => client 10:31:16.991417 'WE ROOLZ: 79602\r\n' 10:31:16.992361 ====> Client disconnect 10:31:16.993915 Received DISC (on stdin) 10:31:16.994079 Crikey! Client also wants to disconnect 10:31:16.994191 Received ACKD (on stdin) 10:31:17.003126 Received QUIT (on stdin) 10:31:17.003375 quits 10:31:17.003886 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd PASVBADIP Testnum 270 === End of file server.cmd === Start of file valgrind270 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind272 ../src/curl -q --output log/8/curl272.out --include --trace-ascii log/8/trace272 --trace-time ftp://127.0.0.1:42977/272 -z "2004 jan 1 12:12:12 UTC" > log/8/stdout272 2> log/8/stderr272 rom the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind270 test 0272...[FTP timed conditioned get file with identical time stamp] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind272 ../src/curl -q --output log/8/curl272.out --include --trace-ascii log/8/trace272 --trace-time ftp://127.0.0.1:42977/272 -z "2004 jan 1 12:12:12 UTC" > log/8/stdout272 2> log/8/stderr272 272: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 272 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind272 ../src/curl -q --output log/8/curl272.out --include --trace-ascii log/8/trace272 --trace-time ftp://127.0.0.1:42977/272 -z "2004 jan 1 12:12:12 UTC" > log/8/stdout272 2> log/8/stderr272 === End of file commands.log === Start of file ftp_server.log 10:31:16.357681 ====> Client connect 10:31:16.358950 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:16.368772 < "USER anonymous" 10:31:16.369382 > "331 We are happy you popped in![CR][LF]" 10:31:16.376534 < "PASS ftp@example.com" 10:31:16.377056 > "230 Welcome you silly person[CR][LF]" 10:31:16.378734 < "PWD" 10:31:16.379181 > "257 "/" is current directory[CR][LF]" 10:31:16.380568 < "EPSV" 10:31:16.380878 ====> Passive DATA channel requested by client 10:31:16.381081 DATA sockfilt for passive data channel starting... 10:31:16.394130 DATA sockfilt for passive data channel started (pid 89991) 10:31:16.395425 DATA sockfilt for passive data channel listens on port 44727 10:31:16.396098 > "229 Entering Passive Mode (|||44727|)[LF]" 10:31:16.396490 Client has been notified that DATA conn will be accepted on port 44727 10:31:16.405628 Client connects to port 44727 10:31:16.406034 ====> Client established passive DATA connection on port 44727 10:31:16.406900 < "TYPE I" 10:31:16.407351 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:16.412488 < "SIZE verifiedserver" 10:31:16.413110 > "213 17[CR][LF]" 10:31:16.415818 < "RETR verifiedserver" 10:31:16.416426 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:16.417262 =====> Closing passive DATA connection... 10:31:16.417628 Server disconnects passive DATA connection 10:31:16.419930 Server disconnected passive DATA connection 10:31:16.420339 DATA sockfilt for passive data channel quits (pid 89991) 10:31:16.422428 DATA sockfilt for passive data channel quit (pid 89991) 10:31:16.422900 =====> Closed passive DATA connection 10:31:16.423290 > "226 File transfer complete[CR][LF]" 10:31:16.470285 < "QUIT" 10:31:16.470880 > "221 bye bye baby[CR][LF]" 10:31:16.476064 MAIN sockfilt said DISC 10:31:16.476612 ====> Client disconnected 10:31:16.477341 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:16.027460 ====> Client connect 10:31:16.034215 Received DATA (on stdin) 10:31:16.034587 > 160 bytes data, server => client 10:31:16.034838 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:16.035027 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:16.035357 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:16.038205 < 16 bytes data, client => server 10:31:16.038593 'USER anonymous\r\n' 10:31:16.040161 Received DATA (on stdin) 10:31:16.040591 > 33 bytes data, server => client 10:31:16.040767 '331 We are happy you popped in!\r\n' 10:31:16.042339 < 22 bytes data, client => server 10:31:16.042522 'PASS ftp@example.com\r\n' 10:31:16.047847 Received DATA (on stdin) 10:31:16.048060 > 30 bytes data, server => client 10:31:16.048155 '230 Welcome you silly person\r\n' 10:31:16.048877 < 5 bytes data, client => server 10:31:16.049094 'PWD\r\n' 10:31:16.049916 Received DATA (on stdin) 10:31:16.050067 > 30 bytes data, server => client 10:31:16.050155 '257 "/" is current directory\r\n' 10:31:16.050727 < 6 bytes data, client => server 10:31:16.050907 'EPSV\r\n' 10:31:16.068810 Received DATA (on stdin) 10:31:16.069071 > 38 bytes data, server => client 10:31:16.069195 '229 Entering Passive Mode (|||44727|)\n' 10:31:16.076373 < 8 bytes data, client => server 10:31:16.076610 'TYPE I\r\n' 10:31:16.078129 Received DATA (on stdin) 10:31:16.078310 > 33 bytes data, server => client 10:31:16.078407 '200 I modify TYPE as you wanted\r\n' 10:31:16.081182 < 21 bytes data, client => server 10:31:16.081453 'SIZE verifiedserver\r\n' 10:31:16.083894 Received DATA (on stdin) 10:31:16.084092 > 8 bytes data, server => client 10:31:16.084180 '213 17\r\n' 10:31:16.084931 < 21 bytes data, client => server 10:31:16.085125 'RETR verifiedserver\r\n' 10:31:16.087195 Received DATA (on stdin) 10:31:16.087381 > 29 bytes data, server => client 10:31:16.087480 '150 Binary junk (17 bytes).\r\n' 10:31:16.094060 Received DATA (on stdin) 10:31:16.094222 > 28 bytes data, server => client 10:31:16.094318 '226 File transfer complete\r\n' 10:31:16.136620 < 6 bytes data, client => server 10:31:16.136896 'QUIT\r\n' 10:31:16.143328 Received DATA (on stdin) 10:31:16.143649 > 18 bytes data, server => client 10:31:16.143818 '221 bye bye baby\r\n' 10:31:16.146313 ====> Client disconnect 10:31:16.147398 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:16.062921 Running IPv4 version 10:31:16.063528 Listening on port 44727 10:31:16.064096 Wrote pid 89991 to log/8/server/ftp_sockdata.pid 10:31:16.064394 Received PING (on stdin) 10:31:16.065449 Received PORT (on stdin) 10:31:16.072395 ====> Client connect 10:31:16.087640 Received DATA (on stdin) 10:31:16.087869 > 17 bytes data, server => client 10:31:16.088023 'WE ROOLZ: 86552\r\n' 10:31:16.089396 Received DISC (on stdin) 10:31:16.089721 ====> Client forcibly disconnected 10:31:16.091396 Received QUIT (on stdin) 10:31:16.091532 quits 10:31:16.091968 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 272 === End of file server.cmd === Start of file valgrind272 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind273 ../src/curl -q --output log/3/curl273.out --include --trace-ascii log/3/trace273 --trace-time http://127.0.0.1:36933/273 -u testuser:testpass --digest > log/3/stdout273 2> log/3/stderr273 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind274 ../src/curl -q --output log/7/curl274.out --include --trace-ascii log/7/trace274 --trace-time http://127.0.0.1:40129/want/274 -L --max-redirs 0 > log/7/stdout274 2> log/7/stderr274 above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind272 test 0273...[HTTP with two Digest authorization headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind273 ../src/curl -q --output log/3/curl273.out --include --trace-ascii log/3/trace273 --trace-time http://127.0.0.1:36933/273 -u testuser:testpass --digest > log/3/stdout273 2> log/3/stderr273 273: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 273 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind273 ../src/curl -q --output log/3/curl273.out --include --trace-ascii log/3/trace273 --trace-time http://127.0.0.1:36933/273 -u testuser:testpass --digest > log/3/stdout273 2> log/3/stderr273 === End of file commands.log === Start of file http_server.log 10:31:16.213625 ====> Client connect 10:31:16.213972 accept_connection 3 returned 4 10:31:16.214185 accept_connection 3 returned 0 10:31:16.214346 Read 93 bytes 10:31:16.214444 Process 93 bytes request 10:31:16.214532 Got request: GET /verifiedserver HTTP/1.1 10:31:16.214603 Are-we-friendly question received 10:31:16.214852 Wrote request (93 bytes) input to log/3/server.input 10:31:16.215066 Identifying ourselves as friends 10:31:16.215899 Response sent (56 bytes) and written to log/3/server.response 10:31:16.216058 special request received, no persistency 10:31:16.216147 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42418 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 273 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind273 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind273 test 0274...[HTTP Location: following with --max-redirs 0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind274 ../src/curl -q --output log/7/curl274.out --include --trace-ascii log/7/trace274 --trace-time http://127.0.0.1:40129/want/274 -L --max-redirs 0 > log/7/stdout274 2> log/7/stderr274 274: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 274 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind274 ../src/curl -q --output log/7/curl274.out --include --trace-ascii log/7/trace274 --trace-time http://127.0.0.1:40129/want/274 -L --max-redirs 0 > log/7/stdout274 2> log/7/stderr274 === End of file commands.log === Start of file http_server.log 10:31:16.313285 ====> Client connect 10:31:16.313611 accept_connection 3 returned 4 10:31:16.313823 accept_connection 3 returned 0 10:31:16.313967 Read 93 bytes 10:31:16.314077 Process 93 bytes request 10:31:16.314165 Got request: GET /verifiedserver HTTP/1.1 10:31:16.314239 Are-we-friendly question received 10:31:16.314513 Wrote request (93 bytes) input to log/7/server.input 10:31:16.314713 Identifying ourselves as friends 10:31:16.315451 Response sent (56 bytes) and written to log/7/server.response 10:31:16.315560 special request received, no persistency 10:31:16.315625 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 51738 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 274 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind274 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind276 ../src/curl -q --output log/1/curl276.out --include --trace-ascii log/1/trace276 --trace-time "http://127.0.0.1:36129/want?uri=http://anything/276?secondq/276" -L > log/1/stdout276 2> log/1/stderr276 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind277 ../src/curl -q --output log/2/curl277.out --include --trace-ascii log/2/trace277 --trace-time http://127.0.0.1:43789/want/277 -F name=daniel -H "Content-Type: text/info" > log/2/stdout277 2> log/2/stderr277 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind271 ../src/curl -q --output log/4/curl271.out --include --trace-ascii log/4/trace271 --trace-time tftp://127.0.0.1:38819//271 > log/4/stdout271 2> log/4/stderr271 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind274 test 0276...[HTTP Location: following with multiple question marks in URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind276 ../src/curl -q --output log/1/curl276.out --include --trace-ascii log/1/trace276 --trace-time "http://127.0.0.1:36129/want?uri=http://anything/276?secondq/276" -L > log/1/stdout276 2> log/1/stderr276 276: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 276 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind276 ../src/curl -q --output log/1/curl276.out --include --trace-ascii log/1/trace276 --trace-time "http://127.0.0.1:36129/want?uri=http://anything/276?secondq/276" -L > log/1/stdout276 2> log/1/stderr276 === End of file commands.log === Start of file http_server.log 10:31:16.766037 ====> Client connect 10:31:16.766420 accept_connection 3 returned 4 10:31:16.766628 accept_connection 3 returned 0 10:31:16.766764 Read 93 bytes 10:31:16.766849 Process 93 bytes request 10:31:16.766937 Got request: GET /verifiedserver HTTP/1.1 10:31:16.767011 Are-we-friendly question received 10:31:16.767281 Wrote request (93 bytes) input to log/1/server.input 10:31:16.767491 Identifying ourselves as friends 10:31:16.768582 Response sent (56 bytes) and written to log/1/server.response 10:31:16.768798 special request received, no persistency 10:31:16.768880 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 55386 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 276 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind276 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind276 test 0277...[HTTP RFC1867-type formposting with custom Content-Type] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind277 ../src/curl -q --output log/2/curl277.out --include --trace-ascii log/2/trace277 --trace-time http://127.0.0.1:43789/want/277 -F name=daniel -H "Content-Type: text/info" > log/2/stdout277 2> log/2/stderr277 277: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 277 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind277 ../src/curl -q --output log/2/curl277.out --include --trace-ascii log/2/trace277 --trace-time http://127.0.0.1:43789/want/277 -F name=daniel -H "Content-Type: text/info" > log/2/stdout277 2> log/2/stderr277 === End of file commands.log === Start of file http_server.log 10:31:16.815681 ====> Client connect 10:31:16.815975 accept_connection 3 returned 4 10:31:16.816157 accept_connection 3 returned 0 10:31:16.816462 Read 93 bytes 10:31:16.816556 Process 93 bytes request 10:31:16.816638 Got request: GET /verifiedserver HTTP/1.1 10:31:16.816704 Are-we-friendly question received 10:31:16.816964 Wrote request (93 bytes) input to log/2/server.input 10:31:16.817166 Identifying ourselves as friends 10:31:16.817889 Response sent (56 bytes) and written to log/2/server.response 10:31:16.818041 special request received, no persistency 10:31:16.818107 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 42022 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 277 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind277 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind277 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/teCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind278 ../src/curl -q --output log/5/curl278.out --include --trace-ascii log/5/trace278 --trace-time http://we.want.that.site.com/278 -x http://f%61ke:@127.0.0.1:41733 > log/5/stdout278 2> log/5/stderr278 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind279 ../src/curl -q --output log/8/curl279.out --include --trace-ascii log/8/trace279 --trace-time http://we.want.that.site.com/279 -x http://f%61ke@127.0.0.1:36007 > log/8/stdout279 2> log/8/stderr279 sts/tftpserver.pl --pidfile "log/4/server/tftp_server.pid" --portfile "log/4/server/tftp_server.port" --logfile "log/4/tftp_server.log" --logdir "log/4" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 89930 port 38819 * pid tftp => 89930 89930 test 0271...[TFTP retrieve] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind271 ../src/curl -q --output log/4/curl271.out --include --trace-ascii log/4/trace271 --trace-time tftp://127.0.0.1:38819//271 > log/4/stdout271 2> log/4/stderr271 271: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 271 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind271 ../src/curl -q --output log/4/curl271.out --include --trace-ascii log/4/trace271 --trace-time tftp://127.0.0.1:38819//271 > log/4/stdout271 2> log/4/stderr271 === End of file commands.log === Start of file server.cmd Testnum 271 === End of file server.cmd === Start of file tftp_server.log 10:31:16.090491 Wrote pid 89930 to log/4/server/tftp_server.pid 10:31:16.091077 Wrote port 38819 to log/4/server/tftp_server.port 10:31:16.091195 Running IPv4 version on port UDP/38819 === End of file tftp_server.log === Start of file valgrind271 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind271 test 0278...[HTTP with proxy string including http:// and user+empty password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind278 ../src/curl -q --output log/5/curl278.out --include --trace-ascii log/5/trace278 --trace-time http://we.want.that.site.com/278 -x http://f%61ke:@127.0.0.1:41733 > log/5/stdout278 2> log/5/stderr278 278: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 278 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind278 ../src/curl -q --output log/5/curl278.out --include --trace-ascii log/5/trace278 --trace-time http://we.want.that.site.com/278 -x http://f%61ke:@127.0.0.1:41733 > log/5/stdout278 2> log/5/stderr278 === End of file commands.log === Start of file http_server.log 10:31:17.931230 ====> Client connect 10:31:17.931616 accept_connection 3 returned 4 10:31:17.931840 accept_connection 3 returned 0 10:31:17.932002 Read 93 bytes 10:31:17.932098 Process 93 bytes request 10:31:17.932235 Got request: GET /verifiedserver HTTP/1.1 10:31:17.932331 Are-we-friendly question received 10:31:17.932535 Wrote request (93 bytes) input to log/5/server.input 10:31:17.932759 Identifying ourselves as friends 10:31:17.933622 Response sent (56 bytes) and written to log/5/server.response 10:31:17.933805 special request received, no persistency 10:31:17.933879 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 52536 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 278 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind278 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind278 test 0279...[HTTP with proxy string including http:// and user only] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind279 ../src/curl -q --output log/8/curl279.out --include --trace-ascii log/8/trace279 --trace-time http://we.want.that.site.com/279 -x http://f%61ke@127.0.0.1:36007 > log/8/stdout279 2> log/8/stderr279 279: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 279 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind279 ../src/curl -q --output log/8/curl279.out --include --trace-ascii log/8/trace279 --trace-time http://we.want.that.site.com/279 -x http://f%61ke@127.0.0.1:36007 > log/8/stdout279 2> log/8/stderr279 === End of file commands.log === Start of file http_server.log 10:31:17.034686 ====> Client connect 10:31:17.035006 accept_connection 3 returned 4 10:31:17.035197 accept_CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind281 ../src/curl -q --output log/7/curl281.out --include --trace-ascii log/7/trace281 --trace-time http://127.0.0.1:40129/we/want/281 -f -T log/7/test281.txt > log/7/stdout281 2> log/7/stderr281 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind280 ../src/curl -q --output log/3/curl280.out --include --trace-ascii log/3/trace280 --trace-time ftp://127.0.0.1:33831/280/ --ftp-alternative-to-user "USER replacement" > log/3/stdout280 2> log/3/stderr280 connection 3 returned 0 10:31:17.035327 Read 93 bytes 10:31:17.035408 Process 93 bytes request 10:31:17.035488 Got request: GET /verifiedserver HTTP/1.1 10:31:17.035558 Are-we-friendly question received 10:31:17.035777 Wrote request (93 bytes) input to log/8/server.input 10:31:17.035948 Identifying ourselves as friends 10:31:17.037077 Response sent (56 bytes) and written to log/8/server.response 10:31:17.037241 special request received, no persistency 10:31:17.037311 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 49460 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 279 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind279 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind279 test 0281...[HTTP PUT from file with 100 + 401 responses and -f without auth given] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind281 ../src/curl -q --output log/7/curl281.out --include --trace-ascii log/7/trace281 --trace-time http://127.0.0.1:40129/we/want/281 -f -T log/7/test281.txt > log/7/stdout281 2> log/7/stderr281 281: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 281 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind281 ../src/curl -q --output log/7/curl281.out --include --trace-ascii log/7/trace281 --trace-time http://127.0.0.1:40129/we/want/281 -f -T log/7/test281.txt > log/7/stdout281 2> log/7/stderr281 === End of file commands.log === Start of file http_server.log 10:31:17.209986 ====> Client connect 10:31:17.210291 accept_connection 3 returned 4 10:31:17.210452 accept_connection 3 returned 0 10:31:17.211285 Read 93 bytes 10:31:17.211502 Process 93 bytes request 10:31:17.211621 Got request: GET /verifiedserver HTTP/1.1 10:31:17.211701 Are-we-friendly question received 10:31:17.211978 Wrote request (93 bytes) input to log/7/server.input 10:31:17.212301 Identifying ourselves as friends 10:31:17.213004 Response sent (56 bytes) and written to log/7/server.response 10:31:17.213187 special request received, no persistency 10:31:17.213278 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 51742 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 281 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file test281.txt Weird file to upload === End of file test281.txt === Start of file valgrind281 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind281 test 0280...[FTP --ftp-alternative-to-user on USER failure] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind280 ../src/curl -q --output log/3/curl280.out --include --trace-ascii log/3/trace280 --trace-time ftp://127.0.0.1:33831/280/ --ftp-alternative-to-user "USER replacement" > log/3/stdout280 2> log/3/stderr280 280: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 280 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind280 ../src/curl -q --output log/3/curl280.out --include --trace-ascii log/3/trace280 --trace-time ftp://127.0.0.1:33831/280/ --ftp-alternative-to-user "USER replacement" > log/3/stdout280 2> log/3/stderr280 === End of file commands.log === Start of file ftp_server.log 10:31:17.505097 ====> Client connect 10:31:17.508464 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:17.515133 < "USER anonymous" 10:31:17.521818 > "331 We are happy you popped in![CR][LF]" 10CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind275 ../src/curl -q --output log/6/curl275.out --include --trace-ascii log/6/trace275 --trace-time http://remotesite.com.275:33363/we/want/that/page/275 -p -x 127.0.0.1:33453 --user iam:myself --proxy-user youare:yourself http://remotesite.com.275:33363/we/want/that/page/275 > log/6/stdout275 2> log/6/stderr275 :31:17.527379 < "PASS ftp@example.com" 10:31:17.528083 > "230 Welcome you silly person[CR][LF]" 10:31:17.531277 < "PWD" 10:31:17.531930 > "257 "/" is current directory[CR][LF]" 10:31:17.538573 < "EPSV" 10:31:17.539088 ====> Passive DATA channel requested by client 10:31:17.539411 DATA sockfilt for passive data channel starting... 10:31:17.553664 DATA sockfilt for passive data channel started (pid 90516) 10:31:17.555835 DATA sockfilt for passive data channel listens on port 34897 10:31:17.556602 > "229 Entering Passive Mode (|||34897|)[LF]" 10:31:17.556977 Client has been notified that DATA conn will be accepted on port 34897 10:31:17.560283 Client connects to port 34897 10:31:17.560850 ====> Client established passive DATA connection on port 34897 10:31:17.562135 < "TYPE I" 10:31:17.562703 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:17.564507 < "SIZE verifiedserver" 10:31:17.565210 > "213 17[CR][LF]" 10:31:17.567323 < "RETR verifiedserver" 10:31:17.568029 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:17.569132 =====> Closing passive DATA connection... 10:31:17.569665 Server disconnects passive DATA connection 10:31:17.571775 Server disconnected passive DATA connection 10:31:17.572253 DATA sockfilt for passive data channel quits (pid 90516) 10:31:17.575261 DATA sockfilt for passive data channel quit (pid 90516) 10:31:17.575711 =====> Closed passive DATA connection 10:31:17.576268 > "226 File transfer complete[CR][LF]" 10:31:17.618798 < "QUIT" 10:31:17.619291 > "221 bye bye baby[CR][LF]" 10:31:17.623628 MAIN sockfilt said DISC 10:31:17.624114 ====> Client disconnected 10:31:17.624678 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:17.174929 ====> Client connect 10:31:17.177421 Received DATA (on stdin) 10:31:17.177681 > 160 bytes data, server => client 10:31:17.179700 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:17.179858 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:17.179937 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:17.184586 < 16 bytes data, client => server 10:31:17.184796 'USER anonymous\r\n' 10:31:17.186372 Received DATA (on stdin) 10:31:17.186550 > 33 bytes data, server => client 10:31:17.193311 '331 We are happy you popped in!\r\n' 10:31:17.196749 < 22 bytes data, client => server 10:31:17.196998 'PASS ftp@example.com\r\n' 10:31:17.199367 Received DATA (on stdin) 10:31:17.199631 > 30 bytes data, server => client 10:31:17.199740 '230 Welcome you silly person\r\n' 10:31:17.200620 < 5 bytes data, client => server 10:31:17.200856 'PWD\r\n' 10:31:17.206931 Received DATA (on stdin) 10:31:17.207143 > 30 bytes data, server => client 10:31:17.207238 '257 "/" is current directory\r\n' 10:31:17.208041 < 6 bytes data, client => server 10:31:17.208285 'EPSV\r\n' 10:31:17.227360 Received DATA (on stdin) 10:31:17.227615 > 38 bytes data, server => client 10:31:17.227775 '229 Entering Passive Mode (|||34897|)\n' 10:31:17.229576 < 8 bytes data, client => server 10:31:17.229792 'TYPE I\r\n' 10:31:17.233427 Received DATA (on stdin) 10:31:17.233615 > 33 bytes data, server => client 10:31:17.233719 '200 I modify TYPE as you wanted\r\n' 10:31:17.234475 < 21 bytes data, client => server 10:31:17.234744 'SIZE verifiedserver\r\n' 10:31:17.235955 Received DATA (on stdin) 10:31:17.236295 > 8 bytes data, server => client 10:31:17.236472 '213 17\r\n' 10:31:17.237216 < 21 bytes data, client => server 10:31:17.237453 'RETR verifiedserver\r\n' 10:31:17.243229 Received DATA (on stdin) 10:31:17.243406 > 29 bytes data, server => client 10:31:17.243523 '150 Binary junk (17 bytes).\r\n' 10:31:17.247010 Received DATA (on stdin) 10:31:17.247233 > 28 bytes data, server => client 10:31:17.247398 '226 File transfer complete\r\n' 10:31:17.288498 < 6 bytes data, client => server 10:31:17.288801 'QUIT\r\n' 10:31:17.290053 Received DATA (on stdin) 10:31:17.290228 > 18 bytes data, server => client 10:31:17.290328 '221 bye bye baby\r\n' 10:31:17.290833 ====> Client disconnect 10:31:17.294989 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:17.222332 Running IPv4 version 10:31:17.222951 Listening on port 34897 10:31:17.223342 Wrote pid 90516 to log/3/server/ftp_sockdata.pid 10:31:17.223524 Received PING (on stdin) 10:31:17.225468 Received PORT (on stdin) 10:31:17.229626 ====> Client connect 10:31:17.240917 Received DATA (on stdin) 10:31:17.241124 > 17 bytes data, server => client 10:31:17.241249 'WE ROOLZ: 79555\r\n' 10:31:17.241634 Received DISC (on stdin) 10:31:17.241912 ====> Client forcibly disconnected 10:31:17.243419 Received QUIT (on stdin) 10:31:17.243523 quits 10:31:17.244067 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY USER 530 We don't like USER commands COUNT USER 1 Testnum 280 === End of file server.cmd === Start of file valgrind280 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind280 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/6/server/http2_server.pid" --logfile "log/6/http2_server.log" --logdir "log/6" --portfile log/6/server/http2_server.port --config log/6/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 90171 port 33453 * pid http-proxy => 90171 90171 test 0275...[HTTP CONNECT with proxytunnel getting two URLs from the same host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind275 ../src/curl -q --output log/6/curl275.out --include --trace-ascii log/6/trace275 --trace-time http://remotesite.com.275:33363/we/want/that/page/275 -p -x 127.0.0.1:33453 --user iam:myself --proxy-user youare:yourself http://remotesite.com.275:33363/we/want/that/page/275 > log/6/stdout275 2> log/6/stderr275 275: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 275 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind275 ../src/curl -q --output log/6/curl275.out --include --trace-ascii log/6/trace275 --trace-time http://remotesite.com.275:33363/we/want/that/page/275 -p -x 127.0.0.1:33453 --user iam:myself --proxy-user youare:yourself http://remotesite.com.275:33363/we/want/that/page/275 > log/6/stdout275 2> log/6/stderr275 === End of file commands.log === Start of file http2_serCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind282 ../src/curl -q --output log/1/curl282.out --include --trace-ascii log/1/trace282 --trace-time http://127.0.0.1:36129/282 > log/1/stdout282 2> log/1/stderr282 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind284 ../src/curl -q --output log/4/curl284.out --include --trace-ascii log/4/trace284 --trace-time tftp://127.0.0.1:38819//284 > log/4/stdout284 2> log/4/stderr284 ver.log 10:31:17.693264 Run as proxy, CONNECT to host 127.0.0.1 10:31:17.694447 Running HTTP IPv4 version on port 33453 10:31:17.695307 Wrote pid 90171 to log/6/server/http2_server.pid 10:31:17.695961 Wrote port 33453 to log/6/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 10:31:16.408656 ====> Client connect 10:31:16.408995 accept_connection 3 returned 4 10:31:16.409297 accept_connection 3 returned 0 10:31:16.409450 Read 93 bytes 10:31:16.409539 Process 93 bytes request 10:31:16.409630 Got request: GET /verifiedserver HTTP/1.1 10:31:16.409701 Are-we-friendly question received 10:31:16.409900 Wrote request (93 bytes) input to log/6/server.input 10:31:16.410062 Identifying ourselves as friends 10:31:16.410729 Response sent (56 bytes) and written to log/6/server.response 10:31:16.410883 special request received, no persistency 10:31:16.410953 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 35396 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 275 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind275 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind275 test 0282...[HTTP GET with no response body or headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind282 ../src/curl -q --output log/1/curl282.out --include --trace-ascii log/1/trace282 --trace-time http://127.0.0.1:36129/282 > log/1/stdout282 2> log/1/stderr282 282: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 282 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind282 ../src/curl -q --output log/1/curl282.out --include --trace-ascii log/1/trace282 --trace-time http://127.0.0.1:36129/282 > log/1/stdout282 2> log/1/stderr282 === End of file commands.log === Start of file http_server.log 10:31:17.723274 ====> Client connect 10:31:17.723544 accept_connection 3 returned 4 10:31:17.723697 accept_connection 3 returned 0 10:31:17.723810 Read 93 bytes 10:31:17.723899 Process 93 bytes request 10:31:17.723984 Got request: GET /verifiedserver HTTP/1.1 10:31:17.724052 Are-we-friendly question received 10:31:17.724392 Wrote request (93 bytes) input to log/1/server.input 10:31:17.724673 Identifying ourselves as friends 10:31:17.725559 Response sent (56 bytes) and written to log/1/server.response 10:31:17.725732 special request received, no persistency 10:31:17.725831 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 55402 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 282 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind282 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind282 test 0284...[TFTP retrieve of boundary case 512 byte file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind284 ../src/curl -q --output log/4/curl284.out --include --trace-ascii log/4/trace284 --trace-time tftp://127.0.0.1:38819//284 > log/4/stdout284 2> log/4/stderr284 284: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 284 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind284 ../src/curl -q --output log/4/curl284.out --include --trace-ascii log/4/trace284 --trace-time tftp://127.0.0.1:38819//284 > log/4/stdout284 2> log/4/stderr284 === End of file commands.log === Start of file server.cmd Testnum 284 === End of file server.cmd === Start of file tftp_server.log 10:31:17.771282 trying to get file: verifiedserver mode 1 10:31:17.771550 Are-we-friendly questCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind288 ../src/curl -q --output log/3/curl288.out --trace-ascii log/3/trace288 --trace-time file://localhost/build/curl/src/build-curl/tests/log/3/test288.txt > log/3/stdout288 2> log/3/stderr288 ion received 10:31:17.771677 write 10:31:17.771925 read 10:31:17.772547 read: 4 10:31:17.773037 end of one transfer === End of file tftp_server.log === Start of file valgrind284 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind284 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind287 ../src/curl -q --include --trace-ascii log/7/trace287 --trace-time http://test.remote.example.com.287:40129/path/287 -H "User-Agent: looser/2015" --proxy http://127.0.0.1:40129 --proxytunnel --proxy-header "User-Agent: looser/2007" > log/7/stdout287 2> log/7/stderr287 setenv all_proxy = http://fake:user@127.0.0.1:47/ test 0288...[file:// with (unsupported) proxy, authentication and range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind288 ../src/curl -q --output log/3/curl288.out --trace-ascii log/3/trace288 --trace-time file://localhost/build/curl/src/build-curl/tests/log/3/test288.txt > log/3/stdout288 2> log/3/stderr288 288: data FAILED: --- log/3/check-expected 2025-09-11 10:31:19.055637576 +0000 +++ log/3/check-generated 2025-09-11 10:31:19.055637576 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/3/ dir after test 288 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind288 ../src/curl -q --output log/3/curl288.out --trace-ascii log/3/trace288 --trace-time file://localhost/build/curl/src/build-curl/tests/log/3/test288.txt > log/3/stdout288 2> log/3/stderr288 === End of file commands.log === Start of file server.cmd Testnum 288 === End of file server.cmd === Start of file test288.txt foo bar bar foo moo === End of file test288.txt === Start of file valgrind288 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind288 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind289 ../src/curl -q --output log/6/curl289.out --include --trace-ascii log/6/trace289 --trace-time ftp://127.0.0.1:33323/289 -T log/6/illegal-nonexistent-file -C - > log/6/stdout289 2> log/6/stderr289 test 0287...[HTTP proxy CONNECT with custom User-Agent header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind287 ../src/curl -q --include --trace-ascii log/7/trace287 --trace-time http://test.remote.example.com.287:40129/path/287 -H "User-Agent: looser/2015" --proxy http://127.0.0.1:40129 --proxytunnel --proxy-header "User-Agent: looser/2007" > log/7/stdout287 2> log/7/stderr287 287: stdout FAILED: --- log/7/check-expected 2025-09-11 10:31:19.203640522 +0000 +++ log/7/check-generated 2025-09-11 10:31:19.203640522 +0000 @@ -1,2 +0,0 @@ -HTTP/1.1 405 Method Not Allowed swsclose[CR][LF] -[CR][LF] == Contents of files in the log/7/ dir after test 287 === Start of file check-expected HTTP/1.1 405 Method Not Allowed swsclose[CR][LF] [CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind287 ../src/curl -q --include --trace-ascii log/7/trace287 --trace-time http://test.remote.example.com.287:40129/path/287 -H "User-Agent: looser/2015" --proxy http://127.0.0.1:40129 --proxytunnel --proxy-header "User-Agent: looser/2007" > log/7/stdout287 2> log/7/stderr287 === End of file commands.log === Start of file http_server.log 10:31:18.173282 ====> Client connect 10:31:18.173584 accept_connection 3 returned 4 10:31:18.173763 accept_connection 3 returned 0 10:31:18.173884 Read 93 bytes 10:31:18.173966 Process 93 bytes request 10:31:18.174049 Got request: GET /verifiedserver HTTP/1.1 10:31:18.174114 Are-we-friendly question received 10:31:18.174332 Wrote request (93 bytes) input to log/7/server.input 10:31:18.174508 Identifying ourselves as friends 10:31:18.175162 Response sent (56 bytes) and written to log/7/server.response 10:31:18.175275 special request received, no persistency 10:31:18.175337 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 51754 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 287 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind287 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind287 test 0289...[FTP resume upload but denied access to local file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind289 ../src/curl -q --output log/6/curl289.out --include --trace-ascii log/6/trace289 --trace-time ftp://127.0.0.1:33323/289 -T log/6/illegal-nonexistent-file -C - > log/6/stdout289 2> log/6/stderr289 curl returned 1, when expecting 26 289: exit FAILED == Contents of files in the log/6/ dir after test 289 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind289 ../src/curl -q --output log/6/curl289.out --include --trace-ascii log/6/trace289 --trace-time ftp://127.0.0.1:33323/289 -T log/6/illegal-nonexistent-file -C - > log/6/stdout289 2> log/6/stderr289 === End of file commands.log === Start of file ftp_server.log 10:31:18.737714 ====> Client connect 10:31:18.739374 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:18.743334 < "USER anonymous" 10:31:18.743863 > "331 We are happy you popped in![CR][LF]" 10:31:18.746645 < "PASS ftp@example.com" 10:31:18.747339 > "230 Welcome you silly person[CR][LF]" 10:31:18.750347 < "PWD" 10:31:18.750988 > "257 "/" is current directory[CR][LF]" 10:31:18.754837 < "EPSV" 10:31:18.755381 ====> Passive DATA channel requested by client 10:31:18.755693 DATA sockfilt for passive data channel starting... 10:31:18.767120 DATA sockfilt for passive data channel started (pid 91000) 10:31:18.768992 DATA sockfilt for passive data channel listens on port 35595 10:31:18.769655 > "229 Entering Passive Mode (|||35595|)[LF]" 10:31:18.770020 Client has been notified that DATA conn will be accepted on port 35595 10:31:18.771947 Client connects to port 35595 10:31:18.772398 ====> Client established passive DATA connection on port 35595 10:31:18.773353 < "TYPE I" 10:31:18.773914 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:18.775593 < "SIZE verifiedserver" 10:31:18.776149 > "213 17[CR][LF]" 10:31:18.778045 < "RETR verifiedserver" 10:31:18.778694 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:18.779650 =====> Closing passive DATA connection... 10:31:18.779972 Server disconnects passive DATA connection 10:31:18.781879 Server disconnected passive DATA connection 10:31:18.782362 DATA sockfilt for passive data channel quits (pid 91000) 10:31:18.785307 DATA sockfilt for passive data channel quit (pid 91000) 10:31:18.785950 =====> Closed passive DATA connection 10:31:18.786494 > "226 File transfer complete[CR][LF]" 10:31:18.823627 < "QUIT" 10:31:18.824143 > "221 bye bye baby[CR][LF]" 10:31:18.825228 MAIN sockfilt said DISC 10:31:18.825784 ====> Client disconnected 10:31:18.826384 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:19.406626 ====> Client connect 10:31:19.410665 Received DATA (on stdin) 10:31:19.410948 > 160 bytes data, server => client 10:31:19.411127 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:19.411242 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:19.411329 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:19.412495 < 16 bytes data, client => server 10:31:19.412717 'USER anonymous\r\n' 10:31:19.414954 Received DATA (on stdin) 10:31:19.415136 > 33 bytes data, server => client 10:31:19.415249 '331 We are happy you popped in!\r\n' 10:31:19.416000 < 22 bytes data, client => server 10:31:19.416267 'PASS ftp@example.com\r\n' 10:31:19.418573 Received DATA (on stdin) 10:31:19.418808 > 30 bytes data, server => client 10:31:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind283 ../src/curl -q --output log/2/curl283.out --include --trace-ascii log/2/trace283 --trace-time tftp://127.0.0.1:48489//invalid-file --tftp-blksize 1024 > log/2/stdout283 2> log/2/stderr283 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind290 ../src/curl -q --output log/1/curl290.out --include --trace-ascii log/1/trace290 --trace-time ftp://127.0.0.1:38733/290 --max-filesize 30 > log/1/stdout290 2> log/1/stderr290 19.418902 '230 Welcome you silly person\r\n' 10:31:19.419780 < 5 bytes data, client => server 10:31:19.420037 'PWD\r\n' 10:31:19.422223 Received DATA (on stdin) 10:31:19.422483 > 30 bytes data, server => client 10:31:19.422606 '257 "/" is current directory\r\n' 10:31:19.423453 < 6 bytes data, client => server 10:31:19.423695 'EPSV\r\n' 10:31:19.440411 Received DATA (on stdin) 10:31:19.440659 > 38 bytes data, server => client 10:31:19.440773 '229 Entering Passive Mode (|||35595|)\n' 10:31:19.442239 < 8 bytes data, client => server 10:31:19.442471 'TYPE I\r\n' 10:31:19.444610 Received DATA (on stdin) 10:31:19.444775 > 33 bytes data, server => client 10:31:19.444857 '200 I modify TYPE as you wanted\r\n' 10:31:19.445534 < 21 bytes data, client => server 10:31:19.445701 'SIZE verifiedserver\r\n' 10:31:19.446857 Received DATA (on stdin) 10:31:19.447060 > 8 bytes data, server => client 10:31:19.447196 '213 17\r\n' 10:31:19.447909 < 21 bytes data, client => server 10:31:19.448089 'RETR verifiedserver\r\n' 10:31:19.449440 Received DATA (on stdin) 10:31:19.449688 > 29 bytes data, server => client 10:31:19.449783 '150 Binary junk (17 bytes).\r\n' 10:31:19.457991 Received DATA (on stdin) 10:31:19.458257 > 28 bytes data, server => client 10:31:19.458379 '226 File transfer complete\r\n' 10:31:19.493409 < 6 bytes data, client => server 10:31:19.493628 'QUIT\r\n' 10:31:19.494828 Received DATA (on stdin) 10:31:19.495010 > 18 bytes data, server => client 10:31:19.495087 '221 bye bye baby\r\n' 10:31:19.495612 ====> Client disconnect 10:31:19.496502 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:18.436130 Running IPv4 version 10:31:18.436790 Listening on port 35595 10:31:18.437212 Wrote pid 91000 to log/6/server/ftp_sockdata.pid 10:31:18.437408 Received PING (on stdin) 10:31:18.438976 Received PORT (on stdin) 10:31:18.442303 ====> Client connect 10:31:18.450225 Received DATA (on stdin) 10:31:18.450434 > 17 bytes data, server => client 10:31:18.450548 'WE ROOLZ: 79480\r\n' 10:31:18.452087 Received DISC (on stdin) 10:31:18.452438 ====> Client forcibly disconnected 10:31:18.454437 Received QUIT (on stdin) 10:31:18.454696 quits 10:31:18.455158 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 289 === End of file server.cmd === Start of file valgrind289 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind289 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/2/server/tftp_server.pid" --portfile "log/2/server/tftp_server.port" --logfile "log/2/tftp_server.log" --logdir "log/2" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 90694 port 48489 * pid tftp => 90694 90694 test 0283...[TFTP retrieve on invalid file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind283 ../src/curl -q --output log/2/curl283.out --include --trace-ascii log/2/trace283 --trace-time tftp://127.0.0.1:48489//invalid-file --tftp-blksize 1024 > log/2/stdout283 2> log/2/stderr283 283: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 283 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind283 ../src/curl -q --output log/2/curl283.out --include --trace-ascii log/2/trace283 --trace-time tftp://127.0.0.1:48489//invalid-file --tftp-blksize 1024 > log/2/stdout283 2> log/2/stderr283 === End of file commands.log === Start of file server.cmd Testnum 283 === End of file server.cmd === Start of file tftp_server.log 10:31:18.872760 Wrote pid 90694 to log/2/server/tftp_server.pid 10:31:18.873444 Wrote port 48489 to log/2/server/tftp_server.port 10:31:18.873610 Running IPv4 version on port UDP/48489 === End of file tftp_server.log === Start of file valgrind283 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind283 test 0290...[FTP download maximum filesize exceeded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind290 ../src/curl -q --output log/1/curl290.out --include --trace-ascii log/1/trace290 --trace-time ftp://127.0.0.1:38733/290 --max-filesize 30 > log/1/stdout290 2> log/1/stderr290 290: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 290 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind290 ../src/curl -q --output log/1/curl290.out --include --trace-ascii log/1/trace290 --trace-time ftp://127.0.0.1:38733/290 --max-filesize 30 > log/1/stdout290 2> log/1/stderr290 === End of file commands.log === Start of file ftp_server.log 10:31:18.862154 ====> Client connect 10:31:18.864287 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]2CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind291 ../src/curl -q --output log/4/curl291.out --include --trace-ascii log/4/trace291 --trace-time ftp://127.0.0.1:42635/291 --max-filesize 100 > log/4/stdout291 2> log/4/stderr291 20- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:18.867110 < "USER anonymous" 10:31:18.867604 > "331 We are happy you popped in![CR][LF]" 10:31:18.869263 < "PASS ftp@example.com" 10:31:18.869727 > "230 Welcome you silly person[CR][LF]" 10:31:18.871541 < "PWD" 10:31:18.871984 > "257 "/" is current directory[CR][LF]" 10:31:18.874615 < "EPSV" 10:31:18.874940 ====> Passive DATA channel requested by client 10:31:18.875143 DATA sockfilt for passive data channel starting... 10:31:18.885537 DATA sockfilt for passive data channel started (pid 91053) 10:31:18.886606 DATA sockfilt for passive data channel listens on port 40011 10:31:18.887134 > "229 Entering Passive Mode (|||40011|)[LF]" 10:31:18.887359 Client has been notified that DATA conn will be accepted on port 40011 10:31:18.888873 Client connects to port 40011 10:31:18.889253 ====> Client established passive DATA connection on port 40011 10:31:18.890213 < "TYPE I" 10:31:18.890713 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:18.892636 < "SIZE verifiedserver" 10:31:18.893196 > "213 17[CR][LF]" 10:31:18.898197 < "RETR verifiedserver" 10:31:18.898633 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:18.899255 =====> Closing passive DATA connection... 10:31:18.899505 Server disconnects passive DATA connection 10:31:18.900911 Server disconnected passive DATA connection 10:31:18.901309 DATA sockfilt for passive data channel quits (pid 91053) 10:31:18.903047 DATA sockfilt for passive data channel quit (pid 91053) 10:31:18.903400 =====> Closed passive DATA connection 10:31:18.903802 > "226 File transfer complete[CR][LF]" 10:31:18.950419 < "QUIT" 10:31:18.950962 > "221 bye bye baby[CR][LF]" 10:31:18.957700 MAIN sockfilt said DISC 10:31:18.958166 ====> Client disconnected 10:31:18.958946 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:18.532084 ====> Client connect 10:31:18.533999 Received DATA (on stdin) 10:31:18.534221 > 160 bytes data, server => client 10:31:18.534389 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:18.534474 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:18.534535 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:18.535150 < 16 bytes data, client => server 10:31:18.535348 'USER anonymous\r\n' 10:31:18.538331 Received DATA (on stdin) 10:31:18.538530 > 33 bytes data, server => client 10:31:18.538637 '331 We are happy you popped in!\r\n' 10:31:18.539273 < 22 bytes data, client => server 10:31:18.539496 'PASS ftp@example.com\r\n' 10:31:18.540398 Received DATA (on stdin) 10:31:18.540574 > 30 bytes data, server => client 10:31:18.540655 '230 Welcome you silly person\r\n' 10:31:18.541611 < 5 bytes data, client => server 10:31:18.541852 'PWD\r\n' 10:31:18.542670 Received DATA (on stdin) 10:31:18.542831 > 30 bytes data, server => client 10:31:18.542920 '257 "/" is current directory\r\n' 10:31:18.544348 < 6 bytes data, client => server 10:31:18.544585 'EPSV\r\n' 10:31:18.557825 Received DATA (on stdin) 10:31:18.558017 > 38 bytes data, server => client 10:31:18.558112 '229 Entering Passive Mode (|||40011|)\n' 10:31:18.559438 < 8 bytes data, client => server 10:31:18.559620 'TYPE I\r\n' 10:31:18.561409 Received DATA (on stdin) 10:31:18.561648 > 33 bytes data, server => client 10:31:18.561757 '200 I modify TYPE as you wanted\r\n' 10:31:18.562611 < 21 bytes data, client => server 10:31:18.562833 'SIZE verifiedserver\r\n' 10:31:18.564277 Received DATA (on stdin) 10:31:18.564498 > 8 bytes data, server => client 10:31:18.564600 '213 17\r\n' 10:31:18.568115 < 21 bytes data, client => server 10:31:18.568477 'RETR verifiedserver\r\n' 10:31:18.569305 Received DATA (on stdin) 10:31:18.569439 > 29 bytes data, server => client 10:31:18.569510 '150 Binary junk (17 bytes).\r\n' 10:31:18.574955 Received DATA (on stdin) 10:31:18.575151 > 28 bytes data, server => client 10:31:18.575236 '226 File transfer complete\r\n' 10:31:18.620138 < 6 bytes data, client => server 10:31:18.620469 'QUIT\r\n' 10:31:18.621677 Received DATA (on stdin) 10:31:18.621931 > 18 bytes data, server => client 10:31:18.622069 '221 bye bye baby\r\n' 10:31:18.625128 ====> Client disconnect 10:31:18.628895 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:18.554839 Running IPv4 version 10:31:18.555388 Listening on port 40011 10:31:18.555728 Wrote pid 91053 to log/1/server/ftp_sockdata.pid 10:31:18.555870 Received PING (on stdin) 10:31:18.556696 Received PORT (on stdin) 10:31:18.559154 ====> Client connect 10:31:18.570436 Received DATA (on stdin) 10:31:18.570582 > 17 bytes data, server => client 10:31:18.570651 'WE ROOLZ: 79585\r\n' 10:31:18.570964 Received DISC (on stdin) 10:31:18.571161 ====> Client forcibly disconnected 10:31:18.572352 Received QUIT (on stdin) 10:31:18.572515 quits 10:31:18.572920 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 290 === End of file server.cmd === Start of file valgrind290 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind290 test 0291...[FTP download maximum filesize not exceeded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind291 ../src/curl -q --output log/4/curl291.out --include --trace-ascii log/4/trace291 --trace-time ftp://127.0.0.1:42635/291 --max-filesize 100 > log/4/stdout291 2> log/4/stderr291 291: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 291 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind291 ../src/curl -q --output log/4/curl291.out --include --trace-ascii log/4/trace291 --trace-time ftp://127.0.0.1:42635/291 --max-filesize 100 > log/4/stdout291 2> log/4/stderr291 === End of file commands.log === Start of file ftp_server.log 10:31:18.946165 ====> Client connect 10:31:18.947622 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:18.950887 < "USER anonymous" 10:31:18.951912 > "331 We are happy you popped in![CR][LF]" 10:31:18.955836 < "PASS ftp@example.com" 10:31:18.957096 > "230 Welcome you silly person[CR][LF]" 10:31:18.960203 < "PWD" 10:31:18.960919 > "257 "/" is current directory[CR][LF]" 10:31:18.963889 < "EPSV" 1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind285 ../src/curl -q --output log/5/curl285.out --include --trace-ascii log/5/trace285 --trace-time -T log/5/test285.txt tftp://127.0.0.1:44106// --connect-timeout 549 > log/5/stdout285 2> log/5/stderr285 0:31:18.964259 ====> Passive DATA channel requested by client 10:31:18.964473 DATA sockfilt for passive data channel starting... 10:31:18.975735 DATA sockfilt for passive data channel started (pid 91088) 10:31:18.976993 DATA sockfilt for passive data channel listens on port 42621 10:31:18.977642 > "229 Entering Passive Mode (|||42621|)[LF]" 10:31:18.978000 Client has been notified that DATA conn will be accepted on port 42621 10:31:18.980482 Client connects to port 42621 10:31:18.980872 ====> Client established passive DATA connection on port 42621 10:31:18.981875 < "TYPE I" 10:31:18.982714 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:18.984638 < "SIZE verifiedserver" 10:31:18.985078 > "213 17[CR][LF]" 10:31:18.987136 < "RETR verifiedserver" 10:31:18.988611 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:18.989536 =====> Closing passive DATA connection... 10:31:18.989773 Server disconnects passive DATA connection 10:31:18.990641 Fancy that; client wants to DISC, too 10:31:18.992211 Server disconnected passive DATA connection 10:31:18.992545 DATA sockfilt for passive data channel quits (pid 91088) 10:31:18.994445 DATA sockfilt for passive data channel quit (pid 91088) 10:31:18.994822 =====> Closed passive DATA connection 10:31:18.995184 > "226 File transfer complete[CR][LF]" 10:31:19.034218 < "QUIT" 10:31:19.034778 > "221 bye bye baby[CR][LF]" 10:31:19.037592 MAIN sockfilt said DISC 10:31:19.038103 ====> Client disconnected 10:31:19.038728 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:19.615983 ====> Client connect 10:31:19.618908 Received DATA (on stdin) 10:31:19.619127 > 160 bytes data, server => client 10:31:19.619223 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:19.619306 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:19.619374 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:19.620229 < 16 bytes data, client => server 10:31:19.620469 'USER anonymous\r\n' 10:31:19.622146 Received DATA (on stdin) 10:31:19.622334 > 33 bytes data, server => client 10:31:19.623092 '331 We are happy you popped in!\r\n' 10:31:19.625168 < 22 bytes data, client => server 10:31:19.625400 'PASS ftp@example.com\r\n' 10:31:19.627177 Received DATA (on stdin) 10:31:19.627415 > 30 bytes data, server => client 10:31:19.628480 '230 Welcome you silly person\r\n' 10:31:19.629621 < 5 bytes data, client => server 10:31:19.629888 'PWD\r\n' 10:31:19.632054 Received DATA (on stdin) 10:31:19.632463 > 30 bytes data, server => client 10:31:19.632622 '257 "/" is current directory\r\n' 10:31:19.633436 < 6 bytes data, client => server 10:31:19.633642 'EPSV\r\n' 10:31:19.649074 Received DATA (on stdin) 10:31:19.649245 > 38 bytes data, server => client 10:31:19.649330 '229 Entering Passive Mode (|||42621|)\n' 10:31:19.650796 < 8 bytes data, client => server 10:31:19.650971 'TYPE I\r\n' 10:31:19.653010 Received DATA (on stdin) 10:31:19.653182 > 33 bytes data, server => client 10:31:19.653727 '200 I modify TYPE as you wanted\r\n' 10:31:19.654384 < 21 bytes data, client => server 10:31:19.654555 'SIZE verifiedserver\r\n' 10:31:19.656073 Received DATA (on stdin) 10:31:19.656304 > 8 bytes data, server => client 10:31:19.656393 '213 17\r\n' 10:31:19.656989 < 21 bytes data, client => server 10:31:19.657141 'RETR verifiedserver\r\n' 10:31:19.658258 Received DATA (on stdin) 10:31:19.658409 > 29 bytes data, server => client 10:31:19.658628 '150 Binary junk (17 bytes).\r\n' 10:31:19.665908 Received DATA (on stdin) 10:31:19.666089 > 28 bytes data, server => client 10:31:19.666186 '226 File transfer complete\r\n' 10:31:19.704015 < 6 bytes data, client => server 10:31:19.704353 'QUIT\r\n' 10:31:19.705477 Received DATA (on stdin) 10:31:19.705689 > 18 bytes data, server => client 10:31:19.705806 '221 bye bye baby\r\n' 10:31:19.707695 ====> Client disconnect 10:31:19.708820 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:18.644825 Running IPv4 version 10:31:18.645391 Listening on port 42621 10:31:18.645915 Wrote pid 91088 to log/4/server/ftp_sockdata.pid 10:31:18.646115 Received PING (on stdin) 10:31:18.646921 Received PORT (on stdin) 10:31:18.650434 ====> Client connect 10:31:18.659868 Received DATA (on stdin) 10:31:18.660085 > 17 bytes data, server => client 10:31:18.660255 'WE ROOLZ: 79516\r\n' 10:31:18.660964 ====> Client disconnect 10:31:18.662464 Received DISC (on stdin) 10:31:18.662691 Crikey! Client also wants to disconnect 10:31:18.662803 Received ACKD (on stdin) 10:31:18.663554 Received QUIT (on stdin) 10:31:18.663714 quits 10:31:18.664107 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 291 === End of file server.cmd === Start of file valgrind291 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind291 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/5/server/tftp_server.pid" --portfile "log/5/server/tftp_server.port" --logfile "log/5/tftp_server.log" --logdir "log/5" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 90750 port 44106 * pid tftp => 90750 90750 test 0285...[TFTP send] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind285 ../src/curl -q --output log/5/curl285.out --include --trace-ascii log/5/trace285 --trace-time -T log/5/test285.txt tftp://127.0.0.1:44106// --connect-timeout 549 > log/5/stdout285 2> log/5/stderr285 285: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 285 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind285 ../src/curl -q --output log/5/curl285.out --include --trace-ascii log/5/trace285 --trace-time -T log/5/test285.txt tftp://127.0.0.1:44106// --connect-timeout 549 > log/5/stdout285 2> log/5/stderr285 === End of file commands.log === Start of file server.cmd Testnum 285 === End of file server.cmd === Start of file test285.txt a chunk of data sent to server === End of file test285.txt === Start of file tftp_server.log 10:31:18.970606 Wrote pid 90750 to log/5/server/tftp_server.pid 10:31:18.971356 Wrote port 44106 to log/5/server/tftp_server.port 10:31:18.971505 Running IPv4 version on port UDP/44106 === End of file tftp_server.log === Start of file valgrind285 valgrind: Fatal error at startup: a function redirectioCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind292 ../src/curl -q --output log/3/curl292.out --include --trace-ascii log/3/trace292 --trace-time http://127.0.0.1:36933/292 --max-filesize 1000 > log/3/stdout292 2> log/3/stderr292 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind286 ../src/curl -q --output log/8/curl286.out --include --trace-ascii log/8/trace286 --trace-time -T log/8/test286.txt tftp://127.0.0.1:57736// > log/8/stdout286 2> log/8/stderr286 n valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind285 test 0292...[HTTP GET with maximum filesize not exceeded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind292 ../src/curl -q --output log/3/curl292.out --include --trace-ascii log/3/trace292 --trace-time http://127.0.0.1:36933/292 --max-filesize 1000 > log/3/stdout292 2> log/3/stderr292 292: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 292 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind292 ../src/curl -q --output log/3/curl292.out --include --trace-ascii log/3/trace292 --trace-time http://127.0.0.1:36933/292 --max-filesize 1000 > log/3/stdout292 2> log/3/stderr292 === End of file commands.log === Start of file http_server.log 10:31:18.904872 ====> Client connect 10:31:18.905219 accept_connection 3 returned 4 10:31:18.905433 accept_connection 3 returned 0 10:31:18.905580 Read 93 bytes 10:31:18.905676 Process 93 bytes request 10:31:18.905760 Got request: GET /verifiedserver HTTP/1.1 10:31:18.905835 Are-we-friendly question received 10:31:18.906093 Wrote request (93 bytes) input to log/3/server.input 10:31:18.906310 Identifying ourselves as friends 10:31:18.907081 Response sent (56 bytes) and written to log/3/server.response 10:31:18.907213 special request received, no persistency 10:31:18.907281 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42422 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 292 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind292 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind292 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/8/server/tftp_server.pid" --portfile "log/8/server/tftp_server.port" --logfile "log/8/tftp_server.log" --logdir "log/8" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 90794 port 57736 * pid tftp => 90794 90794 test 0286...[TFTP send of boundary case 512 byte file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind286 ../src/curl -q --output log/8/curl286.out --include --trace-ascii log/8/trace286 --trace-time -T log/8/test286.txt tftp://127.0.0.1:57736// > log/8/stdout286 2> log/8/stderr286 286: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 286 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind286 ../src/curl -q --output log/8/curl286.out --include --trace-ascii log/8/trace286 --trace-time -T log/8/test286.txt tftp://127.0.0.1:57736// > log/8/stdout286 2> log/8/stderr286 === End of file commands.log === Start of file server.cmd Testnum 286 === End of file server.cmd === Start of file test286.txt A chunk of data which exactly fits into a 512 byte TFTP block, testing a boundary condition in the TFTP transmit code. 89ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF 123456789ABCDEF === End of file test286.txt === Start of file tftp_server.log 10:31:18.095955 Wrote pid 90794 to log/8/server/tftp_server.pid 10:31:18.096530 Wrote port 57736 to log/8/server/tftp_server.port 10:31:18.096636 Running IPv4 version on port UDP/57736 === End of file tftp_server.log === Start of file valgrind286 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on thiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind293 ../src/curl -q --output log/7/curl293.out --include --trace-ascii log/7/trace293 --trace-time http://127.0.0.1:40129/293 --max-filesize 2 > log/7/stdout293 2> log/7/stderr293 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind294 ../src/curl -q --output log/6/curl294.out --include --trace-ascii log/6/trace294 --trace-time ftp://127.0.0.1:33323/294/ --ftp-account "data for acct" > log/6/stdout294 2> log/6/stderr294 s machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind286 test 0300 SKIPPED: no stunnel test 0301 SKIPPED: no stunnel test 0302 SKIPPED: no stunnel test 0293...[HTTP GET with maximum filesize exceeded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind293 ../src/curl -q --output log/7/curl293.out --include --trace-ascii log/7/trace293 --trace-time http://127.0.0.1:40129/293 --max-filesize 2 > log/7/stdout293 2> log/7/stderr293 293: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 293 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind293 ../src/curl -q --output log/7/curl293.out --include --trace-ascii log/7/trace293 --trace-time http://127.0.0.1:40129/293 --max-filesize 2 > log/7/stdout293 2> log/7/stderr293 === End of file commands.log === Start of file http_server.log 10:31:19.089926 ====> Client connect 10:31:19.090236 accept_connection 3 returned 4 10:31:19.090462 accept_connection 3 returned 0 10:31:19.090624 Read 93 bytes 10:31:19.090726 Process 93 bytes request 10:31:19.090818 Got request: GET /verifiedserver HTTP/1.1 10:31:19.090898 Are-we-friendly question received 10:31:19.091106 Wrote request (93 bytes) input to log/7/server.input 10:31:19.091287 Identifying ourselves as friends 10:31:19.092008 Response sent (56 bytes) and written to log/7/server.response 10:31:19.092244 special request received, no persistency 10:31:19.092331 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 51758 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 293 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind293 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind293 test 0294...[FTP --ftp-account on ACCT request] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind294 ../src/curl -q --output log/6/curl294.out --include --trace-ascii log/6/trace294 --trace-time ftp://127.0.0.1:33323/294/ --ftp-account "data for acct" > log/6/stdout294 2> log/6/stderr294 294: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 294 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind294 ../src/curl -q --output log/6/curl294.out --include --trace-ascii log/6/trace294 --trace-time ftp://127.0.0.1:33323/294/ --ftp-account "data for acct" > log/6/stdout294 2> log/6/stderr294 === End of file commands.log === Start of file ftp_server.log 10:31:19.692223 ====> Client connect 10:31:19.693959 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:19.698076 < "USER anonymous" 10:31:19.698883 > "331 We are happy you popped in![CR][LF]" 10:31:19.702967 < "PASS ftp@example.com" 10:31:19.703766 > "230 Welcome you silly person[CR][LF]" 10:31:19.707460 < "PWD" 10:31:19.708236 > "257 "/" is current directory[CR][LF]" 10:31:19.711750 < "EPSV" 10:31:19.712279 ====> Passive DATA channel requested by client 10:31:19.712661 DATA sockfilt for passive data channel starting... 10:31:19.727223 DATA sockfilt for passive data channel started (pid 91458) 10:31:19.730545 DATA sockfilt for passive data channel listens on port 37975 10:31:19.731862 > "229 Entering Passive Mode (|||37975|)[LF]" 10:31:19.732291 Client has been notified that DATA conn will be accepted on port 37975 10:31:19.735392 Client connects to port 37975 10:31:19.736873 ====> Client established passive DATA connection on port 37975 10:31:19.738216 < "TYPE I" 10:31:19.738960 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:19.742695 < "SIZE verifiedserver" 10:31:19.744134 > "213 17[CR][LF]" 10:31:19.747622 < "RETR verifiedserver" 10:31:19.748367 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:19.749287 =====> Closing passive DATA connection... 10:31:19.751184 Server disconnects passive DATA connection 10:31:19.754471 Server disconnected passive DATA connection 10:31:19.755066 DATA sockfilt for passive data channel quits (pid 91458) 10:31:19.759557 DATA sockfilt for passive data channel quit (pid 91458) 10:31:19.760084 =====> Closed passive DATA connection 10:31:19.760693 > "226 File transfer complete[CR][LF]" 10:31:19.799033 < "QUIT" 10:31:19.801453 > "221 bye bye baby[CR][LF]" 10:31:19.804142 MAIN sockfilt said DISC 10:31:19.804759 ====> Client disconnected 10:31:19.808069 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:20.362022 ====> Client connect 10:31:20.364583 Received DATA (on stdin) 10:31:20.364971 > 160 bytes data, server => client 10:31:20.365112 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:20.365215 ' \r\n220- / __| | | | |CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind295 ../src/curl -q --output log/2/curl295.out --include --trace-ascii log/2/trace295 --trace-time ftp://127.0.0.1:37959/295/ > log/2/stdout295 2> log/2/stderr295 _) | | \r\n220- | (__| |_| | ' 10:31:20.365308 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:20.366649 < 16 bytes data, client => server 10:31:20.366985 'USER anonymous\r\n' 10:31:20.370218 Received DATA (on stdin) 10:31:20.370556 > 33 bytes data, server => client 10:31:20.370698 '331 We are happy you popped in!\r\n' 10:31:20.371748 < 22 bytes data, client => server 10:31:20.372060 'PASS ftp@example.com\r\n' 10:31:20.375090 Received DATA (on stdin) 10:31:20.375339 > 30 bytes data, server => client 10:31:20.375495 '230 Welcome you silly person\r\n' 10:31:20.376569 < 5 bytes data, client => server 10:31:20.376868 'PWD\r\n' 10:31:20.379542 Received DATA (on stdin) 10:31:20.379839 > 30 bytes data, server => client 10:31:20.380021 '257 "/" is current directory\r\n' 10:31:20.381172 < 6 bytes data, client => server 10:31:20.381389 'EPSV\r\n' 10:31:20.401977 Received DATA (on stdin) 10:31:20.402222 > 38 bytes data, server => client 10:31:20.403411 '229 Entering Passive Mode (|||37975|)\n' 10:31:20.405440 < 8 bytes data, client => server 10:31:20.405618 'TYPE I\r\n' 10:31:20.410297 Received DATA (on stdin) 10:31:20.410589 > 33 bytes data, server => client 10:31:20.410724 '200 I modify TYPE as you wanted\r\n' 10:31:20.411860 < 21 bytes data, client => server 10:31:20.412192 'SIZE verifiedserver\r\n' 10:31:20.414172 Received DATA (on stdin) 10:31:20.414445 > 8 bytes data, server => client 10:31:20.415444 '213 17\r\n' 10:31:20.416635 < 21 bytes data, client => server 10:31:20.416908 'RETR verifiedserver\r\n' 10:31:20.420678 Received DATA (on stdin) 10:31:20.420958 > 29 bytes data, server => client 10:31:20.421079 '150 Binary junk (17 bytes).\r\n' 10:31:20.431960 Received DATA (on stdin) 10:31:20.432285 > 28 bytes data, server => client 10:31:20.432478 '226 File transfer complete\r\n' 10:31:20.468443 < 6 bytes data, client => server 10:31:20.468705 'QUIT\r\n' 10:31:20.470276 Received DATA (on stdin) 10:31:20.470543 > 18 bytes data, server => client 10:31:20.470906 '221 bye bye baby\r\n' 10:31:20.471687 ====> Client disconnect 10:31:20.477793 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:19.393890 Running IPv4 version 10:31:19.394555 Listening on port 37975 10:31:19.395190 Wrote pid 91458 to log/6/server/ftp_sockdata.pid 10:31:19.396735 Received PING (on stdin) 10:31:19.400258 Received PORT (on stdin) 10:31:19.405437 ====> Client connect 10:31:19.422824 Received DATA (on stdin) 10:31:19.423100 > 17 bytes data, server => client 10:31:19.423272 'WE ROOLZ: 79480\r\n' 10:31:19.423798 Received DISC (on stdin) 10:31:19.424078 ====> Client forcibly disconnected 10:31:19.428262 Received QUIT (on stdin) 10:31:19.428545 quits 10:31:19.429140 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 Give me an ACCT now REPLY ACCT 230 Thank-you for the ACCT Testnum 294 === End of file server.cmd === Start of file valgrind294 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind294 test 0295...[FTP ACCT request without --ftp-account] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind295 ../src/curl -q --output log/2/curl295.out --include --trace-ascii log/2/trace295 --trace-time ftp://127.0.0.1:37959/295/ > log/2/stdout295 2> log/2/stderr295 295: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 295 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind295 ../src/curl -q --output log/2/curl295.out --include --trace-ascii log/2/trace295 --trace-time ftp://127.0.0.1:37959/295/ > log/2/stdout295 2> log/2/stderr295 === End of file commands.log === Start of file ftp_server.log 10:31:19.877620 ====> Client connect 10:31:19.879139 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:19.881623 < "USER anonymous" 10:31:19.882187 > "331 We are happy you popped in![CR][LF]" 10:31:19.886319 < "PASS ftp@example.com" 10:31:19.886773 > "230 Welcome you silly person[CR][LF]" 10:31:19.890339 < "PWD" 10:31:19.891031 > "257 "/" is current directory[CR][LF]" 10:31:19.894658 < "EPSV" 10:31:19.895024 ====> Passive DATA channel requested by client 10:31:19.895269 DATA sockfilt for passive data channel starting... 10:31:19.908000 DATA sockfilt for passive data channel started (pid 91549) 10:31:19.909594 DATA sockfilt for passive data channel listens on port 45835 10:31:19.910255 > "229 Entering Passive Mode (|||45835|)[LF]" 10:31:19.910605 Client has been notified that DATA conn will be accepted on port 45835 10:31:19.913720 Client connects to port 45835 10:31:19.914203 ====> Client established passive DATA connection on port 45835 10:31:19.915905 < "TYPE I" 10:31:19.917183 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:19.919958 < "SIZE verifiedserver" 10:31:19.920621 > "213 17[CR][LF]" 10:31:19.924297 < "RETR verifiedserver" 10:31:19.925019 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:19.926204 =====> Closing passive DATA connection... 10:31:19.926620 Server disconnects passive DATA connection 10:31:19.931163 Server disconnected passive DATA connection 10:31:19.931645 DATA sockfilt for passive data channel quits (pid 91549) 10:31:19.934671 DATA sockfilt for passive data channel quit (pid 91549) 10:31:19.935307 =====> Closed passive DATA connection 10:31:19.935905 > "226 File transfer complete[CR][LF]" 10:31:19.975543 < "QUIT" 10:31:19.976783 > "221 bye bye baby[CR][LF]" 10:31:19.982407 MAIN sockfilt said DISC 10:31:19.983371 ====> Client disconnected 10:31:19.984174 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:19.544714 ====> Client connect 10:31:19.549791 Received DATA (on stdin) 10:31:19.550105 > 160 bytes data, server => client 10:31:19.550234 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:19.550337 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:19.550441 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:19.551286 < 16 bytes data, client => server 10:31:19.551478 'USER anonymous\r\n' 10:31:19.552887 Received DATA (on stdin) 10:31:19.553081 > 33 bytes data, server => client 10:31:19.553175 '331 We are happy you popped in!\r\n' 10:31:19.554093 < 22 bytes data, client => serCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind296 ../src/curl -q --output log/1/curl296.out --include --trace-ascii log/1/trace296 --trace-time --ftp-method multicwd ftp://127.0.0.1:38733/first/second/third/296 > log/1/stdout296 2> log/1/stderr296 ver 10:31:19.554363 'PASS ftp@example.com\r\n' 10:31:19.558042 Received DATA (on stdin) 10:31:19.558240 > 30 bytes data, server => client 10:31:19.558338 '230 Welcome you silly person\r\n' 10:31:19.559200 < 5 bytes data, client => server 10:31:19.559453 'PWD\r\n' 10:31:19.562321 Received DATA (on stdin) 10:31:19.562636 > 30 bytes data, server => client 10:31:19.562808 '257 "/" is current directory\r\n' 10:31:19.563950 < 6 bytes data, client => server 10:31:19.564326 'EPSV\r\n' 10:31:19.581766 Received DATA (on stdin) 10:31:19.581972 > 38 bytes data, server => client 10:31:19.582089 '229 Entering Passive Mode (|||45835|)\n' 10:31:19.585368 < 8 bytes data, client => server 10:31:19.585563 'TYPE I\r\n' 10:31:19.587244 Received DATA (on stdin) 10:31:19.587524 > 33 bytes data, server => client 10:31:19.588490 '200 I modify TYPE as you wanted\r\n' 10:31:19.589450 < 21 bytes data, client => server 10:31:19.589666 'SIZE verifiedserver\r\n' 10:31:19.591850 Received DATA (on stdin) 10:31:19.592052 > 8 bytes data, server => client 10:31:19.592378 '213 17\r\n' 10:31:19.593563 < 21 bytes data, client => server 10:31:19.593848 'RETR verifiedserver\r\n' 10:31:19.597797 Received DATA (on stdin) 10:31:19.597999 > 29 bytes data, server => client 10:31:19.598100 '150 Binary junk (17 bytes).\r\n' 10:31:19.607169 Received DATA (on stdin) 10:31:19.607391 > 28 bytes data, server => client 10:31:19.607525 '226 File transfer complete\r\n' 10:31:19.643931 < 6 bytes data, client => server 10:31:19.644242 'QUIT\r\n' 10:31:19.646661 Received DATA (on stdin) 10:31:19.646800 > 18 bytes data, server => client 10:31:19.646990 '221 bye bye baby\r\n' 10:31:19.652624 ====> Client disconnect 10:31:19.653462 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:19.575950 Running IPv4 version 10:31:19.576687 Listening on port 45835 10:31:19.577171 Wrote pid 91549 to log/2/server/ftp_sockdata.pid 10:31:19.578212 Received PING (on stdin) 10:31:19.579361 Received PORT (on stdin) 10:31:19.583358 ====> Client connect 10:31:19.598633 Received DATA (on stdin) 10:31:19.598903 > 17 bytes data, server => client 10:31:19.599048 'WE ROOLZ: 79558\r\n' 10:31:19.599559 Received DISC (on stdin) 10:31:19.599912 ====> Client forcibly disconnected 10:31:19.602932 Received QUIT (on stdin) 10:31:19.603282 quits 10:31:19.604030 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 Give me an ACCT now REPLY PWD 530 No ACCT, go away Testnum 295 === End of file server.cmd === Start of file valgrind295 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind295 test 0296...[FTP CWD with --ftp-method multicwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind296 ../src/curl -q --output log/1/curl296.out --include --trace-ascii log/1/trace296 --trace-time --ftp-method multicwd ftp://127.0.0.1:38733/first/second/third/296 > log/1/stdout296 2> log/1/stderr296 296: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 296 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind296 ../src/curl -q --output log/1/curl296.out --include --trace-ascii log/1/trace296 --trace-time --ftp-method multicwd ftp://127.0.0.1:38733/first/second/third/296 > log/1/stdout296 2> log/1/stderr296 === End of file commands.log === Start of file ftp_server.log 10:31:19.913708 ====> Client connect 10:31:19.914931 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:19.918899 < "USER anonymous" 10:31:19.919462 > "331 We are happy you popped in![CR][LF]" 10:31:19.923188 < "PASS ftp@example.com" 10:31:19.924042 > "230 Welcome you silly person[CR][LF]" 10:31:19.930135 < "PWD" 10:31:19.931066 > "257 "/" is current directory[CR][LF]" 10:31:19.935503 < "EPSV" 10:31:19.935950 ====> Passive DATA channel requested by client 10:31:19.936247 DATA sockfilt for passive data channel starting... 10:31:19.953845 DATA sockfilt for passive data channel started (pid 91568) 10:31:19.957717 DATA sockfilt for passive data channel listens on port 40169 10:31:19.958523 > "229 Entering Passive Mode (|||40169|)[LF]" 10:31:19.959005 Client has been notified that DATA conn will be accepted on port 40169 10:31:19.967525 Client connects to port 40169 10:31:19.968041 ====> Client established passive DATA connection on port 40169 10:31:19.969447 < "TYPE I" 10:31:19.970518 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:19.974190 < "SIZE verifiedserver" 10:31:19.975496 > "213 17[CR][LF]" 10:31:19.978001 < "RETR verifiedserver" 10:31:19.978703 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:19.979688 =====> Closing passive DATA connection... 10:31:19.979995 Server disconnects passive DATA connection 10:31:19.982218 Server disconnected passive DATA connection 10:31:19.982727 DATA sockfilt for passive data channel quits (pid 91568) 10:31:19.991118 DATA sockfilt for passive data channel quit (pid 91568) 10:31:19.991511 =====> Closed passive DATA connection 10:31:19.994659 > "226 File transfer complete[CR][LF]" 10:31:20.024129 < "QUIT" 10:31:20.025680 > "221 bye bye baby[CR][LF]" 10:31:20.030459 MAIN sockfilt said DISC 10:31:20.030973 ====> Client disconnected 10:31:20.031632 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:19.583671 ====> Client connect 10:31:19.585595 Received DATA (on stdin) 10:31:19.585799 > 160 bytes data, server => client 10:31:19.585915 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:19.586025 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:19.586109 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:19.588368 < 16 bytes data, client => server 10:31:19.588626 'USER anonymous\r\n' 10:31:19.590145 Received DATA (on stdin) 10:31:19.590398 > 33 bytes data, server => client 10:31:19.590508 '331 We are happy you popped in!\r\n' 10:31:19.591321 < 22 bytes data, client => server 10:31:19.591595 'PASS ftp@example.com\r\n' 10:31:19.596304 Received DATA (on stdin) 10:31:19.596580 > 30 bytes data, server => client 10:31:19.596716 '230 Welcome you silly person\r\n' 10:31:19.597753 < 5 bytes data, client => server 10:31:19.597988 'PWD\r\n' 10:31:19.601778 Received DATA (on stdin) 10:31:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind298 ../src/curl -q --output log/5/curl298.out --include --trace-ascii log/5/trace298 --trace-time --ftp-method nocwd ftp://127.0.0.1:43393/first/second/th%69rd/298 > log/5/stdout298 2> log/5/stderr298 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind297 ../src/curl -q --output log/4/curl297.out --include --trace-ascii log/4/trace297 --trace-time --ftp-method singlecwd ftp://127.0.0.1:42635/first/second/third/297 > log/4/stdout297 2> log/4/stderr297 19.602093 > 30 bytes data, server => client 10:31:19.602226 '257 "/" is current directory\r\n' 10:31:19.604340 < 6 bytes data, client => server 10:31:19.604629 'EPSV\r\n' 10:31:19.630351 Received DATA (on stdin) 10:31:19.630622 > 38 bytes data, server => client 10:31:19.630907 '229 Entering Passive Mode (|||40169|)\n' 10:31:19.635787 < 8 bytes data, client => server 10:31:19.636047 'TYPE I\r\n' 10:31:19.641889 Received DATA (on stdin) 10:31:19.642179 > 33 bytes data, server => client 10:31:19.642395 '200 I modify TYPE as you wanted\r\n' 10:31:19.643568 < 21 bytes data, client => server 10:31:19.643803 'SIZE verifiedserver\r\n' 10:31:19.645527 Received DATA (on stdin) 10:31:19.645865 > 8 bytes data, server => client 10:31:19.646607 '213 17\r\n' 10:31:19.647453 < 21 bytes data, client => server 10:31:19.647718 'RETR verifiedserver\r\n' 10:31:19.651164 Received DATA (on stdin) 10:31:19.651361 > 29 bytes data, server => client 10:31:19.651487 '150 Binary junk (17 bytes).\r\n' 10:31:19.662585 Received DATA (on stdin) 10:31:19.662781 > 28 bytes data, server => client 10:31:19.664984 '226 File transfer complete\r\n' 10:31:19.693771 < 6 bytes data, client => server 10:31:19.693991 'QUIT\r\n' 10:31:19.696448 Received DATA (on stdin) 10:31:19.696647 > 18 bytes data, server => client 10:31:19.696772 '221 bye bye baby\r\n' 10:31:19.697303 ====> Client disconnect 10:31:19.706909 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:19.620983 Running IPv4 version 10:31:19.622749 Listening on port 40169 10:31:19.623597 Wrote pid 91568 to log/1/server/ftp_sockdata.pid 10:31:19.623951 Received PING (on stdin) 10:31:19.627273 Received PORT (on stdin) 10:31:19.637706 ====> Client connect 10:31:19.649988 Received DATA (on stdin) 10:31:19.650236 > 17 bytes data, server => client 10:31:19.650359 'WE ROOLZ: 79585\r\n' 10:31:19.651157 Received DISC (on stdin) 10:31:19.651375 ====> Client forcibly disconnected 10:31:19.659354 Received QUIT (on stdin) 10:31:19.659594 quits 10:31:19.660071 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 296 === End of file server.cmd === Start of file valgrind296 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind296 test 0298...[FTP CWD with --ftp-method nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind298 ../src/curl -q --output log/5/curl298.out --include --trace-ascii log/5/trace298 --trace-time --ftp-method nocwd ftp://127.0.0.1:43393/first/second/th%69rd/298 > log/5/stdout298 2> log/5/stderr298 298: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 298 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind298 ../src/curl -q --output log/5/curl298.out --include --trace-ascii log/5/trace298 --trace-time --ftp-method nocwd ftp://127.0.0.1:43393/first/second/th%69rd/298 > log/5/stdout298 2> log/5/stderr298 === End of file commands.log === Start of file ftp_server.log 10:31:20.019626 ====> Client connect 10:31:20.021203 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:20.024348 < "USER anonymous" 10:31:20.024768 > "331 We are happy you popped in![CR][LF]" 10:31:20.031677 < "PASS ftp@example.com" 10:31:20.032197 > "230 Welcome you silly person[CR][LF]" 10:31:20.042579 < "PWD" 10:31:20.043172 > "257 "/" is current directory[CR][LF]" 10:31:20.045187 < "EPSV" 10:31:20.045724 ====> Passive DATA channel requested by client 10:31:20.046029 DATA sockfilt for passive data channel starting... 10:31:20.076936 DATA sockfilt for passive data channel started (pid 91590) 10:31:20.078663 DATA sockfilt for passive data channel listens on port 38125 10:31:20.079310 > "229 Entering Passive Mode (|||38125|)[LF]" 10:31:20.079657 Client has been notified that DATA conn will be accepted on port 38125 10:31:20.087931 Client connects to port 38125 10:31:20.088408 ====> Client established passive DATA connection on port 38125 10:31:20.089290 < "TYPE I" 10:31:20.089838 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:20.099196 < "SIZE verifiedserver" 10:31:20.099700 > "213 17[CR][LF]" 10:31:20.106198 < "RETR verifiedserver" 10:31:20.106723 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:20.107445 =====> Closing passive DATA connection... 10:31:20.107663 Server disconnects passive DATA connection 10:31:20.108713 Server disconnected passive DATA connection 10:31:20.109049 DATA sockfilt for passive data channel quits (pid 91590) 10:31:20.111513 DATA sockfilt for passive data channel quit (pid 91590) 10:31:20.111867 =====> Closed passive DATA connection 10:31:20.113043 > "226 File transfer complete[CR][LF]" 10:31:20.151937 < "QUIT" 10:31:20.152596 > "221 bye bye baby[CR][LF]" 10:31:20.154559 MAIN sockfilt said DISC 10:31:20.155590 ====> Client disconnected 10:31:20.156336 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:19.687464 ====> Client connect 10:31:19.692845 Received DATA (on stdin) 10:31:19.693053 > 160 bytes data, server => client 10:31:19.693204 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:19.693315 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:19.693420 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:19.694096 < 16 bytes data, client => server 10:31:19.694230 'USER anonymous\r\n' 10:31:19.696025 Received DATA (on stdin) 10:31:19.696347 > 33 bytes data, server => client 10:31:19.696525 '331 We are happy you popped in!\r\n' 10:31:19.700847 < 22 bytes data, client => server 10:31:19.701052 'PASS ftp@example.com\r\n' 10:31:19.705202 Received DATA (on stdin) 10:31:19.705444 > 30 bytes data, server => client 10:31:19.705596 '230 Welcome you silly person\r\n' 10:31:19.706392 < 5 bytes data, client => server 10:31:19.706602 'PWD\r\n' 10:31:19.713892 Received DATA (on stdin) 10:31:19.714130 > 30 bytes data, server => client 10:31:19.714273 '257 "/" is current directory\r\n' 10:31:19.715091 < 6 bytes data, client => server 10:31:19.715340 'EPSV\r\n' 10:31:19.750017 Received DATA (on stdin) 10:31:19.750259 > 38 bytes data, server => client 10:31:19.750375 '229 Entering Passive Mode (|||38125|)\n' 10:31:19.756341 < 8 bytes data, client => server 10:31:19.756609 'TYPE I\r\n' 10:31:19.764285 Received DATA (on stdin) 10:31:19.764611 > 33 bytes data, server => client 10:31:19.764762 '200 I modify TYPE as you wanted\r\n' 10:31:19.766233 < 21 bytes data, client => server 10:31:19.766470 'SIZE verifiedserver\r\n' 10:31:19.770759 Received DATA (on stdin) 10:31:19.770953 > 8 bytes data, server => client 10:31:19.771050 '213 17\r\n' 10:31:19.775769 < 21 bytes data, client => server 10:31:19.776040 'RETR verifiedserver\r\n' 10:31:19.778701 Received DATA (on stdin) 10:31:19.778880 > 29 bytes data, server => client 10:31:19.778986 '150 Binary junk (17 bytes).\r\n' 10:31:19.782961 Received DATA (on stdin) 10:31:19.783200 > 28 bytes data, server => client 10:31:19.783412 '226 File transfer complete\r\n' 10:31:19.821331 < 6 bytes data, client => server 10:31:19.821583 'QUIT\r\n' 10:31:19.823798 Received DATA (on stdin) 10:31:19.824007 > 18 bytes data, server => client 10:31:19.824113 '221 bye bye baby\r\n' 10:31:19.824868 ====> Client disconnect 10:31:19.825637 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:20.734501 Running IPv4 version 10:31:20.735265 Listening on port 38125 10:31:20.735852 Wrote pid 91590 to log/5/server/ftp_sockdata.pid 10:31:20.743089 Received PING (on stdin) 10:31:20.748250 Received PORT (on stdin) 10:31:20.752705 ====> Client connect 10:31:20.777882 Received DATA (on stdin) 10:31:20.778095 > 17 bytes data, server => client 10:31:20.778189 'WE ROOLZ: 79602\r\n' 10:31:20.778598 Received DISC (on stdin) 10:31:20.778778 ====> Client forcibly disconnected 10:31:20.780580 Received QUIT (on stdin) 10:31:20.780814 quits 10:31:20.781293 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 298 === End of file server.cmd === Start of file valgrind298 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind298 test 0297...[FTP CWD with --ftp-method singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind297 ../src/curl -q --output log/4/curl297.out --include --trace-ascii log/4/trace297 --trace-time --ftp-method singlecwd ftp://127.0.0.1:42635/first/second/third/297 > log/4/stdout297 2> log/4/stderr297 297: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 297 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind297 ../src/curl -q --output log/4/curl297.out --include --trace-ascii log/4/trace297 --trace-time --ftp-method singlecwd ftp://127.0.0.1:42635/first/second/third/297 > log/4/stdout297 2> log/4/stderr297 === End of file commands.log === Start of file ftp_server.log 10:31:19.992326 ====> Client connect 10:31:19.993826 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:20.007579 < "USER anonymous" 10:31:20.008180 > "331 We are happy you popped in![CR][LF]" 10:31:20.018234 < "PASS ftp@example.com" 10:31:20.018988 > "230 Welcome you silly person[CR][LF]" 10:31:20.033629 < "PWD" 10:31:20.034399 > "257 "/" is current directory[CR][LF]" 10:31:20.073101 < "EPSV" 10:31:20.073620 ====> Passive DATA channel requested by client 10:31:20.073954 DATA sockfilt for passive data channel starting... 10:31:20.100284 DATA sockfilt for passive data channel started (pid 91597) 10:31:20.101254 DATA sockfilt for passive data channel listens on port 40607 10:31:20.101855 > "229 Entering Passive Mode (|||40607|)[LF]" 10:31:20.102128 Client has been notified that DATA conn will be accepted on port 40607 10:31:20.109348 Client connects to port 40607 10:31:20.109921 ====> Client established passive DATA connection on port 40607 10:31:20.110806 < "TYPE I" 10:31:20.111219 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:20.116669 < "SIZE verifiedserver" 10:31:20.117221 > "213 17[CR][LF]" 10:31:20.121867 < "RETR verifiedserver" 10:31:20.122355 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:20.123075 =====> Closing passive DATA connection... 10:31:20.123365 Server disconnects passive DATA connection 10:31:20.123929 Fancy that; client wants to DISC, too 10:31:20.124210 Server disconnected passive DATA connection 10:31:20.124394 DATA sockfilt for passive data channel quits (pid 91597) 10:31:20.126389 DATA sockfilt for passive data channel quit (pid 91597) 10:31:20.126681 =====> Closed passive DATA connection 10:31:20.126987 > "226 File transfer complete[CR][LF]" 10:31:20.172214 < "QUIT" 10:31:20.172860 > "221 bye bye baby[CR][LF]" 10:31:20.177838 MAIN sockfilt said DISC 10:31:20.178497 ====> Client disconnected 10:31:20.179375 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:20.661122 ====> Client connect 10:31:20.664454 Received DATA (on stdin) 10:31:20.664726 > 160 bytes data, server => client 10:31:20.664849 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:20.664934 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:20.665015 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:20.675271 < 16 bytes data, client => server 10:31:20.675575 'USER anonymous\r\n' 10:31:20.682178 Received DATA (on stdin) 10:31:20.683314 > 33 bytes data, server => client 10:31:20.683472 '331 We are happy you popped in!\r\n' 10:31:20.687790 < 22 bytes data, client => server 10:31:20.688017 'PASS ftp@example.com\r\n' 10:31:20.692276 Received DATA (on stdin) 10:31:20.692643 > 30 bytes data, server => client 10:31:20.692841 '230 Welcome you silly person\r\n' 10:31:20.700415 < 5 bytes data, client => server 10:31:20.700692 'PWD\r\n' 10:31:20.716275 Received DATA (on stdin) 10:31:20.716580 > 30 bytes data, server => client 10:31:20.716723 '257 "/" is current directory\r\n' 10:31:20.734036 < 6 bytes data, client => server 10:31:20.734327 'EPSV\r\n' 10:31:20.773953 Received DATA (on stdin) 10:31:20.774221 > 38 bytes data, server => client 10:31:20.774317 '229 Entering Passive Mode (|||40607|)\n' 10:31:20.775896 < 8 bytes data, client => server 10:31:20.776103 'TYPE I\r\n' 10:31:20.782994 Received DATA (on stdin) 10:31:20.784493 > 33 bytes data, server => client 10:31:20.784627 '200 I modify TYPE as you wanted\r\n' 10:31:20.786318 < 21 bytes data, client => server 10:31:20.786526 'SIZE verifiedserver\r\n' 10:31:20.788524 Received DATA (on stdin) 10:31:20.788772 > 8 bytes dataCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind299 ../src/curl -q --output log/3/curl299.out --include --trace-ascii log/3/trace299 --trace-time -x http://127.0.0.1:36933 -u michal:aybabtu ftp://host.com/we/want/299 > log/3/stdout299 2> log/3/stderr299 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind315 ../src/curl -q --output log/8/curl315.out --include --trace-ascii log/8/trace315 --trace-time http://127.0.0.1:36007/315 --compressed > log/8/stdout315 2> log/8/stderr315 , server => client 10:31:20.788853 '213 17\r\n' 10:31:20.791868 < 21 bytes data, client => server 10:31:20.792046 'RETR verifiedserver\r\n' 10:31:20.793057 Received DATA (on stdin) 10:31:20.793255 > 29 bytes data, server => client 10:31:20.793354 '150 Binary junk (17 bytes).\r\n' 10:31:20.797710 Received DATA (on stdin) 10:31:20.797892 > 28 bytes data, server => client 10:31:20.797991 '226 File transfer complete\r\n' 10:31:20.841174 < 6 bytes data, client => server 10:31:20.841381 'QUIT\r\n' 10:31:20.845642 Received DATA (on stdin) 10:31:20.845874 > 18 bytes data, server => client 10:31:20.845973 '221 bye bye baby\r\n' 10:31:20.846629 ====> Client disconnect 10:31:20.849202 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:20.768003 Running IPv4 version 10:31:20.768813 Listening on port 40607 10:31:20.769309 Wrote pid 91597 to log/4/server/ftp_sockdata.pid 10:31:20.770280 Received PING (on stdin) 10:31:20.771344 Received PORT (on stdin) 10:31:20.779391 ====> Client connect 10:31:20.793434 Received DATA (on stdin) 10:31:20.793593 > 17 bytes data, server => client 10:31:20.793688 'WE ROOLZ: 79516\r\n' 10:31:20.794287 ====> Client disconnect 10:31:20.794545 Received DISC (on stdin) 10:31:20.794685 Crikey! Client also wants to disconnect 10:31:20.794863 Received ACKD (on stdin) 10:31:20.795348 Received QUIT (on stdin) 10:31:20.795538 quits 10:31:20.796070 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 297 === End of file server.cmd === Start of file valgrind297 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind297 test 0299...[FTP over HTTP proxy with user:pass not in url] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind299 ../src/curl -q --output log/3/curl299.out --include --trace-ascii log/3/trace299 --trace-time -x http://127.0.0.1:36933 -u michal:aybabtu ftp://host.com/we/want/299 > log/3/stdout299 2> log/3/stderr299 299: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 299 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind299 ../src/curl -q --output log/3/curl299.out --include --trace-ascii log/3/trace299 --trace-time -x http://127.0.0.1:36933 -u michal:aybabtu ftp://host.com/we/want/299 > log/3/stdout299 2> log/3/stderr299 === End of file commands.log === Start of file http_server.log 10:31:19.906638 ====> Client connect 10:31:19.906976 accept_connection 3 returned 4 10:31:19.907176 accept_connection 3 returned 0 10:31:19.907319 Read 93 bytes 10:31:19.907413 Process 93 bytes request 10:31:19.907498 Got request: GET /verifiedserver HTTP/1.1 10:31:19.907572 Are-we-friendly question received 10:31:19.907822 Wrote request (93 bytes) input to log/3/server.input 10:31:19.908034 Identifying ourselves as friends 10:31:19.909062 Response sent (56 bytes) and written to log/3/server.response 10:31:19.909268 special request received, no persistency 10:31:19.909362 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45580 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 299 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind299 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind299 test 0320 SKIPPED: no gnutls-serv (with SRP support) test 0321 SKIPPED: no gnutls-serv (with SRP support) test 0322 SKIPPED: no gnutls-serv (with SRP support) test 0315...[HTTP GET brotli compressed content with broken header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind315 ../src/curl -q --output log/8/curl315.out --include --trace-ascii log/8/trace315 --trace-time http://127.0.0.1:36007/315 --compressed > log/8/stdout315 2> log/8/stderr315 315: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 315 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind315 ../src/curl -q --output log/8/curl315.out --include --trace-ascii log/8/trace315 --trace-time http://127.0.0.1:36007/315 --compressed > log/8/stdout315 2> log/8/stderr315 === End of file commands.log === Start of file http_serverCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind314 ../src/curl -q --output log/7/curl314.out --include --trace-ascii log/7/trace314 --trace-time http://127.0.0.1:40129/314 --compressed > log/7/stdout314 2> log/7/stderr314 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind319 ../src/curl -q --output log/5/curl319.out --trace-ascii log/5/trace319 --trace-time http://127.0.0.1:41733/319 --raw > log/5/stdout319 2> log/5/stderr319 .log 10:31:20.216632 ====> Client connect 10:31:20.217091 accept_connection 3 returned 4 10:31:20.217337 accept_connection 3 returned 0 10:31:20.217491 Read 93 bytes 10:31:20.217589 Process 93 bytes request 10:31:20.217689 Got request: GET /verifiedserver HTTP/1.1 10:31:20.217770 Are-we-friendly question received 10:31:20.218042 Wrote request (93 bytes) input to log/8/server.input 10:31:20.218292 Identifying ourselves as friends 10:31:20.219322 Response sent (56 bytes) and written to log/8/server.response 10:31:20.219506 special request received, no persistency 10:31:20.219590 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 40934 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 315 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind315 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind315 test 0314...[HTTP GET brotli compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind314 ../src/curl -q --output log/7/curl314.out --include --trace-ascii log/7/trace314 --trace-time http://127.0.0.1:40129/314 --compressed > log/7/stdout314 2> log/7/stderr314 314: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 314 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind314 ../src/curl -q --output log/7/curl314.out --include --trace-ascii log/7/trace314 --trace-time http://127.0.0.1:40129/314 --compressed > log/7/stdout314 2> log/7/stderr314 === End of file commands.log === Start of file http_server.log 10:31:20.233108 ====> Client connect 10:31:20.233484 accept_connection 3 returned 4 10:31:20.233713 accept_connection 3 returned 0 10:31:20.233886 Read 93 bytes 10:31:20.233986 Process 93 bytes request 10:31:20.234080 Got request: GET /verifiedserver HTTP/1.1 10:31:20.234148 Are-we-friendly question received 10:31:20.234435 Wrote request (93 bytes) input to log/7/server.input 10:31:20.234642 Identifying ourselves as friends 10:31:20.235463 Response sent (56 bytes) and written to log/7/server.response 10:31:20.235630 special request received, no persistency 10:31:20.235698 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 58662 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 314 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind314 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind314 test 0319...[HTTP GET gobbledigook transfer-encoded data in raw mode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind319 ../src/curl -q --output log/5/curl319.out --trace-ascii log/5/trace319 --trace-time http://127.0.0.1:41733/319 --raw > log/5/stdout319 2> log/5/stderr319 319: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 319 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind319 ../src/curl -q --output log/5/curl319.out --trace-ascii log/5/trace319 --trace-time http://127.0.0.1:41733/319 --raw > log/5/stdout319 2> log/5/stderr319 === End of file commands.log === Start of file http_server.log 10:31:21.769759 ====> Client connect 10:31:21.770134 accept_connection 3 returned 4 10:31:21.770364 accept_connection 3 returned 0 10:31:21.770526 Read 93 bytes 10:31:21.770637 Process 93 bytes request 10:31:21.770765 Got request: GET /verifiedserver HTTP/1.1 10:31:21.770860 Are-we-friendly question received 10:31:21.771145 Wrote request (93 bytes) input to log/5/server.input 10:31:21.771376 Identifying ourselves as friends 10:31:21.772362 Response sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind317 ../src/curl -q --output log/2/curl317.out --include --trace-ascii log/2/trace317 --trace-time http://first.host.it.is/we/want/that/page/317 -x 127.0.0.1:43789 -H "Authorization: s3cr3t" --proxy-user testing:this --location > log/2/stdout317 2> log/2/stderr317 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind316 ../src/curl -q --output log/6/curl316.out --include --trace-ascii log/6/trace316 --trace-time http://127.0.0.1:33363/316 --compressed > log/6/stdout316 2> log/6/stderr316 ent (56 bytes) and written to log/5/server.response 10:31:21.772564 special request received, no persistency 10:31:21.772656 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36010 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 319 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind319 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind319 test 0317...[HTTP with custom Authorization: and redirect to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind317 ../src/curl -q --output log/2/curl317.out --include --trace-ascii log/2/trace317 --trace-time http://first.host.it.is/we/want/that/page/317 -x 127.0.0.1:43789 -H "Authorization: s3cr3t" --proxy-user testing:this --location > log/2/stdout317 2> log/2/stderr317 317: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 317 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind317 ../src/curl -q --output log/2/curl317.out --include --trace-ascii log/2/trace317 --trace-time http://first.host.it.is/we/want/that/page/317 -x 127.0.0.1:43789 -H "Authorization: s3cr3t" --proxy-user testing:this --location > log/2/stdout317 2> log/2/stderr317 === End of file commands.log === Start of file http_server.log 10:31:20.604485 ====> Client connect 10:31:20.604776 accept_connection 3 returned 4 10:31:20.604959 accept_connection 3 returned 0 10:31:20.605126 Read 93 bytes 10:31:20.605226 Process 93 bytes request 10:31:20.605324 Got request: GET /verifiedserver HTTP/1.1 10:31:20.605400 Are-we-friendly question received 10:31:20.605656 Wrote request (93 bytes) input to log/2/server.input 10:31:20.605875 Identifying ourselves as friends 10:31:20.606660 Response sent (56 bytes) and written to log/2/server.response 10:31:20.606835 special request received, no persistency 10:31:20.606912 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 53752 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 317 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind317 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind317 test 0316...[HTTP GET brotli compressed content of size more than CURL_MAX_WRITE_SIZE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind316 ../src/curl -q --output log/6/curl316.out --include --trace-ascii log/6/trace316 --trace-time http://127.0.0.1:33363/316 --compressed > log/6/stdout316 2> log/6/stderr316 316: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 316 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind316 ../src/curl -q --output log/6/curl316.out --include --trace-ascii log/6/trace316 --trace-time http://127.0.0.1:33363/316 --compressed > log/6/stdout316 2> log/6/stderr316 === End of file commands.log === Start of file http_server.log 10:31:20.483298 ====> Client connect 10:31:20.483612 accept_connection 3 returned 4 10:31:20.483782 accept_connection 3 returned 0 10:31:20.483914 Read 93 bytes 10:31:20.483999 Process 93 bytes request 10:31:20.484092 Got request: GET /verifiedserver HTTP/1.1 10:31:20.484248 Are-we-friendly question received 10:31:20.484509 Wrote request (93 bytes) input to log/6/server.input 10:31:20.484699 Identifying ourselves as friends 10:31:20.485408 Response sent (56 bytes) and written to log/6/server.response 10:31:20.485550 special request received, no persistency 10:31:20.485623 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.logCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind318 ../src/curl -q --output log/1/curl318.out --include --trace-ascii log/1/trace318 --trace-time http://first.host.it.is/we/want/that/page/318 -x 127.0.0.1:36129 -H "Authorization: s3cr3t" --proxy-user testing:this --location-trusted > log/1/stdout318 2> log/1/stderr318 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind326 ../src/curl -q --output log/4/curl326.out --trace-ascii log/4/trace326 --trace-time http://127.0.0.1:36757/326 --raw > log/4/stdout326 2> log/4/stderr326 * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 34564 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 316 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind316 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind316 test 0318...[HTTP with custom Authorization: and redirect to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind318 ../src/curl -q --output log/1/curl318.out --include --trace-ascii log/1/trace318 --trace-time http://first.host.it.is/we/want/that/page/318 -x 127.0.0.1:36129 -H "Authorization: s3cr3t" --proxy-user testing:this --location-trusted > log/1/stdout318 2> log/1/stderr318 318: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 318 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind318 ../src/curl -q --output log/1/curl318.out --include --trace-ascii log/1/trace318 --trace-time http://first.host.it.is/we/want/that/page/318 -x 127.0.0.1:36129 -H "Authorization: s3cr3t" --proxy-user testing:this --location-trusted > log/1/stdout318 2> log/1/stderr318 === End of file commands.log === Start of file http_server.log 10:31:20.683402 ====> Client connect 10:31:20.683752 accept_connection 3 returned 4 10:31:20.683953 accept_connection 3 returned 0 10:31:20.684083 Read 93 bytes 10:31:20.684297 Process 93 bytes request 10:31:20.684393 Got request: GET /verifiedserver HTTP/1.1 10:31:20.684467 Are-we-friendly question received 10:31:20.684724 Wrote request (93 bytes) input to log/1/server.input 10:31:20.684961 Identifying ourselves as friends 10:31:20.685805 Response sent (56 bytes) and written to log/1/server.response 10:31:20.686005 special request received, no persistency 10:31:20.686090 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 39374 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 318 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind318 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind318 test 0326...[HTTP GET chunked data in raw mode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind326 ../src/curl -q --output log/4/curl326.out --trace-ascii log/4/trace326 --trace-time http://127.0.0.1:36757/326 --raw > log/4/stdout326 2> log/4/stderr326 326: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 326 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind326 ../src/curl -q --output log/4/curl326.out --trace-ascii log/4/trace326 --trace-time http://127.0.0.1:36757/326 --raw > log/4/stdout326 2> log/4/stderr326 === End of file commands.log === Start of file http_server.log 10:31:21.839297 ====> Client connect 10:31:21.839702 accept_connection 3 returned 4 10:31:21.839910 accept_connection 3 returned 0 10:31:21.840063 Read 93 bytes 10:31:21.840289 Process 93 bytes request 10:31:21.840398 Got request: GET /verifiedserver HTTP/1.1 10:31:21.840481 Are-we-friendly question received 10:31:21.840712 Wrote request (93 bytes) input to log/4/server.input 10:31:21.840900 Identifying ourselves as friends 10:31:21.841665 Response sent (56 bytes) and written to log/4/server.response 10:31:21.841850 special request received, no persistency 10:31:21.841931 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33042 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off log/3/stdout327 2> log/3/stderr327 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind328 ../src/curl -q --output log/8/curl328.out --include --trace-ascii log/8/trace328 --trace-time http://127.0.0.1:36007/hello/328 --compressed > log/8/stdout328 2> log/8/stderr328 HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 326 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind326 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind326 test 0327...[HTTP with cookiejar without cookies left] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind327 ../src/curl -q --output log/3/curl327.out --include --trace-ascii log/3/trace327 --trace-time http://127.0.0.1:36933/we/want/327 -b none -c log/3/cookies327 http://127.0.0.1:36933/we/want/3270002 > log/3/stdout327 2> log/3/stderr327 327: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 327 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind327 ../src/curl -q --output log/3/curl327.out --include --trace-ascii log/3/trace327 --trace-time http://127.0.0.1:36933/we/want/327 -b none -c log/3/cookies327 http://127.0.0.1:36933/we/want/3270002 > log/3/stdout327 2> log/3/stderr327 === End of file commands.log === Start of file http_server.log 10:31:20.938482 ====> Client connect 10:31:20.938874 accept_connection 3 returned 4 10:31:20.939132 accept_connection 3 returned 0 10:31:20.940327 Read 93 bytes 10:31:20.940649 Process 93 bytes request 10:31:20.940807 Got request: GET /verifiedserver HTTP/1.1 10:31:20.940920 Are-we-friendly question received 10:31:20.941253 Wrote request (93 bytes) input to log/3/server.input 10:31:20.941544 Identifying ourselves as friends 10:31:20.942463 Response sent (56 bytes) and written to log/3/server.response 10:31:20.942693 special request received, no persistency 10:31:20.942816 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45592 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 327 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind327 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind327 test 0328...[HTTP with "Content-Encoding: none] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind328 ../src/curl -q --output log/8/curl328.out --include --trace-ascii log/8/trace328 --trace-time http://127.0.0.1:36007/hello/328 --compressed > log/8/stdout328 2> log/8/stderr328 328: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 328 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind328 ../src/curl -q --output log/8/curl328.out --include --trace-ascii log/8/trace328 --trace-time http://127.0.0.1:36007/hello/328 --compressed > log/8/stdout328 2> log/8/stderr328 === End of file commands.log === Start of file http_server.log 10:31:21.209564 ====> Client connect 10:31:21.210102 accept_connection 3 returned 4 10:31:21.210335 accept_connection 3 returned 0 10:31:21.210510 Read 93 bytes 10:31:21.210788 Process 93 bytes request 10:31:21.210980 Got request: GET /verifiedserver HTTP/1.1 10:31:21.211092 Are-we-friendly question received 10:31:21.211420 Wrote request (93 bytes) input to log/8/server.input 10:31:21.211653 Identifying ourselves as friends 10:31:21.215124 Response sent (56 bytes) and written to log/8/server.response 10:31:21.215376 special request received, no persistency 10:31:21.215480 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 40940 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 328 === End of file server.cmd === Start of file server.response HTTP/1.1 200CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind333 ../src/curl -q --output log/1/curl333.out --include --trace-ascii log/1/trace333 --trace-time --no-proxy "hey" http://127.0.0.1:47/333 > log/1/stdout333 2> log/1/stderr333 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind329 ../src/curl -q --output log/7/curl329.out --include --trace-ascii log/7/trace329 --trace-time http://127.0.0.1:40129/we/want/329 -b log/7/jar329.txt -b log/7/jar329-2.txt -H "Host: host.foo.com" http://127.0.0.1:40129/we/want/3290002 > log/7/stdout329 2> log/7/stderr329 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind328 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind328 test 0333...[Try a non-boolean command line option with --no-] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind333 ../src/curl -q --output log/1/curl333.out --include --trace-ascii log/1/trace333 --trace-time --no-proxy "hey" http://127.0.0.1:47/333 > log/1/stdout333 2> log/1/stderr333 curl returned 1, when expecting 2 333: exit FAILED == Contents of files in the log/1/ dir after test 333 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind333 ../src/curl -q --output log/1/curl333.out --include --trace-ascii log/1/trace333 --trace-time --no-proxy "hey" http://127.0.0.1:47/333 > log/1/stdout333 2> log/1/stderr333 === End of file commands.log === Start of file server.cmd Testnum 333 === End of file server.cmd === Start of file valgrind333 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind333 setenv TZ = GMT test 0329...[HTTP cookie with Max-Age=0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind329 ../src/curl -q --output log/7/curl329.out --include --trace-ascii log/7/trace329 --trace-time http://127.0.0.1:40129/we/want/329 -b log/7/jar329.txt -b log/7/jar329-2.txt -H "Host: host.foo.com" http://127.0.0.1:40129/we/want/3290002 > log/7/stdout329 2> log/7/stderr329 329: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 329 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind329 ../src/curl -q --output log/7/curl329.out --include --trace-ascii log/7/trace329 --trace-time http://127.0.0.1:40129/we/want/329 -b log/7/jar329.txt -b log/7/jar329-2.txt -H "Host: host.foo.com" http://127.0.0.1:40129/we/want/3290002 > log/7/stdout329 2> log/7/stderr329 === End of file commands.log === Start of file http_server.log 10:31:21.525005 ====> Client connect 10:31:21.525460 accept_connection 3 returned 4 10:31:21.525787 accept_connection 3 returned 0 10:31:21.526052 Read 93 bytes 10:31:21.526227 Process 93 bytes request 10:31:21.526381 Got request: GET /verifiedserver HTTP/1.1 10:31:21.526515 Are-we-friendly question received 10:31:21.526872 Wrote request (93 bytes) input to log/7/server.input 10:31:21.527201 Identifying ourselves as friends 10:31:21.529191 Response sent (56 bytes) and written to log/7/server.response 10:31:21.529417 special request received, no persistency 10:31:21.529567 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 58670 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file jar329.txt .host.foo.com TRUE /we/want/ FALSE 22147483647 test no .host.foo.com TRUE /we/want/ FALSE 22147483647 tester yes === End of file jar329.txt === Start of file server.cmd Testnum 329 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind329 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. SoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind331 ../src/curl -q --output log/2/curl331.out --include --trace-ascii log/2/trace331 --trace-time -x http://127.0.0.1:43789 http://moo/we/want/331 -b none http://moo/we/want/3310002 > log/2/stdout331 2> log/2/stderr331 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind330 ../src/curl -q --output log/5/curl330.out --include --trace-ascii log/5/trace330 --trace-time http://first.host.it.is/we/want/that/page/330 -x 127.0.0.1:41733 -H "Cookie: test=yes" --location > log/5/stdout330 2> log/5/stderr330 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind334 ../src/curl -q --output log/4/curl334.out --include --trace-ascii log/4/trace334 --trace-time http://127.0.0.1:36757/want/334 > log/4/stdout334 2> log/4/stderr334 rry. === End of file valgrind329 test 0331...[HTTP with cookie using host name 'moo'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind331 ../src/curl -q --output log/2/curl331.out --include --trace-ascii log/2/trace331 --trace-time -x http://127.0.0.1:43789 http://moo/we/want/331 -b none http://moo/we/want/3310002 > log/2/stdout331 2> log/2/stderr331 331: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 331 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind331 ../src/curl -q --output log/2/curl331.out --include --trace-ascii log/2/trace331 --trace-time -x http://127.0.0.1:43789 http://moo/we/want/331 -b none http://moo/we/want/3310002 > log/2/stdout331 2> log/2/stderr331 === End of file commands.log === Start of file http_server.log 10:31:21.720045 ====> Client connect 10:31:21.721066 accept_connection 3 returned 4 10:31:21.721334 accept_connection 3 returned 0 10:31:21.721486 Read 93 bytes 10:31:21.721583 Process 93 bytes request 10:31:21.721669 Got request: GET /verifiedserver HTTP/1.1 10:31:21.721741 Are-we-friendly question received 10:31:21.721989 Wrote request (93 bytes) input to log/2/server.input 10:31:21.722175 Identifying ourselves as friends 10:31:21.723005 Response sent (56 bytes) and written to log/2/server.response 10:31:21.723213 special request received, no persistency 10:31:21.723307 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 53756 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 331 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind331 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind331 test 0330...[HTTP with custom Cookie: and redirect to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind330 ../src/curl -q --output log/5/curl330.out --include --trace-ascii log/5/trace330 --trace-time http://first.host.it.is/we/want/that/page/330 -x 127.0.0.1:41733 -H "Cookie: test=yes" --location > log/5/stdout330 2> log/5/stderr330 330: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 330 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind330 ../src/curl -q --output log/5/curl330.out --include --trace-ascii log/5/trace330 --trace-time http://first.host.it.is/we/want/that/page/330 -x 127.0.0.1:41733 -H "Cookie: test=yes" --location > log/5/stdout330 2> log/5/stderr330 === End of file commands.log === Start of file http_server.log 10:31:22.690089 ====> Client connect 10:31:22.690401 accept_connection 3 returned 4 10:31:22.690583 accept_connection 3 returned 0 10:31:22.690727 Read 93 bytes 10:31:22.690830 Process 93 bytes request 10:31:22.690930 Got request: GET /verifiedserver HTTP/1.1 10:31:22.691014 Are-we-friendly question received 10:31:22.691283 Wrote request (93 bytes) input to log/5/server.input 10:31:22.691522 Identifying ourselves as friends 10:31:22.692544 Response sent (56 bytes) and written to log/5/server.response 10:31:22.692741 special request received, no persistency 10:31:22.692828 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36014 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 330 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind330 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind330 test 0334...[HTTP 204 No content with chunked header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --numCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind335 ../src/curl -q --output log/3/curl335.out --include --trace-ascii log/3/trace335 --trace-time http://digest:a-lot@data.from.server.requiring.digest.hohoho.com/335 --proxy http://foo:bar@127.0.0.1:36933 --proxy-digest --digest > log/3/stdout335 2> log/3/stderr335 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind336 ../src/curl -q --output log/8/curl336.out --include --trace-ascii log/8/trace336 --trace-time ftp://127.0.0.1:42977/336 --range 3-6 > log/8/stdout336 2> log/8/stderr336 -callers=16 --log-file=log/4/valgrind334 ../src/curl -q --output log/4/curl334.out --include --trace-ascii log/4/trace334 --trace-time http://127.0.0.1:36757/want/334 > log/4/stdout334 2> log/4/stderr334 334: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 334 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind334 ../src/curl -q --output log/4/curl334.out --include --trace-ascii log/4/trace334 --trace-time http://127.0.0.1:36757/want/334 > log/4/stdout334 2> log/4/stderr334 === End of file commands.log === Start of file http_server.log 10:31:22.900631 ====> Client connect 10:31:22.901015 accept_connection 3 returned 4 10:31:22.901202 accept_connection 3 returned 0 10:31:22.901356 Read 93 bytes 10:31:22.901452 Process 93 bytes request 10:31:22.901541 Got request: GET /verifiedserver HTTP/1.1 10:31:22.901616 Are-we-friendly question received 10:31:22.901874 Wrote request (93 bytes) input to log/4/server.input 10:31:22.902059 Identifying ourselves as friends 10:31:22.902741 Response sent (56 bytes) and written to log/4/server.response 10:31:22.902882 special request received, no persistency 10:31:22.902945 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33054 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 334 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind334 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind334 test 0335...[HTTP with proxy Digest and site Digest with creds in URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind335 ../src/curl -q --output log/3/curl335.out --include --trace-ascii log/3/trace335 --trace-time http://digest:a-lot@data.from.server.requiring.digest.hohoho.com/335 --proxy http://foo:bar@127.0.0.1:36933 --proxy-digest --digest > log/3/stdout335 2> log/3/stderr335 335: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 335 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind335 ../src/curl -q --output log/3/curl335.out --include --trace-ascii log/3/trace335 --trace-time http://digest:a-lot@data.from.server.requiring.digest.hohoho.com/335 --proxy http://foo:bar@127.0.0.1:36933 --proxy-digest --digest > log/3/stdout335 2> log/3/stderr335 === End of file commands.log === Start of file http_server.log 10:31:22.058250 ====> Client connect 10:31:22.058668 accept_connection 3 returned 4 10:31:22.058914 accept_connection 3 returned 0 10:31:22.059108 Read 93 bytes 10:31:22.059222 Process 93 bytes request 10:31:22.059334 Got request: GET /verifiedserver HTTP/1.1 10:31:22.059432 Are-we-friendly question received 10:31:22.059727 Wrote request (93 bytes) input to log/3/server.input 10:31:22.060001 Identifying ourselves as friends 10:31:22.061017 Response sent (56 bytes) and written to log/3/server.response 10:31:22.061159 special request received, no persistency 10:31:22.061236 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45600 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 335 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind335 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind335 test 0336...[FTP range download when SIZE doesn't work] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind336 ../src/curl -q --output log/8/curl336.out --include --trace-ascii log/8/trace336 --trace-time ftp://127.0.0.1:42977/336 --range 3-6 > log/8/stdout336 2> log/8/stderr336 336: protocol FAILED! There was no content aCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind332 ../src/curl -q --output log/6/curl332.out --include --trace-ascii log/6/trace332 --trace-time tftp://127.0.0.1:47713//332 --tftp-blksize 400 > log/6/stdout332 2> log/6/stderr332 t all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 336 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind336 ../src/curl -q --output log/8/curl336.out --include --trace-ascii log/8/trace336 --trace-time ftp://127.0.0.1:42977/336 --range 3-6 > log/8/stdout336 2> log/8/stderr336 === End of file commands.log === Start of file ftp_server.log 10:31:22.569638 ====> Client connect 10:31:22.571396 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:22.574921 < "USER anonymous" 10:31:22.575570 > "331 We are happy you popped in![CR][LF]" 10:31:22.582612 < "PASS ftp@example.com" 10:31:22.583293 > "230 Welcome you silly person[CR][LF]" 10:31:22.585361 < "PWD" 10:31:22.586033 > "257 "/" is current directory[CR][LF]" 10:31:22.590385 < "EPSV" 10:31:22.590792 ====> Passive DATA channel requested by client 10:31:22.590972 DATA sockfilt for passive data channel starting... 10:31:22.602602 DATA sockfilt for passive data channel started (pid 92779) 10:31:22.603725 DATA sockfilt for passive data channel listens on port 37269 10:31:22.604181 > "229 Entering Passive Mode (|||37269|)[LF]" 10:31:22.604439 Client has been notified that DATA conn will be accepted on port 37269 10:31:22.612674 Client connects to port 37269 10:31:22.613126 ====> Client established passive DATA connection on port 37269 10:31:22.614179 < "TYPE I" 10:31:22.614749 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:22.618093 < "SIZE verifiedserver" 10:31:22.618728 > "213 17[CR][LF]" 10:31:22.626544 < "RETR verifiedserver" 10:31:22.627146 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:22.628020 =====> Closing passive DATA connection... 10:31:22.628308 Server disconnects passive DATA connection 10:31:22.629548 Server disconnected passive DATA connection 10:31:22.630062 DATA sockfilt for passive data channel quits (pid 92779) 10:31:22.635467 DATA sockfilt for passive data channel quit (pid 92779) 10:31:22.635912 =====> Closed passive DATA connection 10:31:22.636326 > "226 File transfer complete[CR][LF]" 10:31:22.671239 < "QUIT" 10:31:22.671792 > "221 bye bye baby[CR][LF]" 10:31:22.677696 MAIN sockfilt said DISC 10:31:22.678342 ====> Client disconnected 10:31:22.679191 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:22.235503 ====> Client connect 10:31:22.242194 Received DATA (on stdin) 10:31:22.242494 > 160 bytes data, server => client 10:31:22.242663 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:22.242785 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:22.242878 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:22.244062 < 16 bytes data, client => server 10:31:22.244423 'USER anonymous\r\n' 10:31:22.246211 Received DATA (on stdin) 10:31:22.246454 > 33 bytes data, server => client 10:31:22.246614 '331 We are happy you popped in!\r\n' 10:31:22.247599 < 22 bytes data, client => server 10:31:22.247845 'PASS ftp@example.com\r\n' 10:31:22.253937 Received DATA (on stdin) 10:31:22.254163 > 30 bytes data, server => client 10:31:22.254310 '230 Welcome you silly person\r\n' 10:31:22.255292 < 5 bytes data, client => server 10:31:22.255494 'PWD\r\n' 10:31:22.256664 Received DATA (on stdin) 10:31:22.256883 > 30 bytes data, server => client 10:31:22.256990 '257 "/" is current directory\r\n' 10:31:22.257961 < 6 bytes data, client => server 10:31:22.258241 'EPSV\r\n' 10:31:22.278122 Received DATA (on stdin) 10:31:22.278425 > 38 bytes data, server => client 10:31:22.278562 '229 Entering Passive Mode (|||37269|)\n' 10:31:22.280312 < 8 bytes data, client => server 10:31:22.280524 'TYPE I\r\n' 10:31:22.285955 Received DATA (on stdin) 10:31:22.286223 > 33 bytes data, server => client 10:31:22.286366 '200 I modify TYPE as you wanted\r\n' 10:31:22.287387 < 21 bytes data, client => server 10:31:22.287621 'SIZE verifiedserver\r\n' 10:31:22.291047 Received DATA (on stdin) 10:31:22.291317 > 8 bytes data, server => client 10:31:22.291428 '213 17\r\n' 10:31:22.296279 < 21 bytes data, client => server 10:31:22.296549 'RETR verifiedserver\r\n' 10:31:22.297796 Received DATA (on stdin) 10:31:22.297991 > 29 bytes data, server => client 10:31:22.298098 '150 Binary junk (17 bytes).\r\n' 10:31:22.306991 Received DATA (on stdin) 10:31:22.307169 > 28 bytes data, server => client 10:31:22.307274 '226 File transfer complete\r\n' 10:31:22.341094 < 6 bytes data, client => server 10:31:22.341401 'QUIT\r\n' 10:31:22.342450 Received DATA (on stdin) 10:31:22.342657 > 18 bytes data, server => client 10:31:22.342755 '221 bye bye baby\r\n' 10:31:22.344616 ====> Client disconnect 10:31:22.352160 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:22.271050 Running IPv4 version 10:31:22.271590 Listening on port 37269 10:31:22.271955 Wrote pid 92779 to log/8/server/ftp_sockdata.pid 10:31:22.272860 Received PING (on stdin) 10:31:22.273689 Received PORT (on stdin) 10:31:22.280861 ====> Client connect 10:31:22.298608 Received DATA (on stdin) 10:31:22.298843 > 17 bytes data, server => client 10:31:22.298945 'WE ROOLZ: 86552\r\n' 10:31:22.299358 Received DISC (on stdin) 10:31:22.299601 ====> Client forcibly disconnected 10:31:22.304308 Received QUIT (on stdin) 10:31:22.304579 quits 10:31:22.305106 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command REPLY SIZE 500 no such command Testnum 336 === End of file server.cmd === Start of file valgrind336 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind336 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/6/server/tftp_server.pid" --portfile "log/6/server/tftp_server.port" --logfile "log/6/tftp_server.log" --logdir "log/6" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 92471 port 47713 * pid tftp => 92471 92471 test 0332...[TFTP retrieve with blksize 400] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind332 ../src/curl -q --output log/6/curl332.out --include --trace-ascii log/6/trace332 --trace-time tftp://127.0.0.1:47713//332 --tftp-blksize 400 > log/6/stdout332 2> log/6/stderr332 332: protocol FAILED! There was no content at all in the file log/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind337 ../src/curl -q --output log/1/curl337.out --include --trace-ascii log/1/trace337 --trace-time ftp://127.0.0.1:38733/337 --range 3-6 > log/1/stdout337 2> log/1/stderr337 6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 332 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind332 ../src/curl -q --output log/6/curl332.out --include --trace-ascii log/6/trace332 --trace-time tftp://127.0.0.1:47713//332 --tftp-blksize 400 > log/6/stdout332 2> log/6/stderr332 === End of file commands.log === Start of file server.cmd Testnum 332 === End of file server.cmd === Start of file tftp_server.log 10:31:22.851858 Wrote pid 92471 to log/6/server/tftp_server.pid 10:31:22.852567 Wrote port 47713 to log/6/server/tftp_server.port 10:31:22.852702 Running IPv4 version on port UDP/47713 === End of file tftp_server.log === Start of file valgrind332 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind332 test 0337...[FTP range download with SIZE returning extra crap] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind337 ../src/curl -q --output log/1/curl337.out --include --trace-ascii log/1/trace337 --trace-time ftp://127.0.0.1:38733/337 --range 3-6 > log/1/stdout337 2> log/1/stderr337 337: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 337 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind337 ../src/curl -q --output log/1/curl337.out --include --trace-ascii log/1/trace337 --trace-time ftp://127.0.0.1:38733/337 --range 3-6 > log/1/stdout337 2> log/1/stderr337 === End of file commands.log === Start of file ftp_server.log 10:31:22.826203 ====> Client connect 10:31:22.827502 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:22.830827 < "USER anonymous" 10:31:22.831554 > "331 We are happy you popped in![CR][LF]" 10:31:22.836772 < "PASS ftp@example.com" 10:31:22.837982 > "230 Welcome you silly person[CR][LF]" 10:31:22.843451 < "PWD" 10:31:22.844140 > "257 "/" is current directory[CR][LF]" 10:31:22.848646 < "EPSV" 10:31:22.849140 ====> Passive DATA channel requested by client 10:31:22.849528 DATA sockfilt for passive data channel starting... 10:31:22.864586 DATA sockfilt for passive data channel started (pid 92859) 10:31:22.866029 DATA sockfilt for passive data channel listens on port 40355 10:31:22.866689 > "229 Entering Passive Mode (|||40355|)[LF]" 10:31:22.867053 Client has been notified that DATA conn will be accepted on port 40355 10:31:22.870345 Client connects to port 40355 10:31:22.870936 ====> Client established passive DATA connection on port 40355 10:31:22.872447 < "TYPE I" 10:31:22.873268 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:22.886386 < "SIZE verifiedserver" 10:31:22.886989 > "213 17[CR][LF]" 10:31:22.888822 < "RETR verifiedserver" 10:31:22.889304 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:22.894397 =====> Closing passive DATA connection... 10:31:22.894725 Server disconnects passive DATA connection 10:31:22.896040 Server disconnected passive DATA connection 10:31:22.896511 DATA sockfilt for passive data channel quits (pid 92859) 10:31:22.898589 DATA sockfilt for passive data channel quit (pid 92859) 10:31:22.898996 =====> Closed passive DATA connection 10:31:22.899525 > "226 File transfer complete[CR][LF]" 10:31:22.944796 < "QUIT" 10:31:22.945378 > "221 bye bye baby[CR][LF]" 10:31:22.953071 MAIN sockfilt said DISC 10:31:22.953663 ====> Client disconnected 10:31:22.954422 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:22.496038 ====> Client connect 10:31:22.498082 Received DATA (on stdin) 10:31:22.498377 > 160 bytes data, server => client 10:31:22.498495 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:22.498594 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:22.498680 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:22.499529 < 16 bytes data, client => server 10:31:22.499801 'USER anonymous\r\n' 10:31:22.502786 Received DATA (on stdin) 10:31:22.503049 > 33 bytes data, server => client 10:31:22.503163 '331 We are happy you popped in!\r\n' 10:31:22.506096 < 22 bytes data, client => server 10:31:22.506315 'PASS ftp@example.com\r\n' 10:31:22.507960 Received DATA (on stdin) 10:31:22.508236 > 30 bytes data, server => client 10:31:22.509181 '230 Welcome you silly person\r\n' 10:31:22.512449 < 5 bytes data, client => server 10:31:22.512762 'PWD\r\n' 10:31:22.515686 Received DATA (on stdin) 10:31:22.515978 > 30 bytes data, server => client 10:31:22.516183 '257 "/" is current directory\r\n' 10:31:22.517172 < 6 bytes data, client => server 10:31:22.517480 'EPSV\r\n' 10:31:22.537323 Received DATA (on stdin) 10:31:22.537572 > 38 bytes data, server => client 10:31:22.537755 '229 Entering Passive Mode (|||40355|)\n' 10:31:22.541053 < 8 bytes data, client => server 10:31:22.541310 'TYPE I\r\n' 10:31:22.548317 Received DATA (on stdin) 10:31:22.548588 > 33 bytes data, server => client 10:31:22.548699 '200 I modify TYPE as you wanted\r\n' 10:31:22.552825 < 21 bytes data, client => server 10:31:22.553043 'SIZE verifiedserver\r\n' 10:31:22.557768 Received DATA (on stdin) 10:31:22.557979 > 8 bytes data, server => client 10:31:22.558084 '213 17\r\n' 10:31:22.558806 < 21 bytes data, client => server 10:31:22.559000 'RETR verifiedserver\r\n' 10:31:22.561418 Received DATA (on stdin) 10:31:22.561635 > 29 bytes data, server => client 10:31:22.561736 '150 Binary junk (17 bytes).\r\n' 10:31:22.570666 Received DATA (on stdin) 10:31:22.570902 > 28 bytes data, server => client 10:31:22.570999 '226 File transfer complete\r\n' 10:31:22.613297 < 6 bytes data, client => server 10:31:22.613503 'QUIT\r\n' 10:31:22.616051 Received DATA (on stdin) 10:31:22.616515 > 18 bytes data, server => client 10:31:22.616633 '221 bye bye baby\r\n' 10:31:22.623208 ====> Client disconnect 10:31:22.625576 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:22.532013 Running IPv4 version 10:31:22.532813 Listening on port 40355 10:31:22.533238 Wrote pid 92859 to log/1/server/ftp_sockdata.pid 10:31:22.533435 Received PING (on stdin) 10:31:22.535833 Received PORT (on stdin) 10:31:22.539821 ====> Client connect CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind338 ../src/curl -q --output log/7/curl338.out --include --trace-ascii log/7/trace338 --trace-time http://127.0.0.1:40129/338 --next http://127.0.0.1:40129/338 --anyauth -u foo:moo > log/7/stdout338 2> log/7/stderr338 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind339 ../src/curl -q --output log/2/curl339.out --include --trace-ascii log/2/trace339 --trace-time http://127.0.0.1:43789/339 --etag-save log/2/etag339 > log/2/stdout339 2> log/2/stderr339 10:31:22.564624 Received DATA (on stdin) 10:31:22.564884 > 17 bytes data, server => client 10:31:22.565028 'WE ROOLZ: 79585\r\n' 10:31:22.566261 Received DISC (on stdin) 10:31:22.566521 ====> Client forcibly disconnected 10:31:22.567709 Received QUIT (on stdin) 10:31:22.567890 quits 10:31:22.568381 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command REPLY SIZE 213 file: 213, Size =51 Testnum 337 === End of file server.cmd === Start of file valgrind337 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind337 test 0338...[ANYAUTH connection reuse of non-authed connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind338 ../src/curl -q --output log/7/curl338.out --include --trace-ascii log/7/trace338 --trace-time http://127.0.0.1:40129/338 --next http://127.0.0.1:40129/338 --anyauth -u foo:moo > log/7/stdout338 2> log/7/stderr338 338: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 338 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind338 ../src/curl -q --output log/7/curl338.out --include --trace-ascii log/7/trace338 --trace-time http://127.0.0.1:40129/338 --next http://127.0.0.1:40129/338 --anyauth -u foo:moo > log/7/stdout338 2> log/7/stderr338 === End of file commands.log === Start of file http_server.log 10:31:22.605848 ====> Client connect 10:31:22.606217 accept_connection 3 returned 4 10:31:22.606418 accept_connection 3 returned 0 10:31:22.606558 Read 93 bytes 10:31:22.606668 Process 93 bytes request 10:31:22.606760 Got request: GET /verifiedserver HTTP/1.1 10:31:22.606832 Are-we-friendly question received 10:31:22.607115 Wrote request (93 bytes) input to log/7/server.input 10:31:22.607312 Identifying ourselves as friends 10:31:22.607970 Response sent (56 bytes) and written to log/7/server.response 10:31:22.608159 special request received, no persistency 10:31:22.608235 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 58678 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 338 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind338 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind338 test 0339...[Check if --etag-save saved correct etag to a file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind339 ../src/curl -q --output log/2/curl339.out --include --trace-ascii log/2/trace339 --trace-time http://127.0.0.1:43789/339 --etag-save log/2/etag339 > log/2/stdout339 2> log/2/stderr339 339: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 339 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind339 ../src/curl -q --output log/2/curl339.out --include --trace-ascii log/2/trace339 --trace-time http://127.0.0.1:43789/339 --etag-save log/2/etag339 > log/2/stdout339 2> log/2/stderr339 === End of file commands.log === Start of file http_server.log 10:31:22.680542 ====> Client connect 10:31:22.680945 accept_connection 3 returned 4 10:31:22.681185 accept_connection 3 returned 0 10:31:22.681369 Read 93 bytes 10:31:22.681490 Process 93 bytes request 10:31:22.681598 Got request: GET /verifiedserver HTTP/1.1 10:31:22.681705 Are-we-friendly question received 10:31:22.682020 Wrote request (93 bytes) input to log/2/server.input 10:31:22.682263 Identifying ourselves as friends 10:31:22.683146 Response sent (56 bytes) and written to log/2/server.response 10:31:22.683308 special request received, no persistency 10:31:22.683384 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 53766 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind341 ../src/curl -q --output log/4/curl341.out --include --trace-ascii log/4/trace341 --trace-time http://127.0.0.1:36757/341 --etag-compare log/4/etag341 > log/4/stdout341 2> log/4/stderr341 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind340 ../src/curl -q --output log/5/curl340.out --include --trace-ascii log/5/trace340 --trace-time --ftp-method singlecwd ftp://127.0.0.1:43393/%00first/second/third/340 > log/5/stdout340 2> log/5/stderr340 file http_verify.out === Start of file server.cmd Testnum 339 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind339 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind339 test 0341...[A non existing file with --etag-compare is just a blank] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind341 ../src/curl -q --output log/4/curl341.out --include --trace-ascii log/4/trace341 --trace-time http://127.0.0.1:36757/341 --etag-compare log/4/etag341 > log/4/stdout341 2> log/4/stderr341 341: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 341 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind341 ../src/curl -q --output log/4/curl341.out --include --trace-ascii log/4/trace341 --trace-time http://127.0.0.1:36757/341 --etag-compare log/4/etag341 > log/4/stdout341 2> log/4/stderr341 === End of file commands.log === Start of file http_server.log 10:31:23.797225 ====> Client connect 10:31:23.797584 accept_connection 3 returned 4 10:31:23.797789 accept_connection 3 returned 0 10:31:23.797940 Read 93 bytes 10:31:23.798036 Process 93 bytes request 10:31:23.798130 Got request: GET /verifiedserver HTTP/1.1 10:31:23.798203 Are-we-friendly question received 10:31:23.798506 Wrote request (93 bytes) input to log/4/server.input 10:31:23.798730 Identifying ourselves as friends 10:31:23.799578 Response sent (56 bytes) and written to log/4/server.response 10:31:23.799771 special request received, no persistency 10:31:23.799849 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33058 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 341 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind341 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind341 test 0340...[FTP using %00 in path with singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind340 ../src/curl -q --output log/5/curl340.out --include --trace-ascii log/5/trace340 --trace-time --ftp-method singlecwd ftp://127.0.0.1:43393/%00first/second/third/340 > log/5/stdout340 2> log/5/stderr340 340: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 340 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind340 ../src/curl -q --output log/5/curl340.out --include --trace-ascii log/5/trace340 --trace-time --ftp-method singlecwd ftp://127.0.0.1:43393/%00first/second/third/340 > log/5/stdout340 2> log/5/stderr340 === End of file commands.log === Start of file ftp_server.log 10:31:23.039650 ====> Client connect 10:31:23.041000 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:23.050648 < "USER anonymous" 10:31:23.051185 > "331 We are happy you popped in![CR][LF]" 10:31:23.055971 < "PASS ftp@example.com" 10:31:23.056542 > "230 Welcome you silly person[CR][LF]" 10:31:23.066257 < "PWD" 10:31:23.066766 > "257 "/" is current directory[CR][LF]" 10:31:23.069051 < "EPSV" 10:31:23.069386 ====> Passive DATA channel requested by client 10:31:23.069709 DATA sockfilt for passive data channel starting... 10:31:23.087156 DATA sockfilt for passive data channel started (pid 92960) 10:31:23.088473 DATA sockfilt for passive data channel listens on port 37411 10:31:23.089089 > "229 Entering Passive Mode (|||37411|)[LF]" 10:31:23.089432 Client has been notified that DATA conn will be accepted on port 37411 10:31:23.092152 Client connects to port 37411 10:31:23.092685 ====> Client established passive DATA connection on port 37411 10:31:23.094509 < "TYPE I" 10:31:23.095068 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:23.097448 < "SIZE verifiedserver" 10:31:23.098181 > "213 17[CR][LF]" 10:31:23.100023 < "RETR verifiedserver" 10:31:23.100558 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:23.101271 =====> Closing passive DATA connection... 10:31:23.101612 Server disconnects passive DATA connection 10CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind342 ../src/curl -q --output log/3/curl342.out --include --trace-ascii log/3/trace342 --trace-time http://127.0.0.1:36933/342 --etag-compare log/3/etag342 > log/3/stdout342 2> log/3/stderr342 :31:23.103709 Server disconnected passive DATA connection 10:31:23.104178 DATA sockfilt for passive data channel quits (pid 92960) 10:31:23.106088 DATA sockfilt for passive data channel quit (pid 92960) 10:31:23.106465 =====> Closed passive DATA connection 10:31:23.106869 > "226 File transfer complete[CR][LF]" 10:31:23.143775 < "QUIT" 10:31:23.144361 > "221 bye bye baby[CR][LF]" 10:31:23.151033 MAIN sockfilt said DISC 10:31:23.151554 ====> Client disconnected 10:31:23.152305 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:22.709176 ====> Client connect 10:31:22.712535 Received DATA (on stdin) 10:31:22.712780 > 160 bytes data, server => client 10:31:22.712895 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:22.712981 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:22.713059 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:22.714104 < 16 bytes data, client => server 10:31:22.720290 'USER anonymous\r\n' 10:31:22.722286 Received DATA (on stdin) 10:31:22.722518 > 33 bytes data, server => client 10:31:22.722619 '331 We are happy you popped in!\r\n' 10:31:22.725468 < 22 bytes data, client => server 10:31:22.725678 'PASS ftp@example.com\r\n' 10:31:22.727610 Received DATA (on stdin) 10:31:22.727826 > 30 bytes data, server => client 10:31:22.727933 '230 Welcome you silly person\r\n' 10:31:22.732845 < 5 bytes data, client => server 10:31:22.733071 'PWD\r\n' 10:31:22.737814 Received DATA (on stdin) 10:31:22.738024 > 30 bytes data, server => client 10:31:22.738126 '257 "/" is current directory\r\n' 10:31:22.744382 < 6 bytes data, client => server 10:31:22.744626 'EPSV\r\n' 10:31:22.759798 Received DATA (on stdin) 10:31:22.760001 > 38 bytes data, server => client 10:31:22.760187 '229 Entering Passive Mode (|||37411|)\n' 10:31:22.763921 < 8 bytes data, client => server 10:31:22.764224 'TYPE I\r\n' 10:31:22.766065 Received DATA (on stdin) 10:31:22.766254 > 33 bytes data, server => client 10:31:22.766343 '200 I modify TYPE as you wanted\r\n' 10:31:22.767091 < 21 bytes data, client => server 10:31:22.767282 'SIZE verifiedserver\r\n' 10:31:22.768939 Received DATA (on stdin) 10:31:22.769135 > 8 bytes data, server => client 10:31:22.769257 '213 17\r\n' 10:31:22.769920 < 21 bytes data, client => server 10:31:22.770119 'RETR verifiedserver\r\n' 10:31:22.771596 Received DATA (on stdin) 10:31:22.771761 > 29 bytes data, server => client 10:31:22.771845 '150 Binary junk (17 bytes).\r\n' 10:31:22.777709 Received DATA (on stdin) 10:31:22.777860 > 28 bytes data, server => client 10:31:22.777950 '226 File transfer complete\r\n' 10:31:22.813181 < 6 bytes data, client => server 10:31:22.813459 'QUIT\r\n' 10:31:22.814995 Received DATA (on stdin) 10:31:22.815239 > 18 bytes data, server => client 10:31:22.815382 '221 bye bye baby\r\n' 10:31:22.820359 ====> Client disconnect 10:31:22.822352 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:23.755201 Running IPv4 version 10:31:23.755721 Listening on port 37411 10:31:23.757229 Wrote pid 92960 to log/5/server/ftp_sockdata.pid 10:31:23.757457 Received PING (on stdin) 10:31:23.758361 Received PORT (on stdin) 10:31:23.761800 ====> Client connect 10:31:23.772561 Received DATA (on stdin) 10:31:23.772718 > 17 bytes data, server => client 10:31:23.772811 'WE ROOLZ: 79602\r\n' 10:31:23.773112 Received DISC (on stdin) 10:31:23.773275 ====> Client forcibly disconnected 10:31:23.775130 Received QUIT (on stdin) 10:31:23.775295 quits 10:31:23.775713 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 340 === End of file server.cmd === Start of file valgrind340 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind340 test 0342...[Check if --etag-compare set correct etag in header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind342 ../src/curl -q --output log/3/curl342.out --include --trace-ascii log/3/trace342 --trace-time http://127.0.0.1:36933/342 --etag-compare log/3/etag342 > log/3/stdout342 2> log/3/stderr342 342: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 342 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind342 ../src/curl -q --output log/3/curl342.out --include --trace-ascii log/3/trace342 --trace-time http://127.0.0.1:36933/342 --etag-compare log/3/etag342 > log/3/stdout342 2> log/3/stderr342 === End of file commands.log === Start of file etag342 "21025-dc7-39462498" === End of file etag342 === Start of file http_server.log 10:31:23.156192 ====> Client connect 10:31:23.156591 accept_connection 3 returned 4 10:31:23.156827 accept_connection 3 returned 0 10:31:23.157006 Read 93 bytes 10:31:23.157125 Process 93 bytes request 10:31:23.157238 Got request: GET /verifiedserver HTTP/1.1 10:31:23.157349 Are-we-friendly question received 10:31:23.157709 Wrote request (93 bytes) input to log/3/server.input 10:31:23.158142 Identifying ourselves as friends 10:31:23.158949 Response sent (56 bytes) and written to log/3/server.response 10:31:23.159091 special request received, no persistency 10:31:23.159166 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45608 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 342 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind342 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind343 ../src/curl -q --output log/8/curl343.out --include --trace-ascii log/8/trace343 --trace-time http://127.0.0.1:36007/343 --etag-compare log/8/etag343 --etag-save log/8/out343 > log/8/stdout343 2> log/8/stderr343 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind344 ../src/curl -q --output log/6/curl344.out --include --trace-ascii log/6/trace344 --trace-time http://127.0.0.1:33363/344 --etag-compare log/6/etag344 --etag-save log/6/etag344 > log/6/stdout344 2> log/6/stderr344 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind345 ../src/curl -q --output log/1/curl345.out --include --trace-ascii log/1/trace345 --trace-time http://127.0.0.1:36129/345 --etag-compare log/1/etag345 --etag-save log/1/etag345 > log/1/stdout345 2> log/1/stderr345 valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind342 test 0343...[Both --etag-compare and --etag-save to save new Etag] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind343 ../src/curl -q --output log/8/curl343.out --include --trace-ascii log/8/trace343 --trace-time http://127.0.0.1:36007/343 --etag-compare log/8/etag343 --etag-save log/8/out343 > log/8/stdout343 2> log/8/stderr343 343: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 343 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind343 ../src/curl -q --output log/8/curl343.out --include --trace-ascii log/8/trace343 --trace-time http://127.0.0.1:36007/343 --etag-compare log/8/etag343 --etag-save log/8/out343 > log/8/stdout343 2> log/8/stderr343 === End of file commands.log === Start of file etag343 "21025-dc7-39462498" === End of file etag343 === Start of file http_server.log 10:31:23.368246 ====> Client connect 10:31:23.368690 accept_connection 3 returned 4 10:31:23.368989 accept_connection 3 returned 0 10:31:23.369186 Read 93 bytes 10:31:23.369324 Process 93 bytes request 10:31:23.369437 Got request: GET /verifiedserver HTTP/1.1 10:31:23.369525 Are-we-friendly question received 10:31:23.369864 Wrote request (93 bytes) input to log/8/server.input 10:31:23.370153 Identifying ourselves as friends 10:31:23.371191 Response sent (56 bytes) and written to log/8/server.response 10:31:23.371376 special request received, no persistency 10:31:23.371469 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 40942 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 343 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind343 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind343 test 0344...[Both --etag-compare and -save store new Etag using non-existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind344 ../src/curl -q --output log/6/curl344.out --include --trace-ascii log/6/trace344 --trace-time http://127.0.0.1:33363/344 --etag-compare log/6/etag344 --etag-save log/6/etag344 > log/6/stdout344 2> log/6/stderr344 344: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 344 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind344 ../src/curl -q --output log/6/curl344.out --include --trace-ascii log/6/trace344 --trace-time http://127.0.0.1:33363/344 --etag-compare log/6/etag344 --etag-save log/6/etag344 > log/6/stdout344 2> log/6/stderr344 === End of file commands.log === Start of file http_server.log 10:31:23.517728 ====> Client connect 10:31:23.518094 accept_connection 3 returned 4 10:31:23.518328 accept_connection 3 returned 0 10:31:23.518479 Read 93 bytes 10:31:23.518584 Process 93 bytes request 10:31:23.518678 Got request: GET /verifiedserver HTTP/1.1 10:31:23.518762 Are-we-friendly question received 10:31:23.519007 Wrote request (93 bytes) input to log/6/server.input 10:31:23.519198 Identifying ourselves as friends 10:31:23.520149 Response sent (56 bytes) and written to log/6/server.response 10:31:23.520349 special request received, no persistency 10:31:23.520433 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 34574 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 344 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind344 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind346 ../src/curl -q --output log/7/curl346.out --include --trace-ascii log/7/trace346 --trace-time -x http://127.0.0.1:40129/346 -U puser: -u suser: http://remote.example/346 > log/7/stdout346 2> log/7/stderr346 rind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind344 test 0345...[Both --etag-compare and -save store new Etag using one pre-existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind345 ../src/curl -q --output log/1/curl345.out --include --trace-ascii log/1/trace345 --trace-time http://127.0.0.1:36129/345 --etag-compare log/1/etag345 --etag-save log/1/etag345 > log/1/stdout345 2> log/1/stderr345 345: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 345 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind345 ../src/curl -q --output log/1/curl345.out --include --trace-ascii log/1/trace345 --trace-time http://127.0.0.1:36129/345 --etag-compare log/1/etag345 --etag-save log/1/etag345 > log/1/stdout345 2> log/1/stderr345 === End of file commands.log === Start of file etag345 "21025-dc7-39462498" === End of file etag345 === Start of file http_server.log 10:31:23.568461 ====> Client connect 10:31:23.568797 accept_connection 3 returned 4 10:31:23.568973 accept_connection 3 returned 0 10:31:23.569097 Read 93 bytes 10:31:23.569175 Process 93 bytes request 10:31:23.569271 Got request: GET /verifiedserver HTTP/1.1 10:31:23.569355 Are-we-friendly question received 10:31:23.569621 Wrote request (93 bytes) input to log/1/server.input 10:31:23.569826 Identifying ourselves as friends 10:31:23.570574 Response sent (56 bytes) and written to log/1/server.response 10:31:23.570706 special request received, no persistency 10:31:23.570777 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 39390 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 345 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind345 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind345 test 0346...[HTTP GET over proxy with credentials using blank passwords] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind346 ../src/curl -q --output log/7/curl346.out --include --trace-ascii log/7/trace346 --trace-time -x http://127.0.0.1:40129/346 -U puser: -u suser: http://remote.example/346 > log/7/stdout346 2> log/7/stderr346 346: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 346 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind346 ../src/curl -q --output log/7/curl346.out --include --trace-ascii log/7/trace346 --trace-time -x http://127.0.0.1:40129/346 -U puser: -u suser: http://remote.example/346 > log/7/stdout346 2> log/7/stderr346 === End of file commands.log === Start of file http_server.log 10:31:23.622256 ====> Client connect 10:31:23.622870 accept_connection 3 returned 4 10:31:23.623147 accept_connection 3 returned 0 10:31:23.625606 Read 93 bytes 10:31:23.625846 Process 93 bytes request 10:31:23.625961 Got request: GET /verifiedserver HTTP/1.1 10:31:23.626043 Are-we-friendly question received 10:31:23.626313 Wrote request (93 bytes) input to log/7/server.input 10:31:23.626491 Identifying ourselves as friends 10:31:23.627202 Response sent (56 bytes) and written to log/7/server.response 10:31:23.627341 special request received, no persistency 10:31:23.627407 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 58682 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 346 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind346 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.soCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind347 ../src/curl -q --output log/2/curl347.out --include --trace-ascii log/2/trace347 --trace-time http://127.0.0.1:43789/347 --etag-save log/2/etag347 > log/2/stdout347 2> log/2/stderr347 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind349 ../src/curl -q --output log/5/curl349.out --include --trace-ascii log/5/trace349 --trace-time http://127.0.0.1:41733/349 --fail-with-body > log/5/stdout349 2> log/5/stderr349 (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind346 test 0347...[--etag-save with blank incoming header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind347 ../src/curl -q --output log/2/curl347.out --include --trace-ascii log/2/trace347 --trace-time http://127.0.0.1:43789/347 --etag-save log/2/etag347 > log/2/stdout347 2> log/2/stderr347 347: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 347 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind347 ../src/curl -q --output log/2/curl347.out --include --trace-ascii log/2/trace347 --trace-time http://127.0.0.1:43789/347 --etag-save log/2/etag347 > log/2/stdout347 2> log/2/stderr347 === End of file commands.log === Start of file http_server.log 10:31:23.677251 ====> Client connect 10:31:23.677564 accept_connection 3 returned 4 10:31:23.677816 accept_connection 3 returned 0 10:31:23.678023 Read 93 bytes 10:31:23.678148 Process 93 bytes request 10:31:23.678255 Got request: GET /verifiedserver HTTP/1.1 10:31:23.678341 Are-we-friendly question received 10:31:23.678644 Wrote request (93 bytes) input to log/2/server.input 10:31:23.678962 Identifying ourselves as friends 10:31:23.679951 Response sent (56 bytes) and written to log/2/server.response 10:31:23.688347 special request received, no persistency 10:31:23.688513 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 53772 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 347 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind347 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind347 test 0349...[HTTP GET --fail-with-body on HTTP error return] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind349 ../src/curl -q --output log/5/curl349.out --include --trace-ascii log/5/trace349 --trace-time http://127.0.0.1:41733/349 --fail-with-body > log/5/stdout349 2> log/5/stderr349 349: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 349 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind349 ../src/curl -q --output log/5/curl349.out --include --trace-ascii log/5/trace349 --trace-time http://127.0.0.1:41733/349 --fail-with-body > log/5/stdout349 2> log/5/stderr349 === End of file commands.log === Start of file http_server.log 10:31:24.809171 ====> Client connect 10:31:24.809480 accept_connection 3 returned 4 10:31:24.809699 accept_connection 3 returned 0 10:31:24.809880 Read 93 bytes 10:31:24.809981 Process 93 bytes request 10:31:24.810066 Got request: GET /verifiedserver HTTP/1.1 10:31:24.810137 Are-we-friendly question received 10:31:24.810392 Wrote request (93 bytes) input to log/5/server.input 10:31:24.810569 Identifying ourselves as friends 10:31:24.811427 Response sent (56 bytes) and written to log/5/server.response 10:31:24.811605 special request received, no persistency 10:31:24.811692 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36020 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 349 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind349 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note thatCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind348 ../src/curl -q --output log/4/curl348.out --include --trace-ascii log/4/trace348 --trace-time ftp://127.0.0.1:42635/348 -T log/4/test348.txt > log/4/stdout348 2> log/4/stderr348 if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind349 test 0348...[FTP upload file with 552 disk full response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind348 ../src/curl -q --output log/4/curl348.out --include --trace-ascii log/4/trace348 --trace-time ftp://127.0.0.1:42635/348 -T log/4/test348.txt > log/4/stdout348 2> log/4/stderr348 348: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 348 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind348 ../src/curl -q --output log/4/curl348.out --include --trace-ascii log/4/trace348 --trace-time ftp://127.0.0.1:42635/348 -T log/4/test348.txt > log/4/stdout348 2> log/4/stderr348 === End of file commands.log === Start of file ftp_server.log 10:31:24.143734 ====> Client connect 10:31:24.145290 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:24.150660 < "USER anonymous" 10:31:24.151218 > "331 We are happy you popped in![CR][LF]" 10:31:24.154021 < "PASS ftp@example.com" 10:31:24.154506 > "230 Welcome you silly person[CR][LF]" 10:31:24.157427 < "PWD" 10:31:24.158230 > "257 "/" is current directory[CR][LF]" 10:31:24.160811 < "EPSV" 10:31:24.161227 ====> Passive DATA channel requested by client 10:31:24.161533 DATA sockfilt for passive data channel starting... 10:31:24.178049 DATA sockfilt for passive data channel started (pid 93514) 10:31:24.186111 DATA sockfilt for passive data channel listens on port 41795 10:31:24.186900 > "229 Entering Passive Mode (|||41795|)[LF]" 10:31:24.187395 Client has been notified that DATA conn will be accepted on port 41795 10:31:24.198044 Client connects to port 41795 10:31:24.198535 ====> Client established passive DATA connection on port 41795 10:31:24.199701 < "TYPE I" 10:31:24.200305 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:24.202217 < "SIZE verifiedserver" 10:31:24.202836 > "213 17[CR][LF]" 10:31:24.206649 < "RETR verifiedserver" 10:31:24.207561 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:24.208975 =====> Closing passive DATA connection... 10:31:24.209388 Server disconnects passive DATA connection 10:31:24.213075 Fancy that; client wants to DISC, too 10:31:24.216363 Server disconnected passive DATA connection 10:31:24.217001 DATA sockfilt for passive data channel quits (pid 93514) 10:31:24.222929 DATA sockfilt for passive data channel quit (pid 93514) 10:31:24.223447 =====> Closed passive DATA connection 10:31:24.224073 > "226 File transfer complete[CR][LF]" 10:31:24.254432 < "QUIT" 10:31:24.255968 > "221 bye bye baby[CR][LF]" 10:31:24.256844 MAIN sockfilt said DISC 10:31:24.258085 ====> Client disconnected 10:31:24.258937 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:24.808212 ====> Client connect 10:31:24.815862 Received DATA (on stdin) 10:31:24.816295 > 160 bytes data, server => client 10:31:24.816466 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:24.816569 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:24.816659 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:24.819103 < 16 bytes data, client => server 10:31:24.819291 'USER anonymous\r\n' 10:31:24.822355 Received DATA (on stdin) 10:31:24.822554 > 33 bytes data, server => client 10:31:24.822650 '331 We are happy you popped in!\r\n' 10:31:24.823447 < 22 bytes data, client => server 10:31:24.823680 'PASS ftp@example.com\r\n' 10:31:24.825514 Received DATA (on stdin) 10:31:24.825767 > 30 bytes data, server => client 10:31:24.825873 '230 Welcome you silly person\r\n' 10:31:24.826724 < 5 bytes data, client => server 10:31:24.826973 'PWD\r\n' 10:31:24.829279 Received DATA (on stdin) 10:31:24.829483 > 30 bytes data, server => client 10:31:24.829614 '257 "/" is current directory\r\n' 10:31:24.830565 < 6 bytes data, client => server 10:31:24.830819 'EPSV\r\n' 10:31:24.859128 Received DATA (on stdin) 10:31:24.859502 > 38 bytes data, server => client 10:31:24.859684 '229 Entering Passive Mode (|||41795|)\n' 10:31:24.868329 < 8 bytes data, client => server 10:31:24.868480 'TYPE I\r\n' 10:31:24.870879 Received DATA (on stdin) 10:31:24.871069 > 33 bytes data, server => client 10:31:24.871172 '200 I modify TYPE as you wanted\r\n' 10:31:24.871960 < 21 bytes data, client => server 10:31:24.872273 'SIZE verifiedserver\r\n' 10:31:24.873412 Received DATA (on stdin) 10:31:24.873628 > 8 bytes data, server => client 10:31:24.873721 '213 17\r\n' 10:31:24.874416 < 21 bytes data, client => server 10:31:24.874662 'RETR verifiedserver\r\n' 10:31:24.879179 Received DATA (on stdin) 10:31:24.879404 > 29 bytes data, server => client 10:31:24.879528 '150 Binary junk (17 bytes).\r\n' 10:31:24.900346 Received DATA (on stdin) 10:31:24.900685 > 28 bytes data, server => client 10:31:24.900857 '226 File transfer complete\r\n' 10:31:24.923258 < 6 bytes data, client => server 10:31:24.923464 'QUIT\r\n' 10:31:24.925548 Received DATA (on stdin) 10:31:24.925777 > 18 bytes data, server => client 10:31:24.926010 '221 bye bye baby\r\n' 10:31:24.926719 ====> Client disconnect 10:31:24.927842 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:24.845996 Running IPv4 version 10:31:24.846868 Listening on port 41795 10:31:24.847429 Wrote pid 93514 to log/4/server/ftp_sockdata.pid 10:31:24.847648 Received PING (on stdin) 10:31:24.849573 Received PORT (on stdin) 10:31:24.868205 ====> Client connect 10:31:24.879009 Received DATA (on stdin) 10:31:24.879358 > 17 bytes data, server => client 10:31:24.879504 'WE ROOLZ: 79516\r\n' 10:31:24.882674 ====> Client disconnect 10:31:24.884250 Received DISC (on stdin) 10:31:24.884496 Crikey! Client also wants to disconnect 10:31:24.884764 Received ACKD (on stdin) 10:31:24.891078 Received QUIT (on stdin) 10:31:24.891404 quits 10:31:24.892326 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd STOR 552 disk full Testnum 348 === End of file server.cmd === Start of file test348.txt data to see that FTP works so does it? === End of file test348.txt === Start of file valgrind348 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (eCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind350 ../src/curl -q --output log/3/curl350.out --include --trace-ascii log/3/trace350 --trace-time ftp://127.0.0.1:33831// --ftp-method multicwd > log/3/stdout350 2> log/3/stderr350 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind351 ../src/curl -q --output log/8/curl351.out --include --trace-ascii log/8/trace351 --trace-time ftp://127.0.0.1:42977// --ftp-method nocwd > log/8/stdout351 2> log/8/stderr351 .g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind348 test 0350...[FTP root dir list multicwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind350 ../src/curl -q --output log/3/curl350.out --include --trace-ascii log/3/trace350 --trace-time ftp://127.0.0.1:33831// --ftp-method multicwd > log/3/stdout350 2> log/3/stderr350 350: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 350 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind350 ../src/curl -q --output log/3/curl350.out --include --trace-ascii log/3/trace350 --trace-time ftp://127.0.0.1:33831// --ftp-method multicwd > log/3/stdout350 2> log/3/stderr350 === End of file commands.log === Start of file ftp_server.log 10:31:24.482326 ====> Client connect 10:31:24.483734 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:24.490508 < "USER anonymous" 10:31:24.490986 > "331 We are happy you popped in![CR][LF]" 10:31:24.496024 < "PASS ftp@example.com" 10:31:24.496541 > "230 Welcome you silly person[CR][LF]" 10:31:24.502305 < "PWD" 10:31:24.502831 > "257 "/" is current directory[CR][LF]" 10:31:24.510519 < "EPSV" 10:31:24.510988 ====> Passive DATA channel requested by client 10:31:24.511293 DATA sockfilt for passive data channel starting... 10:31:24.537707 DATA sockfilt for passive data channel started (pid 93730) 10:31:24.539651 DATA sockfilt for passive data channel listens on port 37401 10:31:24.540279 > "229 Entering Passive Mode (|||37401|)[LF]" 10:31:24.540612 Client has been notified that DATA conn will be accepted on port 37401 10:31:24.544561 Client connects to port 37401 10:31:24.545047 ====> Client established passive DATA connection on port 37401 10:31:24.546421 < "TYPE I" 10:31:24.546998 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:24.551862 < "SIZE verifiedserver" 10:31:24.552823 > "213 17[CR][LF]" 10:31:24.566136 < "RETR verifiedserver" 10:31:24.569536 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:24.570889 =====> Closing passive DATA connection... 10:31:24.571509 Server disconnects passive DATA connection 10:31:24.577652 Server disconnected passive DATA connection 10:31:24.578478 DATA sockfilt for passive data channel quits (pid 93730) 10:31:24.582156 DATA sockfilt for passive data channel quit (pid 93730) 10:31:24.582992 =====> Closed passive DATA connection 10:31:24.584126 > "226 File transfer complete[CR][LF]" 10:31:24.614771 < "QUIT" 10:31:24.615481 > "221 bye bye baby[CR][LF]" 10:31:24.624257 MAIN sockfilt said DISC 10:31:24.624853 ====> Client disconnected 10:31:24.625645 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:24.152218 ====> Client connect 10:31:24.154305 Received DATA (on stdin) 10:31:24.154587 > 160 bytes data, server => client 10:31:24.154714 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:24.154817 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:24.154900 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:24.156477 < 16 bytes data, client => server 10:31:24.156701 'USER anonymous\r\n' 10:31:24.161597 Received DATA (on stdin) 10:31:24.161793 > 33 bytes data, server => client 10:31:24.161893 '331 We are happy you popped in!\r\n' 10:31:24.165661 < 22 bytes data, client => server 10:31:24.165955 'PASS ftp@example.com\r\n' 10:31:24.167140 Received DATA (on stdin) 10:31:24.167297 > 30 bytes data, server => client 10:31:24.167393 '230 Welcome you silly person\r\n' 10:31:24.168261 < 5 bytes data, client => server 10:31:24.168484 'PWD\r\n' 10:31:24.173425 Received DATA (on stdin) 10:31:24.173621 > 30 bytes data, server => client 10:31:24.173713 '257 "/" is current directory\r\n' 10:31:24.180286 < 6 bytes data, client => server 10:31:24.180528 'EPSV\r\n' 10:31:24.210868 Received DATA (on stdin) 10:31:24.211101 > 38 bytes data, server => client 10:31:24.211217 '229 Entering Passive Mode (|||37401|)\n' 10:31:24.215089 < 8 bytes data, client => server 10:31:24.215320 'TYPE I\r\n' 10:31:24.217583 Received DATA (on stdin) 10:31:24.217845 > 33 bytes data, server => client 10:31:24.217986 '200 I modify TYPE as you wanted\r\n' 10:31:24.218956 < 21 bytes data, client => server 10:31:24.219253 'SIZE verifiedserver\r\n' 10:31:24.226886 Received DATA (on stdin) 10:31:24.227332 > 8 bytes data, server => client 10:31:24.227590 '213 17\r\n' 10:31:24.232305 < 21 bytes data, client => server 10:31:24.232604 'RETR verifiedserver\r\n' 10:31:24.237587 Received DATA (on stdin) 10:31:24.237892 > 29 bytes data, server => client 10:31:24.239223 '150 Binary junk (17 bytes).\r\n' 10:31:24.255652 Received DATA (on stdin) 10:31:24.255927 > 28 bytes data, server => client 10:31:24.256162 '226 File transfer complete\r\n' 10:31:24.281718 < 6 bytes data, client => server 10:31:24.281977 'QUIT\r\n' 10:31:24.286067 Received DATA (on stdin) 10:31:24.286286 > 18 bytes data, server => client 10:31:24.286402 '221 bye bye baby\r\n' 10:31:24.292203 ====> Client disconnect 10:31:24.295487 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:24.203239 Running IPv4 version 10:31:24.203814 Listening on port 37401 10:31:24.204450 Wrote pid 93730 to log/3/server/ftp_sockdata.pid 10:31:24.204646 Received PING (on stdin) 10:31:24.209394 Received PORT (on stdin) 10:31:24.214722 ====> Client connect 10:31:24.241016 Received DATA (on stdin) 10:31:24.241304 > 17 bytes data, server => client 10:31:24.241432 'WE ROOLZ: 79555\r\n' 10:31:24.242619 Received DISC (on stdin) 10:31:24.242924 ====> Client forcibly disconnected 10:31:24.250050 Received QUIT (on stdin) 10:31:24.250454 quits 10:31:24.251173 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 350 === End of file server.cmd === Start of file valgrind350 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind350 test 0351...[FTP root dir list nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind351 ../src/curl -q --output log/8/curl351.out --include --trace-ascii log/8/trace351 --trace-time ftpCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind353 ../src/curl -q --output log/1/curl353.out --include --trace-ascii log/1/trace353 --trace-time ftp://127.0.0.1:38733/ --ftp-method singlecwd > log/1/stdout353 2> log/1/stderr353 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind352 ../src/curl -q --output log/6/curl352.out --include --trace-ascii log/6/trace352 --trace-time ftp://127.0.0.1:33323// --ftp-method singlecwd > log/6/stdout352 2> log/6/stderr352 ://127.0.0.1:42977// --ftp-method nocwd > log/8/stdout351 2> log/8/stderr351 351: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 351 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind351 ../src/curl -q --output log/8/curl351.out --include --trace-ascii log/8/trace351 --trace-time ftp://127.0.0.1:42977// --ftp-method nocwd > log/8/stdout351 2> log/8/stderr351 === End of file commands.log === Start of file ftp_server.log 10:31:24.750589 ====> Client connect 10:31:24.752121 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:24.755319 < "USER anonymous" 10:31:24.755910 > "331 We are happy you popped in![CR][LF]" 10:31:24.758185 < "PASS ftp@example.com" 10:31:24.758830 > "230 Welcome you silly person[CR][LF]" 10:31:24.761388 < "PWD" 10:31:24.762135 > "257 "/" is current directory[CR][LF]" 10:31:24.765699 < "EPSV" 10:31:24.766176 ====> Passive DATA channel requested by client 10:31:24.766512 DATA sockfilt for passive data channel starting... 10:31:24.783113 DATA sockfilt for passive data channel started (pid 93816) 10:31:24.785743 DATA sockfilt for passive data channel listens on port 45293 10:31:24.786537 > "229 Entering Passive Mode (|||45293|)[LF]" 10:31:24.786846 Client has been notified that DATA conn will be accepted on port 45293 10:31:24.794374 Client connects to port 45293 10:31:24.794963 ====> Client established passive DATA connection on port 45293 10:31:24.796398 < "TYPE I" 10:31:24.797111 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:24.800523 < "SIZE verifiedserver" 10:31:24.801283 > "213 17[CR][LF]" 10:31:24.810472 < "RETR verifiedserver" 10:31:24.811150 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:24.812123 =====> Closing passive DATA connection... 10:31:24.812512 Server disconnects passive DATA connection 10:31:24.815650 Server disconnected passive DATA connection 10:31:24.816210 DATA sockfilt for passive data channel quits (pid 93816) 10:31:24.825713 DATA sockfilt for passive data channel quit (pid 93816) 10:31:24.826158 =====> Closed passive DATA connection 10:31:24.828350 > "226 File transfer complete[CR][LF]" 10:31:24.856908 < "QUIT" 10:31:24.857567 > "221 bye bye baby[CR][LF]" 10:31:24.859669 MAIN sockfilt said DISC 10:31:24.860124 ====> Client disconnected 10:31:24.860760 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:24.420419 ====> Client connect 10:31:24.422694 Received DATA (on stdin) 10:31:24.423007 > 160 bytes data, server => client 10:31:24.423167 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:24.423280 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:24.423380 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:24.424744 < 16 bytes data, client => server 10:31:24.425041 'USER anonymous\r\n' 10:31:24.426505 Received DATA (on stdin) 10:31:24.426706 > 33 bytes data, server => client 10:31:24.426835 '331 We are happy you popped in!\r\n' 10:31:24.427666 < 22 bytes data, client => server 10:31:24.427939 'PASS ftp@example.com\r\n' 10:31:24.429375 Received DATA (on stdin) 10:31:24.429590 > 30 bytes data, server => client 10:31:24.429694 '230 Welcome you silly person\r\n' 10:31:24.430536 < 5 bytes data, client => server 10:31:24.430796 'PWD\r\n' 10:31:24.433280 Received DATA (on stdin) 10:31:24.433591 > 30 bytes data, server => client 10:31:24.433768 '257 "/" is current directory\r\n' 10:31:24.434796 < 6 bytes data, client => server 10:31:24.435017 'EPSV\r\n' 10:31:24.461658 Received DATA (on stdin) 10:31:24.461932 > 38 bytes data, server => client 10:31:24.462068 '229 Entering Passive Mode (|||45293|)\n' 10:31:24.464552 < 8 bytes data, client => server 10:31:24.464883 'TYPE I\r\n' 10:31:24.468359 Received DATA (on stdin) 10:31:24.468613 > 33 bytes data, server => client 10:31:24.468755 '200 I modify TYPE as you wanted\r\n' 10:31:24.469736 < 21 bytes data, client => server 10:31:24.469987 'SIZE verifiedserver\r\n' 10:31:24.475607 Received DATA (on stdin) 10:31:24.475903 > 8 bytes data, server => client 10:31:24.476444 '213 17\r\n' 10:31:24.477582 < 21 bytes data, client => server 10:31:24.477846 'RETR verifiedserver\r\n' 10:31:24.481780 Received DATA (on stdin) 10:31:24.482025 > 29 bytes data, server => client 10:31:24.482149 '150 Binary junk (17 bytes).\r\n' 10:31:24.498933 Received DATA (on stdin) 10:31:24.499252 > 28 bytes data, server => client 10:31:24.499421 '226 File transfer complete\r\n' 10:31:24.525157 < 6 bytes data, client => server 10:31:24.525367 'QUIT\r\n' 10:31:24.528129 Received DATA (on stdin) 10:31:24.528385 > 18 bytes data, server => client 10:31:24.528502 '221 bye bye baby\r\n' 10:31:24.529252 ====> Client disconnect 10:31:24.530760 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:24.451698 Running IPv4 version 10:31:24.452535 Listening on port 45293 10:31:24.453009 Wrote pid 93816 to log/8/server/ftp_sockdata.pid 10:31:24.453213 Received PING (on stdin) 10:31:24.454382 Received PORT (on stdin) 10:31:24.463732 ====> Client connect 10:31:24.482262 Received DATA (on stdin) 10:31:24.482503 > 17 bytes data, server => client 10:31:24.482640 'WE ROOLZ: 86552\r\n' 10:31:24.484325 Received DISC (on stdin) 10:31:24.484692 ====> Client forcibly disconnected 10:31:24.487356 Received QUIT (on stdin) 10:31:24.487670 quits 10:31:24.488943 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 351 === End of file server.cmd === Start of file valgrind351 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind351 test 0353...[FTP home dir list singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind353 ../src/curl -q --output log/1/curl353.out --include --trace-ascii log/1/trace353 --trace-time ftp://127.0.0.1:38733/ --ftp-method singlecwd > log/1/stdout353 2> log/1/stderr353 353: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 353 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind355 ../src/curl -q --output log/2/curl355.out --include --trace-ascii log/2/trace355 --trace-time http://127.0.0.1:43789/355 --alt-svc "" > log/2/stdout355 2> log/2/stderr355 num-callers=16 --log-file=log/1/valgrind353 ../src/curl -q --output log/1/curl353.out --include --trace-ascii log/1/trace353 --trace-time ftp://127.0.0.1:38733/ --ftp-method singlecwd > log/1/stdout353 2> log/1/stderr353 === End of file commands.log === Start of file ftp_server.log 10:31:24.894192 ====> Client connect 10:31:24.895567 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:24.903466 < "USER anonymous" 10:31:24.906063 > "331 We are happy you popped in![CR][LF]" 10:31:24.907008 < "PASS ftp@example.com" 10:31:24.908067 > "230 Welcome you silly person[CR][LF]" 10:31:24.910491 < "PWD" 10:31:24.910926 > "257 "/" is current directory[CR][LF]" 10:31:24.913336 < "EPSV" 10:31:24.913767 ====> Passive DATA channel requested by client 10:31:24.914055 DATA sockfilt for passive data channel starting... 10:31:24.926135 DATA sockfilt for passive data channel started (pid 93888) 10:31:24.927332 DATA sockfilt for passive data channel listens on port 34105 10:31:24.927938 > "229 Entering Passive Mode (|||34105|)[LF]" 10:31:24.928238 Client has been notified that DATA conn will be accepted on port 34105 10:31:24.930124 Client connects to port 34105 10:31:24.931425 ====> Client established passive DATA connection on port 34105 10:31:24.932636 < "TYPE I" 10:31:24.933199 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:24.936246 < "SIZE verifiedserver" 10:31:24.937439 > "213 17[CR][LF]" 10:31:24.939923 < "RETR verifiedserver" 10:31:24.940983 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:24.942168 =====> Closing passive DATA connection... 10:31:24.942485 Server disconnects passive DATA connection 10:31:24.943977 Server disconnected passive DATA connection 10:31:24.944447 DATA sockfilt for passive data channel quits (pid 93888) 10:31:24.946156 DATA sockfilt for passive data channel quit (pid 93888) 10:31:24.946559 =====> Closed passive DATA connection 10:31:24.947000 > "226 File transfer complete[CR][LF]" 10:31:24.992700 < "QUIT" 10:31:24.997743 > "221 bye bye baby[CR][LF]" 10:31:25.003025 MAIN sockfilt said DISC 10:31:25.005611 ====> Client disconnected 10:31:25.017884 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:24.563298 ====> Client connect 10:31:24.568540 Received DATA (on stdin) 10:31:24.568857 > 160 bytes data, server => client 10:31:24.569021 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:24.569123 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:24.569208 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:24.572551 < 16 bytes data, client => server 10:31:24.572818 'USER anonymous\r\n' 10:31:24.574653 Received DATA (on stdin) 10:31:24.574853 > 33 bytes data, server => client 10:31:24.575077 '331 We are happy you popped in!\r\n' 10:31:24.575893 < 22 bytes data, client => server 10:31:24.576176 'PASS ftp@example.com\r\n' 10:31:24.578087 Received DATA (on stdin) 10:31:24.578321 > 30 bytes data, server => client 10:31:24.579109 '230 Welcome you silly person\r\n' 10:31:24.580057 < 5 bytes data, client => server 10:31:24.580270 'PWD\r\n' 10:31:24.581914 Received DATA (on stdin) 10:31:24.582118 > 30 bytes data, server => client 10:31:24.582206 '257 "/" is current directory\r\n' 10:31:24.582971 < 6 bytes data, client => server 10:31:24.583165 'EPSV\r\n' 10:31:24.598544 Received DATA (on stdin) 10:31:24.598734 > 38 bytes data, server => client 10:31:24.598833 '229 Entering Passive Mode (|||34105|)\n' 10:31:24.600778 < 8 bytes data, client => server 10:31:24.600924 'TYPE I\r\n' 10:31:24.604355 Received DATA (on stdin) 10:31:24.604667 > 33 bytes data, server => client 10:31:24.604806 '200 I modify TYPE as you wanted\r\n' 10:31:24.605705 < 21 bytes data, client => server 10:31:24.605910 'SIZE verifiedserver\r\n' 10:31:24.607504 Received DATA (on stdin) 10:31:24.607719 > 8 bytes data, server => client 10:31:24.608564 '213 17\r\n' 10:31:24.609555 < 21 bytes data, client => server 10:31:24.609739 'RETR verifiedserver\r\n' 10:31:24.611051 Received DATA (on stdin) 10:31:24.611273 > 29 bytes data, server => client 10:31:24.613329 '150 Binary junk (17 bytes).\r\n' 10:31:24.618042 Received DATA (on stdin) 10:31:24.618261 > 28 bytes data, server => client 10:31:24.618363 '226 File transfer complete\r\n' 10:31:24.661121 < 6 bytes data, client => server 10:31:24.661321 'QUIT\r\n' 10:31:24.663750 Received DATA (on stdin) 10:31:24.663911 > 18 bytes data, server => client 10:31:24.668912 '221 bye bye baby\r\n' 10:31:24.672703 ====> Client disconnect 10:31:24.674260 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:24.594963 Running IPv4 version 10:31:24.595620 Listening on port 34105 10:31:24.596118 Wrote pid 93888 to log/1/server/ftp_sockdata.pid 10:31:24.596362 Received PING (on stdin) 10:31:24.597280 Received PORT (on stdin) 10:31:24.600192 ====> Client connect 10:31:24.613524 Received DATA (on stdin) 10:31:24.613691 > 17 bytes data, server => client 10:31:24.613796 'WE ROOLZ: 79585\r\n' 10:31:24.614068 Received DISC (on stdin) 10:31:24.614255 ====> Client forcibly disconnected 10:31:24.615363 Received QUIT (on stdin) 10:31:24.615517 quits 10:31:24.615886 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 353 === End of file server.cmd === Start of file valgrind353 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind353 test 0352...[FTP root dir list singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind352 ../src/curl -q --output log/6/curl352.out --include --trace-ascii log/6/trace352 --trace-time ftp://127.0.0.1:33323// --ftp-method singlecwd > log/6/stdout352 2> log/6/stderr352 352: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 352 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind352 ../src/curl -q --output log/6/curl352.out --include --trace-ascii log/6/trace352 --trace-time ftp://127.0.0.1:33323// --ftp-method singlecwd > log/6/stdout352 2> log/6/stderr352 === End of file commands.log === Start of file ftp_server.log 10:31:24.864561 ====> Client connect 10:31:24.866352 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:24.871097 < "USER anonymous" 10:31:24.871704 > "331 We are happy you popped in![CR][LF]" 10:31:24.874867 < "PASS ftp@example.com" 10:31:24.875419 > "230 Welcome you silly person[CR][LF]" 10:31:24.877275 < "PWD" 10:31:24.878338 > "257 "/" is current directory[CR][LF]" 10:31:24.881359 < "EPSV" 10:31:24.881901 ====> Passive DATA channel requested by client 10:31:24.882205 DATA sockfilt for passive data channel starting... 10:31:24.894710 DATA sockfilt for passive data channel started (pid 93874) 10:31:24.895852 DATA sockfilt for passive data channel listens on port 46159 10:31:24.896316 > "229 Entering Passive Mode (|||46159|)[LF]" 10:31:24.896573 Client has been notified that DATA conn will be accepted on port 46159 10:31:24.898846 Client connects to port 46159 10:31:24.899302 ====> Client established passive DATA connection on port 46159 10:31:24.900400 < "TYPE I" 10:31:24.900978 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:24.906217 < "SIZE verifiedserver" 10:31:24.906638 > "213 17[CR][LF]" 10:31:24.910325 < "RETR verifiedserver" 10:31:24.910889 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:24.912836 =====> Closing passive DATA connection... 10:31:24.913150 Server disconnects passive DATA connection 10:31:24.915684 Server disconnected passive DATA connection 10:31:24.916191 DATA sockfilt for passive data channel quits (pid 93874) 10:31:24.918865 DATA sockfilt for passive data channel quit (pid 93874) 10:31:24.919322 =====> Closed passive DATA connection 10:31:24.919805 > "226 File transfer complete[CR][LF]" 10:31:24.962649 < "QUIT" 10:31:24.963889 > "221 bye bye baby[CR][LF]" 10:31:24.964628 MAIN sockfilt said DISC 10:31:24.969695 ====> Client disconnected 10:31:24.970510 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:25.534426 ====> Client connect 10:31:25.536906 Received DATA (on stdin) 10:31:25.537191 > 160 bytes data, server => client 10:31:25.537308 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:25.537402 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:25.537484 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:25.538412 < 16 bytes data, client => server 10:31:25.538592 'USER anonymous\r\n' 10:31:25.542317 Received DATA (on stdin) 10:31:25.542576 > 33 bytes data, server => client 10:31:25.542728 '331 We are happy you popped in!\r\n' 10:31:25.543717 < 22 bytes data, client => server 10:31:25.544004 'PASS ftp@example.com\r\n' 10:31:25.545960 Received DATA (on stdin) 10:31:25.546191 > 30 bytes data, server => client 10:31:25.546316 '230 Welcome you silly person\r\n' 10:31:25.547153 < 5 bytes data, client => server 10:31:25.547423 'PWD\r\n' 10:31:25.548951 Received DATA (on stdin) 10:31:25.549173 > 30 bytes data, server => client 10:31:25.549292 '257 "/" is current directory\r\n' 10:31:25.550340 < 6 bytes data, client => server 10:31:25.550558 'EPSV\r\n' 10:31:25.566901 Received DATA (on stdin) 10:31:25.567080 > 38 bytes data, server => client 10:31:25.567183 '229 Entering Passive Mode (|||46159|)\n' 10:31:25.569337 < 8 bytes data, client => server 10:31:25.569526 'TYPE I\r\n' 10:31:25.571561 Received DATA (on stdin) 10:31:25.571817 > 33 bytes data, server => client 10:31:25.571932 '200 I modify TYPE as you wanted\r\n' 10:31:25.572727 < 21 bytes data, client => server 10:31:25.572914 'SIZE verifiedserver\r\n' 10:31:25.577220 Received DATA (on stdin) 10:31:25.577423 > 8 bytes data, server => client 10:31:25.577523 '213 17\r\n' 10:31:25.578420 < 21 bytes data, client => server 10:31:25.578606 'RETR verifiedserver\r\n' 10:31:25.582010 Received DATA (on stdin) 10:31:25.582202 > 29 bytes data, server => client 10:31:25.582288 '150 Binary junk (17 bytes).\r\n' 10:31:25.590826 Received DATA (on stdin) 10:31:25.591046 > 28 bytes data, server => client 10:31:25.591180 '226 File transfer complete\r\n' 10:31:25.632244 < 6 bytes data, client => server 10:31:25.632458 'QUIT\r\n' 10:31:25.633672 Received DATA (on stdin) 10:31:25.633848 > 18 bytes data, server => client 10:31:25.634014 '221 bye bye baby\r\n' 10:31:25.634800 ====> Client disconnect 10:31:25.635568 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:24.562014 Running IPv4 version 10:31:24.562634 Listening on port 46159 10:31:24.563063 Wrote pid 93874 to log/6/server/ftp_sockdata.pid 10:31:24.564830 Received PING (on stdin) 10:31:24.565737 Received PORT (on stdin) 10:31:24.568989 ====> Client connect 10:31:24.582069 Received DATA (on stdin) 10:31:24.582200 > 17 bytes data, server => client 10:31:24.584589 'WE ROOLZ: 79480\r\n' 10:31:24.585042 Received DISC (on stdin) 10:31:24.585266 ====> Client forcibly disconnected 10:31:24.587276 Received QUIT (on stdin) 10:31:24.587580 quits 10:31:24.588326 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 352 === End of file server.cmd === Start of file valgrind352 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind352 test 0355...[load Alt-Svc from file and use] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind355 ../src/curl -q --output log/2/curl355.out --include --trace-ascii log/2/trace355 --trace-time http://127.0.0.1:43789/355 --alt-svc "" > log/2/stdout355 2> log/2/stderr355 355: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 355 === Start of file altsvc-355 h1 example.com 80 h1 127.0.0.1 43789 "20290222 22:19:28" 0 0 === End of file altsvc-355 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind355 ../src/curl -q --output log/2/curl355.out --include --trace-ascii log/2/trace355 --trace-time http://127.0.0.1:43789/355 --alt-svc "" > log/2/stdout355 2> log/2/stderr355 === End of file commands.log === Start of file http_server.log 10:31:24.702669 ====> Client connect 10:31:24.703016 accept_connection 3 returned 4 10:31:24.703288 accept_connection 3 returned 0 10:31:24.703504 Read 93 bytes 10:31:24.703640 Process 93 bytes request 10:31:24.703756 Got request: GET /verifiedserver HTTP/1.1 10:31:24.703853 Are-we-friendly question received 10:31:24.704274 Wrote request (93 bytes) input to log/2/server.input 10:31:24.704589 Identifying ourselves as friends 10:31:24.705547 Response sent (56 byteCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind354 ../src/curl -q --output log/7/curl354.out --include --trace-ascii log/7/trace354 --trace-time ftp://127.0.0.1:38253/354 > log/7/stdout354 2> log/7/stderr354 s) and written to log/2/server.response 10:31:24.705720 special request received, no persistency 10:31:24.705808 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 53784 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 355 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind355 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind355 test 0354...[FTP without password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind354 ../src/curl -q --output log/7/curl354.out --include --trace-ascii log/7/trace354 --trace-time ftp://127.0.0.1:38253/354 > log/7/stdout354 2> log/7/stderr354 354: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 354 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind354 ../src/curl -q --output log/7/curl354.out --include --trace-ascii log/7/trace354 --trace-time ftp://127.0.0.1:38253/354 > log/7/stdout354 2> log/7/stderr354 === End of file commands.log === Start of file ftp_server.log 10:31:24.970672 ====> Client connect 10:31:24.977772 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:24.982257 < "USER anonymous" 10:31:24.982808 > "331 We are happy you popped in![CR][LF]" 10:31:24.986616 < "PASS ftp@example.com" 10:31:24.987065 > "230 Welcome you silly person[CR][LF]" 10:31:24.990595 < "PWD" 10:31:24.991041 > "257 "/" is current directory[CR][LF]" 10:31:24.993428 < "EPSV" 10:31:24.993932 ====> Passive DATA channel requested by client 10:31:24.994207 DATA sockfilt for passive data channel starting... 10:31:25.018992 DATA sockfilt for passive data channel started (pid 93924) 10:31:25.020401 DATA sockfilt for passive data channel listens on port 42793 10:31:25.021069 > "229 Entering Passive Mode (|||42793|)[LF]" 10:31:25.022223 Client has been notified that DATA conn will be accepted on port 42793 10:31:25.025586 Client connects to port 42793 10:31:25.026142 ====> Client established passive DATA connection on port 42793 10:31:25.030826 < "TYPE I" 10:31:25.031570 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:25.034731 < "SIZE verifiedserver" 10:31:25.035384 > "213 17[CR][LF]" 10:31:25.039795 < "RETR verifiedserver" 10:31:25.040498 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:25.041632 =====> Closing passive DATA connection... 10:31:25.042157 Server disconnects passive DATA connection 10:31:25.044372 Server disconnected passive DATA connection 10:31:25.044851 DATA sockfilt for passive data channel quits (pid 93924) 10:31:25.049835 DATA sockfilt for passive data channel quit (pid 93924) 10:31:25.050300 =====> Closed passive DATA connection 10:31:25.050760 > "226 File transfer complete[CR][LF]" 10:31:25.085694 < "QUIT" 10:31:25.086259 > "221 bye bye baby[CR][LF]" 10:31:25.097984 MAIN sockfilt said DISC 10:31:25.098477 ====> Client disconnected 10:31:25.099084 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:25.640661 ====> Client connect 10:31:25.642346 Received DATA (on stdin) 10:31:25.642614 > 160 bytes data, server => client 10:31:25.648955 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:25.649142 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:25.649212 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:25.651373 < 16 bytes data, client => server 10:31:25.651613 'USER anonymous\r\n' 10:31:25.653755 Received DATA (on stdin) 10:31:25.653900 > 33 bytes data, server => client 10:31:25.653974 '331 We are happy you popped in!\r\n' 10:31:25.657980 < 22 bytes data, client => server 10:31:25.658168 'PASS ftp@example.com\r\n' 10:31:25.658284 Received DATA (on stdin) 10:31:25.658364 > 30 bytes data, server => client 10:31:25.658436 '230 Welcome you silly person\r\n' 10:31:25.659730 < 5 bytes data, client => server 10:31:25.659955 'PWD\r\n' 10:31:25.662030 Received DATA (on stdin) 10:31:25.662217 > 30 bytes data, server => client 10:31:25.662308 '257 "/" is current directory\r\n' 10:31:25.663098 < 6 bytes data, client => server 10:31:25.663248 'EPSV\r\n' 10:31:25.691650 Received DATA (on stdin) 10:31:25.691926 > 38 bytes data, server => client 10:31:25.692326 '229 Entering Passive Mode (|||42793|)\n' 10:31:25.700399 < 8 bytes data, client => server 10:31:25.700739 'TYPE I\r\n' 10:31:25.702220 Received DATA (on stdin) 10:31:25.702558 > 33 bytes data, server => client 10:31:25.702717 '200 I modify TYPE as you wanted\r\n' 10:31:25.704013 < 21 bytes data, client => server 10:31:25.704486 'SIZE verifiedserver\r\n' 10:31:25.706460 Received DATA (on stdin) 10:31:25.706719 > 8 bytes data, server => client 10:31:25.706830 '213 17\r\n' 10:31:25.709516 < 21 bytes data, client => server 10:31:25.709800 'RETR verifiedserver\r\n' 10:31:25.711112 Received DATA (on stdin) 10:31:25.711419 > 29 bytes data, server => client 10:31:25.711565 '150 Binary junk (17 bytes).\r\n' 10:31:25.722300 Received DATA (on stdin) 10:31:25.722595 > 28 bytes data, server => client 10:31:25.722771 '226 File transfer complete\r\n' 10:31:25.756698 < 6 bytes data, client => server 10:31:25.756918 'QUIT\r\n' 10:31:25.757049 Received DATA (on stdin) 10:31:25.757152 > 18 bytes data, server => client 10:31:25.757236 '221 bye bye baby\r\n' 10:31:25.760485 ====> Client disconnect 10:31:25.769080 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:25.678550 Running IPv4 version 10:31:25.688412 Listening on port 42793 10:31:25.688965 Wrote pid 93924 to log/7/server/ftp_sockdata.pid 10:31:25.689176 Received PING (on stdin) 10:31:25.690189 Received PORT (on stdin) 10:31:25.695561 ====> Client connect 10:31:25.712849 ReceiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind357 ../src/curl -q --output log/5/curl357.out --include --trace-ascii log/5/trace357 --trace-time http://127.0.0.1:41733/we/want/357 -T log/5/test357.txt --expect100-timeout 99 > log/5/stdout357 2> log/5/stderr357 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind360 ../src/curl -q --output log/4/curl360.out --include --trace-ascii log/4/trace360 --trace-time http://127.0.0.1:36757/360 --fail-with-body --fail > log/4/stdout360 2> log/4/stderr360 ved DATA (on stdin) 10:31:25.713069 > 17 bytes data, server => client 10:31:25.713198 'WE ROOLZ: 79543\r\n' 10:31:25.713660 Received DISC (on stdin) 10:31:25.713881 ====> Client forcibly disconnected 10:31:25.715816 Received QUIT (on stdin) 10:31:25.716093 quits 10:31:25.716616 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY USER 200 fine, proceed without password Testnum 354 === End of file server.cmd === Start of file valgrind354 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind354 test 0357...[HTTP PUT with Expect: 100-continue and 417 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind357 ../src/curl -q --output log/5/curl357.out --include --trace-ascii log/5/trace357 --trace-time http://127.0.0.1:41733/we/want/357 -T log/5/test357.txt --expect100-timeout 99 > log/5/stdout357 2> log/5/stderr357 357: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 357 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind357 ../src/curl -q --output log/5/curl357.out --include --trace-ascii log/5/trace357 --trace-time http://127.0.0.1:41733/we/want/357 -T log/5/test357.txt --expect100-timeout 99 > log/5/stdout357 2> log/5/stderr357 === End of file commands.log === Start of file http_server.log 10:31:25.749415 ====> Client connect 10:31:25.749747 accept_connection 3 returned 4 10:31:25.749931 accept_connection 3 returned 0 10:31:25.750074 Read 93 bytes 10:31:25.750174 Process 93 bytes request 10:31:25.750271 Got request: GET /verifiedserver HTTP/1.1 10:31:25.750352 Are-we-friendly question received 10:31:25.750589 Wrote request (93 bytes) input to log/5/server.input 10:31:25.750747 Identifying ourselves as friends 10:31:25.751392 Response sent (56 bytes) and written to log/5/server.response 10:31:25.751514 special request received, no persistency 10:31:25.751575 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36034 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd no-expect Testnum 357 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file test357.txt xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind361 ../src/curl -q --output log/3/curl361.out --include --trace-ascii log/3/trace361 --trace-time http://127.0.0.1:36933/361 http://127.0.0.1:36933/361 --fail-with-body > log/3/stdout361 2> log/3/stderr361 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx === End of file test357.txt === Start of file valgrind357 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind357 test 0360...[Error on both --fail-with-body and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind360 ../src/curl -q --output log/4/curl360.out --include --trace-ascii log/4/trace360 --trace-time http://127.0.0.1:36757/360 --fail-with-body --fail > log/4/stdout360 2> log/4/stderr360 curl returned 1, when expecting 2 360: exit FAILED == Contents of files in the log/4/ dir after test 360 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind360 ../src/curl -q --output log/4/curl360.out --include --trace-ascii log/4/trace360 --trace-time http://127.0.0.1:36757/360 --fail-with-body --fail > log/4/stdout360 2> log/4/stderr360 === End of file commands.log === Start of file http_server.log 10:31:26.013836 ====> Client connect 10:31:26.014297 accept_connection 3 returned 4 10:31:26.014696 accept_connection 3 returned 0 10:31:26.015018 Read 93 bytes 10:31:26.015275 Process 93 bytes request 10:31:26.015427 Got request: GET /verifiedserver HTTP/1.1 10:31:26.015516 Are-we-friendly question received 10:31:26.015811 Wrote request (93 bytes) input to log/4/server.input 10:31:26.016156 Identifying ourselves as friends 10:31:26.017540 Response sent (56 bytes) and written to log/4/server.response 10:31:26.017722 special request received, no persistency 10:31:26.017821 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33074 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 360 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind360 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind360 test 0361...[HTTP GET --fail-with-body on HTTP error return - twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind361 ../src/curl -q --output log/3/curl361.out --include --trace-ascii log/3/trace361 --trace-time http://127.0.0.1:36933/361 http://127.0.0.1:36933/361 --fail-with-body > log/3/stdout361 2> log/3/stderr361 361: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 361 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind361 ../src/curl -q --output log/3/curl361.out --include --trace-ascii log/3/trace361 --trace-time http://127.0.0.1:36933/361 http://127.0.0.1:36933/361 --fail-with-body > log/3/stdout361 2> log/3/stderr361 === End of file commands.log === Start of file http_server.log 10:31:25.282485 ====> Client connect 10:31:25.282850 accept_connection 3 returned 4 10:31:25.283072 accept_connection 3 returned 0 10:31:25.283228 Read 93 bytes 10:31:25.283336 Process 93 bytes request 10:31:25.283429 Got request: GET /verifiedserver HTTP/1.1 10:31:25.283515 Are-we-friendly question received 10:31:25.283790 Wrote request (93 bytes) input to log/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind365 ../src/curl -q --output log/6/curl365.out --include --trace-ascii log/6/trace365 --trace-time http://127.0.0.1:33363/365 > log/6/stdout365 2> log/6/stderr365 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind366 ../src/curl -q --output log/2/curl366.out --include --trace-ascii log/2/trace366 --trace-time http://127.0.0.1:43789/366 --retry 2 --retry-max-time 10 > log/2/stdout366 2> log/2/stderr366 3/server.input 10:31:25.283998 Identifying ourselves as friends 10:31:25.285009 Response sent (56 bytes) and written to log/3/server.response 10:31:25.285218 special request received, no persistency 10:31:25.285299 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45612 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 361 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind361 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind361 test 0365...[HTTP/1.1 with chunked AND Content-Length headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind365 ../src/curl -q --output log/6/curl365.out --include --trace-ascii log/6/trace365 --trace-time http://127.0.0.1:33363/365 > log/6/stdout365 2> log/6/stderr365 365: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 365 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind365 ../src/curl -q --output log/6/curl365.out --include --trace-ascii log/6/trace365 --trace-time http://127.0.0.1:33363/365 > log/6/stdout365 2> log/6/stderr365 === End of file commands.log === Start of file http_server.log 10:31:25.656301 ====> Client connect 10:31:25.656699 accept_connection 3 returned 4 10:31:25.656909 accept_connection 3 returned 0 10:31:25.657046 Read 93 bytes 10:31:25.657154 Process 93 bytes request 10:31:25.657277 Got request: GET /verifiedserver HTTP/1.1 10:31:25.657382 Are-we-friendly question received 10:31:25.657659 Wrote request (93 bytes) input to log/6/server.input 10:31:25.657855 Identifying ourselves as friends 10:31:25.658566 Response sent (56 bytes) and written to log/6/server.response 10:31:25.658744 special request received, no persistency 10:31:25.658816 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 34586 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 365 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind365 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind365 test 0366...[HTTP --retry-max-time with too long Retry-After] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind366 ../src/curl -q --output log/2/curl366.out --include --trace-ascii log/2/trace366 --trace-time http://127.0.0.1:43789/366 --retry 2 --retry-max-time 10 > log/2/stdout366 2> log/2/stderr366 366: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 366 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind366 ../src/curl -q --output log/2/curl366.out --include --trace-ascii log/2/trace366 --trace-time http://127.0.0.1:43789/366 --retry 2 --retry-max-time 10 > log/2/stdout366 2> log/2/stderr366 === End of file commands.log === Start of file http_server.log 10:31:25.696539 ====> Client connect 10:31:25.697104 accept_connection 3 returned 4 10:31:25.697429 accept_connection 3 returned 0 10:31:25.697606 Read 93 bytes 10:31:25.697725 Process 93 bytes request 10:31:25.697859 Got request: GET /verifiedserver HTTP/1.1 10:31:25.697990 Are-we-friendly question received 10:31:25.698253 Wrote request (93 bytes) input to log/2/server.input 10:31:25.698514 Identifying ourselves as friends 10:31:25.699576 Response sent (56 bytes) and written to log/2/server.response 10:31:25.699824 special request received, no persistency 10:31:25.699953 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 poCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind362 ../src/curl -q --output log/8/curl362.out --include --trace-ascii log/8/trace362 --trace-time ftp://127.0.0.1:42977/362 -T log/8/test362.txt --continue-at - > log/8/stdout362 2> log/8/stderr362 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind367 ../src/curl -q --output log/7/curl367.out --include --trace-ascii log/7/trace367 --trace-time http://:example@127.0.0.1:40129/367 > log/7/stdout367 2> log/7/stderr367 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind368 ../src/curl -q --output log/1/curl368.out --include --trace-ascii log/1/trace368 --trace-time http://127.0.0.1:36129/368 -r 4 > log/1/stdout368 2> log/1/stderr368 rt 53792 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 366 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind366 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind366 test 0362...[FTP resume upload file with nothing to start from] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind362 ../src/curl -q --output log/8/curl362.out --include --trace-ascii log/8/trace362 --trace-time ftp://127.0.0.1:42977/362 -T log/8/test362.txt --continue-at - > log/8/stdout362 2> log/8/stderr362 362: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 362 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind362 ../src/curl -q --output log/8/curl362.out --include --trace-ascii log/8/trace362 --trace-time ftp://127.0.0.1:42977/362 -T log/8/test362.txt --continue-at - > log/8/stdout362 2> log/8/stderr362 === End of file commands.log === Start of file ftp_server.log 10:31:25.847449 ====> Client connect 10:31:25.848861 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:25.856929 < "USER anonymous" 10:31:25.857710 > "331 We are happy you popped in![CR][LF]" 10:31:25.862530 < "PASS ftp@example.com" 10:31:25.863029 > "230 Welcome you silly person[CR][LF]" 10:31:25.866970 < "PWD" 10:31:25.869762 > "257 "/" is current directory[CR][LF]" 10:31:25.875980 < "EPSV" 10:31:25.876392 ====> Passive DATA channel requested by client 10:31:25.876679 DATA sockfilt for passive data channel starting... 10:31:25.888461 DATA sockfilt for passive data channel started (pid 94353) 10:31:25.889790 DATA sockfilt for passive data channel listens on port 37599 10:31:25.890390 > "229 Entering Passive Mode (|||37599|)[LF]" 10:31:25.890676 Client has been notified that DATA conn will be accepted on port 37599 10:31:25.893831 Client connects to port 37599 10:31:25.894223 ====> Client established passive DATA connection on port 37599 10:31:25.895036 < "TYPE I" 10:31:25.895492 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:25.898674 < "SIZE verifiedserver" 10:31:25.899182 > "213 17[CR][LF]" 10:31:25.901130 < "RETR verifiedserver" 10:31:25.901955 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:25.902815 =====> Closing passive DATA connection... 10:31:25.903064 Server disconnects passive DATA connection 10:31:25.905025 Server disconnected passive DATA connection 10:31:25.905421 DATA sockfilt for passive data channel quits (pid 94353) 10:31:25.907236 DATA sockfilt for passive data channel quit (pid 94353) 10:31:25.907592 =====> Closed passive DATA connection 10:31:25.908203 > "226 File transfer complete[CR][LF]" 10:31:25.952780 < "QUIT" 10:31:25.953620 > "221 bye bye baby[CR][LF]" 10:31:25.957851 MAIN sockfilt said DISC 10:31:25.958494 ====> Client disconnected 10:31:25.959251 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:25.516710 ====> Client connect 10:31:25.519411 Received DATA (on stdin) 10:31:25.519713 > 160 bytes data, server => client 10:31:25.519863 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:25.519985 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:25.520176 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:25.524226 < 16 bytes data, client => server 10:31:25.524485 'USER anonymous\r\n' 10:31:25.528314 Received DATA (on stdin) 10:31:25.528559 > 33 bytes data, server => client 10:31:25.528677 '331 We are happy you popped in!\r\n' 10:31:25.532216 < 22 bytes data, client => server 10:31:25.532497 'PASS ftp@example.com\r\n' 10:31:25.533633 Received DATA (on stdin) 10:31:25.533825 > 30 bytes data, server => client 10:31:25.533935 '230 Welcome you silly person\r\n' 10:31:25.536330 < 5 bytes data, client => server 10:31:25.536606 'PWD\r\n' 10:31:25.537992 Received DATA (on stdin) 10:31:25.538152 > 30 bytes data, server => client 10:31:25.539576 '257 "/" is current directory\r\n' 10:31:25.545424 < 6 bytes data, client => server 10:31:25.545632 'EPSV\r\n' 10:31:25.561851 Received DATA (on stdin) 10:31:25.562063 > 38 bytes data, server => client 10:31:25.562168 '229 Entering Passive Mode (|||37599|)\n' 10:31:25.563450 < 8 bytes data, client => server 10:31:25.563667 'TYPE I\r\n' 10:31:25.566415 Received DATA (on stdin) 10:31:25.566604 > 33 bytes data, server => client 10:31:25.566696 '200 I modify TYPE as you wanted\r\n' 10:31:25.567988 < 21 bytes data, client => server 10:31:25.568313 'SIZE verifiedserver\r\n' 10:31:25.570083 Received DATA (on stdin) 10:31:25.570246 > 8 bytes data, server => client 10:31:25.570328 '213 17\r\n' 10:31:25.570994 < 21 bytes data, client => server 10:31:25.571198 'RETR verifiedserver\r\n' 10:31:25.573744 Received DATA (on stdin) 10:31:25.573910 > 29 bytes data, server => client 10:31:25.574006 '150 Binary junk (17 bytes).\r\n' 10:31:25.578774 Received DATA (on stdin) 10:31:25.578947 > 28 bytes data, server => client 10:31:25.579046 '226 File transfer complete\r\n' 10:31:25.620331 < 6 bytes data, client => server 10:31:25.620558 'QUIT\r\n' 10:31:25.624214 Received DATA (on stdin) 10:31:25.624495 > 18 bytes data, server => client 10:31:25.624628 '221 bye bye baby\r\n' 10:31:25.625420 ====> Client disconnect 10:31:25.629090 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:25.557442 Running IPv4 version 10:31:25.558057 Listening on port 37599 10:31:25.558548 Wrote pid 94353 to log/8/server/ftp_sockdata.pid 10:31:25.558728 Received PING (on stdin) 10:31:25.559563 Received PORT (on stdin) 10:31:25.563968 ====> Client connect 10:31:25.573043 Received DATA (on stdin) 10:31:25.573232 > 17 bytes data, server => client 10:31:25.573329 'WE ROOLZ: 86552\r\n' 10:31:25.575200 Received DISC (on stdin) 10:31:25.575443 ====> Client forcibly disconnected 10:31:25.576410 Received QUIT (on stdin) 10:31:25.576569 quits 10:31:25.576999 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 362 === End of file server.cmd === Start of file test362.txt data to see that FTP works so does it? === End of file test362.txt === Start of file valgrind362 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind362 test 0368...[Append dash if -r range specified without one] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind368 ../src/curl -q --output log/1/curl368.out --include --trace-ascii log/1/trace368 --trace-time http://127.0.0.1:36129/368 -r 4 > log/1/stdout368 2> log/1/stderr368 368: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 368 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind368 ../src/curl -q --output log/1/curl368.out --include --trace-ascii log/1/trace368 --trace-time http://127.0.0.1:36129/368 -r 4 > log/1/stdout368 2> log/1/stderr368 === End of file commands.log === Start of file http_server.log 10:31:25.815140 ====> Client connect 10:31:25.815483 accept_connection 3 returned 4 10:31:25.815685 accept_connection 3 returned 0 10:31:25.815824 Read 93 bytes 10:31:25.815914 Process 93 bytes request 10:31:25.816083 Got request: GET /verifiedserver HTTP/1.1 10:31:25.816204 Are-we-friendly question received 10:31:25.816472 Wrote request (93 bytes) input to log/1/server.input 10:31:25.816687 Identifying ourselves as friends 10:31:25.817427 Response sent (56 bytes) and written to log/1/server.response 10:31:25.817594 special request received, no persistency 10:31:25.817672 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 39404 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 368 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind368 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind368 test 0367...[Empty user name provided in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind367 ../src/curl -q --output log/7/curl367.out --include --trace-ascii log/7/trace367 --trace-time http://:example@127.0.0.1:40129/367 > log/7/stdout367 2> log/7/stderr367 367: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 367 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind367 ../src/curl -q --output log/7/curl367.out --include --trace-ascii log/7/trace367 --trace-time http://:example@127.0.0.1:40129/367 > log/7/stdout367 2> log/7/stderr367 === End of file commands.log === Start of file http_server.log 10:31:25.723127 ====> Client connect 10:31:25.723490 accept_connection 3 returned 4 10:31:25.723721 accept_connection 3 returned 0 10:31:25.725011 Read 93 bytes 10:31:25.725286 Process 93 bytes request 10:31:25.725416 Got request: GET /verifiedserver HTTP/1.1 10:31:25.725502 Are-we-friendly question received 10:31:25.725794 Wrote request (93 bytes) input to log/7/server.input 10:31:25.726074 Identifying ourselves as friends 10:31:25.726834 Response sent (56 bytes) and written to log/7/server.response 10:31:25.726990 special request received, no persistency 10:31:25.727080 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 58690 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 367 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind367 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind370 ../src/curl -q --output log/4/curl370.out --include --trace-ascii log/4/trace370 --trace-time http://127.0.0.1:47/370 --etag-save log/4/nowhere/etag370 > log/4/stdout370 2> log/4/stderr370 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind369 ../src/curl -q --output log/5/curl369.out --include --trace-ascii log/5/trace369 --trace-time http://127.0.0.1:41733/369 --etag-save log/5/nowhere/etag369 --next http://127.0.0.1:41733/369 --include --output log/5/curl369.out > log/5/stdout369 2> log/5/stderr369 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind371 ../src/curl -q --output log/3/curl371.out --include --trace-ascii log/3/trace371 --trace-time http://127.0.0.1:36933/371 -o log/3/dump -o log/3/dump2 --no-progress-meter > log/3/stdout371 2> log/3/stderr371 Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind367 test 0370...[--etag-save with bad path - no transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind370 ../src/curl -q --output log/4/curl370.out --include --trace-ascii log/4/trace370 --trace-time http://127.0.0.1:47/370 --etag-save log/4/nowhere/etag370 > log/4/stdout370 2> log/4/stderr370 curl returned 1, when expecting 26 370: exit FAILED == Contents of files in the log/4/ dir after test 370 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind370 ../src/curl -q --output log/4/curl370.out --include --trace-ascii log/4/trace370 --trace-time http://127.0.0.1:47/370 --etag-save log/4/nowhere/etag370 > log/4/stdout370 2> log/4/stderr370 === End of file commands.log === Start of file server.cmd Testnum 370 === End of file server.cmd === Start of file valgrind370 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind370 test 0369...[--etag-save with bad path then working transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind369 ../src/curl -q --output log/5/curl369.out --include --trace-ascii log/5/trace369 --trace-time http://127.0.0.1:41733/369 --etag-save log/5/nowhere/etag369 --next http://127.0.0.1:41733/369 --include --output log/5/curl369.out > log/5/stdout369 2> log/5/stderr369 369: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 369 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind369 ../src/curl -q --output log/5/curl369.out --include --trace-ascii log/5/trace369 --trace-time http://127.0.0.1:41733/369 --etag-save log/5/nowhere/etag369 --next http://127.0.0.1:41733/369 --include --output log/5/curl369.out > log/5/stdout369 2> log/5/stderr369 === End of file commands.log === Start of file http_server.log 10:31:27.046576 ====> Client connect 10:31:27.046935 accept_connection 3 returned 4 10:31:27.047119 accept_connection 3 returned 0 10:31:27.047239 Read 93 bytes 10:31:27.047317 Process 93 bytes request 10:31:27.047396 Got request: GET /verifiedserver HTTP/1.1 10:31:27.047461 Are-we-friendly question received 10:31:27.047712 Wrote request (93 bytes) input to log/5/server.input 10:31:27.047913 Identifying ourselves as friends 10:31:27.048895 Response sent (56 bytes) and written to log/5/server.response 10:31:27.049027 special request received, no persistency 10:31:27.049087 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36050 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 369 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind369 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind369 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind372 ../src/curl -q --output log/6/curl372.out --include --trace-ascii log/6/trace372 --trace-time --raw http://127.0.0.1:33363/binary-zero-in-data-section/372 > log/6/stdout372 2> log/6/stderr372 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind378 ../src/curl -q --output log/4/curl378.out --include --trace-ascii log/4/trace378 --trace-time -T log/4/378 -d input http://never-accessed > log/4/stdout378 2> log/4/stderr378 test 0371...[using more -o than URLs in the command line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind371 ../src/curl -q --output log/3/curl371.out --include --trace-ascii log/3/trace371 --trace-time http://127.0.0.1:36933/371 -o log/3/dump -o log/3/dump2 --no-progress-meter > log/3/stdout371 2> log/3/stderr371 371: stderr FAILED: --- log/3/check-expected 2025-09-11 10:31:27.423804152 +0000 +++ log/3/check-generated 2025-09-11 10:31:27.423804152 +0000 @@ -1 +0,0 @@ -Warning: Got more output options than URLs[CR][LF] == Contents of files in the log/3/ dir after test 371 === Start of file check-expected Warning: Got more output options than URLs[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind371 ../src/curl -q --output log/3/curl371.out --include --trace-ascii log/3/trace371 --trace-time http://127.0.0.1:36933/371 -o log/3/dump -o log/3/dump2 --no-progress-meter > log/3/stdout371 2> log/3/stderr371 === End of file commands.log === Start of file http_server.log 10:31:26.228795 ====> Client connect 10:31:26.229299 accept_connection 3 returned 4 10:31:26.231757 accept_connection 3 returned 0 10:31:26.232145 Read 93 bytes 10:31:26.232334 Process 93 bytes request 10:31:26.232468 Got request: GET /verifiedserver HTTP/1.1 10:31:26.232568 Are-we-friendly question received 10:31:26.236628 Wrote request (93 bytes) input to log/3/server.input 10:31:26.237141 Identifying ourselves as friends 10:31:26.238156 Response sent (56 bytes) and written to log/3/server.response 10:31:26.238312 special request received, no persistency 10:31:26.238391 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45620 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 371 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind371 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind371 test 0372...[Binary zero in data element.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind372 ../src/curl -q --output log/6/curl372.out --include --trace-ascii log/6/trace372 --trace-time --raw http://127.0.0.1:33363/binary-zero-in-data-section/372 > log/6/stdout372 2> log/6/stderr372 372: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 372 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind372 ../src/curl -q --output log/6/curl372.out --include --trace-ascii log/6/trace372 --trace-time --raw http://127.0.0.1:33363/binary-zero-in-data-section/372 > log/6/stdout372 2> log/6/stderr372 === End of file commands.log === Start of file http_server.log 10:31:26.707429 ====> Client connect 10:31:26.707702 accept_connection 3 returned 4 10:31:26.707847 accept_connection 3 returned 0 10:31:26.707967 Read 93 bytes 10:31:26.708208 Process 93 bytes request 10:31:26.708321 Got request: GET /verifiedserver HTTP/1.1 10:31:26.708450 Are-we-friendly question received 10:31:26.708708 Wrote request (93 bytes) input to log/6/server.input 10:31:26.708891 Identifying ourselves as friends 10:31:26.709663 Response sent (56 bytes) and written to log/6/server.response 10:31:26.709833 special request received, no persistency 10:31:26.709901 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 34590 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 372 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind372 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind372 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind373 ../src/curl -q --output log/2/curl373.out --include --trace-ascii log/2/trace373 --trace-time http://127.0.0.1:43789/chunked-transfer-encoding/373 > log/2/stdout373 2> log/2/stderr373 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind374 ../src/curl -q --output log/8/curl374.out --include --trace-ascii log/8/trace374 --trace-time http://127.0.0.1:36007/gif/374 > log/8/stdout374 2> log/8/stderr374 test 0378...[Reject using -T and -d at once] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind378 ../src/curl -q --output log/4/curl378.out --include --trace-ascii log/4/trace378 --trace-time -T log/4/378 -d input http://never-accessed > log/4/stdout378 2> log/4/stderr378 378: stderr FAILED: --- log/4/check-expected 2025-09-11 10:31:27.815811955 +0000 +++ log/4/check-generated 2025-09-11 10:31:27.811811875 +0000 @@ -1,2 +0,0 @@ -Warning: You can only select one HTTP request method! You asked for both PUT [CR][LF] -Warning: (-T, --upload-file) and POST (-d, --data).[CR][LF] == Contents of files in the log/4/ dir after test 378 === Start of file check-expected Warning: You can only select one HTTP request method! You asked for both PUT [CR][LF] Warning: (-T, --upload-file) and POST (-d, --data).[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind378 ../src/curl -q --output log/4/curl378.out --include --trace-ascii log/4/trace378 --trace-time -T log/4/378 -d input http://never-accessed > log/4/stdout378 2> log/4/stderr378 === End of file commands.log === Start of file server.cmd Testnum 378 === End of file server.cmd === Start of file valgrind378 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind378 test 0373...[Chunked transfer encoding - Multiple valid chunks with binary zeros.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind373 ../src/curl -q --output log/2/curl373.out --include --trace-ascii log/2/trace373 --trace-time http://127.0.0.1:43789/chunked-transfer-encoding/373 > log/2/stdout373 2> log/2/stderr373 373: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 373 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind373 ../src/curl -q --output log/2/curl373.out --include --trace-ascii log/2/trace373 --trace-time http://127.0.0.1:43789/chunked-transfer-encoding/373 > log/2/stdout373 2> log/2/stderr373 === End of file commands.log === Start of file http_server.log 10:31:26.746697 ====> Client connect 10:31:26.747056 accept_connection 3 returned 4 10:31:26.747319 accept_connection 3 returned 0 10:31:26.747490 Read 93 bytes 10:31:26.747578 Process 93 bytes request 10:31:26.747667 Got request: GET /verifiedserver HTTP/1.1 10:31:26.747738 Are-we-friendly question received 10:31:26.748119 Wrote request (93 bytes) input to log/2/server.input 10:31:26.748407 Identifying ourselves as friends 10:31:26.749458 Response sent (56 bytes) and written to log/2/server.response 10:31:26.749668 special request received, no persistency 10:31:26.749746 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 53798 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 373 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind373 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind373 test 0374...[Valid gif with two frames. No new line in data section.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind374 ../src/curl -q --output log/8/curl374.out --include --trace-ascii log/8/trace374 --trace-time http://127.0.0.1:36007/gif/374 > log/8/stdout374 2> log/8/stderr374 374: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 374 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind374 ../src/curl -q --output log/8/curl374.out --include --trace-ascii log/8/trace374 --trace-time http://127.0.0.1:36007/gif/374 > log/8/stdout374 2> log/8/stderr374 === End of file commands.log === Start of file http_server.log 10:31:26.802204 ====> Client connect 10:31:26.802537 accept_connection 3 returned 4 10:31:26.802728 accept_connection 3 returned 0 10:31:26.802860 Read 93 bytes 10:31:26.802956 Process 93 bytes request 10:31:26.803059 Got request: GET /verifiedserver HTTP/1.1 10:31:26.803145 Are-we-friCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind376 ../src/curl -q --include --trace-ascii log/7/trace376 --trace-time http://127.0.0.1:40129/376 -o log/7/save-376 --remove-on-error > log/7/stdout376 2> log/7/stderr376 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind379 ../src/curl -q --include --trace-ascii log/1/trace379 --trace-time http://127.0.0.1:36129/379 -o log/1/save --remove-on-error --no-clobber > log/1/stdout379 2> log/1/stderr379 endly question received 10:31:26.803406 Wrote request (93 bytes) input to log/8/server.input 10:31:26.803600 Identifying ourselves as friends 10:31:26.804535 Response sent (56 bytes) and written to log/8/server.response 10:31:26.804694 special request received, no persistency 10:31:26.804771 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 40946 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 374 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind374 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind374 test 0376...[--remove-on-error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind376 ../src/curl -q --include --trace-ascii log/7/trace376 --trace-time http://127.0.0.1:40129/376 -o log/7/save-376 --remove-on-error > log/7/stdout376 2> log/7/stderr376 376: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 376 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind376 ../src/curl -q --include --trace-ascii log/7/trace376 --trace-time http://127.0.0.1:40129/376 -o log/7/save-376 --remove-on-error > log/7/stdout376 2> log/7/stderr376 === End of file commands.log === Start of file http_server.log 10:31:26.832210 ====> Client connect 10:31:26.832575 accept_connection 3 returned 4 10:31:26.832775 accept_connection 3 returned 0 10:31:26.832911 Read 93 bytes 10:31:26.833002 Process 93 bytes request 10:31:26.833095 Got request: GET /verifiedserver HTTP/1.1 10:31:26.833163 Are-we-friendly question received 10:31:26.833408 Wrote request (93 bytes) input to log/7/server.input 10:31:26.833589 Identifying ourselves as friends 10:31:26.834265 Response sent (56 bytes) and written to log/7/server.response 10:31:26.834381 special request received, no persistency 10:31:26.834454 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 58698 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 376 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind376 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind376 test 0379...[--remove-on-error with --no-clobber and an added number] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind379 ../src/curl -q --include --trace-ascii log/1/trace379 --trace-time http://127.0.0.1:36129/379 -o log/1/save --remove-on-error --no-clobber > log/1/stdout379 2> log/1/stderr379 379: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 379 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind379 ../src/curl -q --include --trace-ascii log/1/trace379 --trace-time http://127.0.0.1:36129/379 -o log/1/save --remove-on-error --no-clobber > log/1/stdout379 2> log/1/stderr379 === End of file commands.log === Start of file http_server.log 10:31:26.966121 ====> Client connect 10:31:26.966660 accept_connection 3 returned 4 10:31:26.966929 accept_connection 3 returned 0 10:31:26.967113 Read 93 bytes 10:31:26.967233 Process 93 bytes request 10:31:26.967336 Got request: GET /verifiedserver HTTP/1.1 10:31:26.967413 Are-we-friendly question received 10:31:26.967697 Wrote request (93 bytes) input to log/1/server.input 10:31:26.967923 Identifying ourselves as friends 10:31:26.969093 Response sent (56 bytes) and written to log/1/server.response 10:31:26.969314 special request received, no persistency 10:31:26.969431 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind380 ../src/curl -q --output log/5/curl380.out --include --trace-ascii log/5/trace380 --trace-time --netrc --netrc-file log/5/netrc380 ftp://mary@127.0.0.1:43393/ > log/5/stdout380 2> log/5/stderr380 .0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 39418 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file save exists before command runs === End of file save === Start of file server.cmd Testnum 379 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind379 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind379 test 0380...[pick netrc password based on user name in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind380 ../src/curl -q --output log/5/curl380.out --include --trace-ascii log/5/trace380 --trace-time --netrc --netrc-file log/5/netrc380 ftp://mary@127.0.0.1:43393/ > log/5/stdout380 2> log/5/stderr380 380: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 380 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind380 ../src/curl -q --output log/5/curl380.out --include --trace-ascii log/5/trace380 --trace-time --netrc --netrc-file log/5/netrc380 ftp://mary@127.0.0.1:43393/ > log/5/stdout380 2> log/5/stderr380 === End of file commands.log === Start of file ftp_server.log 10:31:27.393022 ====> Client connect 10:31:27.394515 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:27.399502 < "USER anonymous" 10:31:27.400127 > "331 We are happy you popped in![CR][LF]" 10:31:27.403438 < "PASS ftp@example.com" 10:31:27.405413 > "230 Welcome you silly person[CR][LF]" 10:31:27.407329 < "PWD" 10:31:27.407930 > "257 "/" is current directory[CR][LF]" 10:31:27.412493 < "EPSV" 10:31:27.417829 ====> Passive DATA channel requested by client 10:31:27.418257 DATA sockfilt for passive data channel starting... 10:31:27.436326 DATA sockfilt for passive data channel started (pid 95063) 10:31:27.437915 DATA sockfilt for passive data channel listens on port 46609 10:31:27.438545 > "229 Entering Passive Mode (|||46609|)[LF]" 10:31:27.438909 Client has been notified that DATA conn will be accepted on port 46609 10:31:27.442925 Client connects to port 46609 10:31:27.443396 ====> Client established passive DATA connection on port 46609 10:31:27.446712 < "TYPE I" 10:31:27.447309 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:27.451777 < "SIZE verifiedserver" 10:31:27.452326 > "213 17[CR][LF]" 10:31:27.458400 < "RETR verifiedserver" 10:31:27.459141 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:27.460101 =====> Closing passive DATA connection... 10:31:27.460497 Server disconnects passive DATA connection 10:31:27.462736 Server disconnected passive DATA connection 10:31:27.463218 DATA sockfilt for passive data channel quits (pid 95063) 10:31:27.465605 DATA sockfilt for passive data channel quit (pid 95063) 10:31:27.466103 =====> Closed passive DATA connection 10:31:27.466684 > "226 File transfer complete[CR][LF]" 10:31:27.503236 < "QUIT" 10:31:27.503804 > "221 bye bye baby[CR][LF]" 10:31:27.506181 MAIN sockfilt said DISC 10:31:27.506718 ====> Client disconnected 10:31:27.507411 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:27.060558 ====> Client connect 10:31:27.065029 Received DATA (on stdin) 10:31:27.065317 > 160 bytes data, server => client 10:31:27.065463 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:27.065570 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:27.065667 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:27.066660 < 16 bytes data, client => server 10:31:27.066892 'USER anonymous\r\n' 10:31:27.071245 Received DATA (on stdin) 10:31:27.071502 > 33 bytes data, server => client 10:31:27.071628 '331 We are happy you popped in!\r\n' 10:31:27.072692 < 22 bytes data, client => server 10:31:27.072945 'PASS ftp@example.com\r\n' 10:31:27.074573 Received DATA (on stdin) 10:31:27.074769 > 30 bytes data, server => client 10:31:27.075927 '230 Welcome you silly person\r\n' 10:31:27.077198 < 5 bytes data, client => server 10:31:27.077430 'PWD\r\n' 10:31:27.080133 Received DATA (on stdin) 10:31:27.080432 > 30 bytes data, server => client 10:31:27.080552 '257 "/" is current directory\r\n' 10:31:27.081487 < 6 bytes data, client => server 10:31:27.081745 'EPSV\r\n' 10:31:27.109461 Received DATA (on stdin) 10:31:27.110230 > 38 bytes data, server => client 10:31:27.110447 '229 Entering Passive Mode (|||46609|)\n' 10:31:27.116242 < 8 bytes data, client => server 10:31:27.116489 'TYPE I\r\n' 10:31:27.118425 Received DATA (on stdin) 10:31:27.118650 > 33 bytes data, server => client 10:31:27.118743 '200 I modify TYPE as you wanted\r\n' 10:31:27.121628 < 21 bytes data, client => server 10:31:27.121860 'SIZE verifiedserver\r\n' 10:31:27.122887 Received DATA (on stdin) 10:31:27.123090 > 8 bytes data, server => client 10:31:27.123206 '213 17\r\n' 10:31:27.127439 < 21 bytes data, client => server 10:31:27.127691 'RETR verifiedserver\r\n' 10:31:27.129702 Received DATA (on stdin) 10:31:27.129924 > 29 bytes data, server => client 10:31:27.130038 '150 Binary junk (17 bytes).\r\n' 10:31:27.137234 Received DATA (on stdin) 10:31:27.137481 > 28 bytes data, server => client 10:31:27.137607 '226 File transfer complete\r\n' 10:31:27.173016 < 6 bytes data, client => server 10:31:27.173271 'QUIT\r\n' 10:31:27.174363 Received DATA (on stdin) 10:31:27.174567 > 18 bytes data, server => client 10:31:27.174691 '221 bye bye baby\r\n' 10:31:27.176267 ====> Client disconnect 10:31:27.178473 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:27.104939 Running IPv4 version 10:31:27.105622 Listening on port 46609 10:31:27.106140 Wrote pid 95063 to log/5/server/ftp_sockdata.pid 10:31:27.106323 Received PING (on stdin) 10:31:27.107533 Received PORT (on stdin) 10:31:27.113025 ====> Client connect 10:31:27.132106 Received DATA (on stdin) 10:31:27.132360 > 17 bytes data, server => client 10:31:27.132498 'WE ROOLZ: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind381 ../src/curl -q --output log/3/curl381.out --include --trace-ascii log/3/trace381 --trace-time --netrc-optional --netrc-file log/3/netrc381 ftp://mary:drfrank@127.0.0.1:33831/ > log/3/stdout381 2> log/3/stderr381 79602\r\n' 10:31:27.132903 Received DISC (on stdin) 10:31:27.133122 ====> Client forcibly disconnected 10:31:27.134417 Received QUIT (on stdin) 10:31:27.134640 quits 10:31:27.135117 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc380 # the following two lines were created while testing curl machine 127.0.0.1 login frankenstein password wrongone machine 127.0.0.1 login mary password yram === End of file netrc380 === Start of file server.cmd Testnum 380 === End of file server.cmd === Start of file valgrind380 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind380 test 0381...[netrc-optional lets URL creds override netrc] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind381 ../src/curl -q --output log/3/curl381.out --include --trace-ascii log/3/trace381 --trace-time --netrc-optional --netrc-file log/3/netrc381 ftp://mary:drfrank@127.0.0.1:33831/ > log/3/stdout381 2> log/3/stderr381 381: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 381 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind381 ../src/curl -q --output log/3/curl381.out --include --trace-ascii log/3/trace381 --trace-time --netrc-optional --netrc-file log/3/netrc381 ftp://mary:drfrank@127.0.0.1:33831/ > log/3/stdout381 2> log/3/stderr381 === End of file commands.log === Start of file ftp_server.log 10:31:27.661108 ====> Client connect 10:31:27.663887 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:27.668317 < "USER anonymous" 10:31:27.669199 > "331 We are happy you popped in![CR][LF]" 10:31:27.679462 < "PASS ftp@example.com" 10:31:27.685762 > "230 Welcome you silly person[CR][LF]" 10:31:27.692271 < "PWD" 10:31:27.692981 > "257 "/" is current directory[CR][LF]" 10:31:27.696325 < "EPSV" 10:31:27.696891 ====> Passive DATA channel requested by client 10:31:27.697288 DATA sockfilt for passive data channel starting... 10:31:27.712801 DATA sockfilt for passive data channel started (pid 95231) 10:31:27.714563 DATA sockfilt for passive data channel listens on port 38097 10:31:27.716508 > "229 Entering Passive Mode (|||38097|)[LF]" 10:31:27.717025 Client has been notified that DATA conn will be accepted on port 38097 10:31:27.718168 Client connects to port 38097 10:31:27.718689 ====> Client established passive DATA connection on port 38097 10:31:27.720565 < "TYPE I" 10:31:27.722630 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:27.724697 < "SIZE verifiedserver" 10:31:27.725405 > "213 17[CR][LF]" 10:31:27.728700 < "RETR verifiedserver" 10:31:27.729399 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:27.731169 =====> Closing passive DATA connection... 10:31:27.731610 Server disconnects passive DATA connection 10:31:27.733389 Server disconnected passive DATA connection 10:31:27.733991 DATA sockfilt for passive data channel quits (pid 95231) 10:31:27.736393 DATA sockfilt for passive data channel quit (pid 95231) 10:31:27.736862 =====> Closed passive DATA connection 10:31:27.737304 > "226 File transfer complete[CR][LF]" 10:31:27.782716 < "QUIT" 10:31:27.783671 > "221 bye bye baby[CR][LF]" 10:31:27.790502 MAIN sockfilt said DISC 10:31:27.791015 ====> Client disconnected 10:31:27.791825 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:27.329177 ====> Client connect 10:31:27.333563 Received DATA (on stdin) 10:31:27.333939 > 160 bytes data, server => client 10:31:27.335067 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:27.335321 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:27.335433 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:27.337026 < 16 bytes data, client => server 10:31:27.337318 'USER anonymous\r\n' 10:31:27.340598 Received DATA (on stdin) 10:31:27.340948 > 33 bytes data, server => client 10:31:27.341073 '331 We are happy you popped in!\r\n' 10:31:27.348550 < 22 bytes data, client => server 10:31:27.348814 'PASS ftp@example.com\r\n' 10:31:27.350580 Received DATA (on stdin) 10:31:27.350805 > 30 bytes data, server => client 10:31:27.357087 '230 Welcome you silly person\r\n' 10:31:27.361252 < 5 bytes data, client => server 10:31:27.361546 'PWD\r\n' 10:31:27.364030 Received DATA (on stdin) 10:31:27.364260 > 30 bytes data, server => client 10:31:27.364363 '257 "/" is current directory\r\n' 10:31:27.365421 < 6 bytes data, client => server 10:31:27.365677 'EPSV\r\n' 10:31:27.385845 Received DATA (on stdin) 10:31:27.386078 > 38 bytes data, server => client 10:31:27.386371 '229 Entering Passive Mode (|||38097|)\n' 10:31:27.389804 < 8 bytes data, client => server 10:31:27.389986 'TYPE I\r\n' 10:31:27.391758 Received DATA (on stdin) 10:31:27.392107 > 33 bytes data, server => client 10:31:27.392453 '200 I modify TYPE as you wanted\r\n' 10:31:27.393954 < 21 bytes data, client => server 10:31:27.394175 'SIZE verifiedserver\r\n' 10:31:27.396310 Received DATA (on stdin) 10:31:27.396525 > 8 bytes data, server => client 10:31:27.396635 '213 17\r\n' 10:31:27.398451 < 21 bytes data, client => server 10:31:27.398719 'RETR verifiedserver\r\n' 10:31:27.402751 Received DATA (on stdin) 10:31:27.402916 > 29 bytes data, server => client 10:31:27.403075 '150 Binary junk (17 bytes).\r\n' 10:31:27.407862 Received DATA (on stdin) 10:31:27.408277 > 28 bytes data, server => client 10:31:27.408412 '226 File transfer complete\r\n' 10:31:27.446120 < 6 bytes data, client => server 10:31:27.446544 'QUIT\r\n' 10:31:27.454337 Received DATA (on stdin) 10:31:27.454656 > 18 bytes data, server => client 10:31:27.456697 '221 bye bye baby\r\n' 10:31:27.460559 ====> Client disconnect 10:31:27.464855 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:27.381380 Running IPv4 version 10:31:27.382052 Listening on port 38097 10:31:27.382563 Wrote pid 95231 to log/3/server/ftp_sockdata.pid 10:31:27.382825 Received PING (on stdin) 10:31:27.384124 Received PORT (on stdin) 10:31:27.387842 ====> Client connect 10:31:27.400652 Received DATA (on stdin) 10:31:27.400889 > 17 bytes data, server => client 10:31:27.402561 'WE ROOLZ: 79555\r\n' 10:31:27.403066 Received DISC (on stdin) 10:31:27.403313 ====> Client forcibly disconnected 10:31:27.404999 Received QUIT (oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind383 ../src/curl -q --output log/6/curl383.out --include --trace-ascii log/6/trace383 --trace-time --json '{ "drink": "coffee" }' http://127.0.0.1:33363/383 > log/6/stdout383 2> log/6/stderr383 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind384 ../src/curl -q --output log/4/curl384.out --include --trace-ascii log/4/trace384 --trace-time --json @- http://127.0.0.1:36757/384 -H "Accept: foobar/*" log/4/stdout384 2> log/4/stderr384 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind385 ../src/curl -q --output log/2/curl385.out --include --trace-ascii log/2/trace385 --trace-time --json '{ "drink": "coffee",' --json ' "crunch": "cookie" }' http://127.0.0.1:43789/385 -H "Content-Type: drinks/hot" > log/2/stdout385 2> log/2/stderr385 n stdin) 10:31:27.405237 quits 10:31:27.405789 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc381 # the following two lines were created while testing curl machine 127.0.0.1 login frankenstein password wrongone machine 127.0.0.1 login mary password yram === End of file netrc381 === Start of file server.cmd Testnum 381 === End of file server.cmd === Start of file valgrind381 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind381 test 0383...[HTTP with --json] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind383 ../src/curl -q --output log/6/curl383.out --include --trace-ascii log/6/trace383 --trace-time --json '{ "drink": "coffee" }' http://127.0.0.1:33363/383 > log/6/stdout383 2> log/6/stderr383 383: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 383 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind383 ../src/curl -q --output log/6/curl383.out --include --trace-ascii log/6/trace383 --trace-time --json '{ "drink": "coffee" }' http://127.0.0.1:33363/383 > log/6/stdout383 2> log/6/stderr383 === End of file commands.log === Start of file http_server.log 10:31:27.624703 ====> Client connect 10:31:27.625129 accept_connection 3 returned 4 10:31:27.625350 accept_connection 3 returned 0 10:31:27.625554 Read 93 bytes 10:31:27.625683 Process 93 bytes request 10:31:27.625784 Got request: GET /verifiedserver HTTP/1.1 10:31:27.625879 Are-we-friendly question received 10:31:27.626161 Wrote request (93 bytes) input to log/6/server.input 10:31:27.626417 Identifying ourselves as friends 10:31:27.627222 Response sent (56 bytes) and written to log/6/server.response 10:31:27.627391 special request received, no persistency 10:31:27.627479 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 34604 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 383 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind383 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind383 test 0384...[HTTP with --json from stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind384 ../src/curl -q --output log/4/curl384.out --include --trace-ascii log/4/trace384 --trace-time --json @- http://127.0.0.1:36757/384 -H "Accept: foobar/*" log/4/stdout384 2> log/4/stderr384 384: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 384 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind384 ../src/curl -q --output log/4/curl384.out --include --trace-ascii log/4/trace384 --trace-time --json @- http://127.0.0.1:36757/384 -H "Accept: foobar/*" log/4/stdout384 2> log/4/stderr384 === End of file commands.log === Start of file http_server.log 10:31:28.712953 ====> Client connect 10:31:28.713312 accept_connection 3 returned 4 10:31:28.713512 accept_connection 3 returned 0 10:31:28.713687 Read 93 bytes 10:31:28.713803 Process 93 bytes request 10:31:28.713922 Got request: GET /verifiedserver HTTP/1.1 10:31:28.714008 Are-we-friendly question received 10:31:28.714304 Wrote request (93 bytes) input to log/4/server.input 10:31:28.714537 Identifying ourselves as friends 10:31:28.715455 Response sent (56 bytes) and written to log/4/server.response 10:31:28.715632 special request received, no persistency 10:31:28.715711 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33084 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 384 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === EnCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind387 ../src/curl -q --output log/7/curl387.out --include --trace-ascii log/7/trace387 --trace-time http://127.0.0.1:40129/387 -sS --tr-encoding > log/7/stdout387 2> log/7/stderr387 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind386 ../src/curl -q --output log/8/curl386.out --include --trace-ascii log/8/trace386 --trace-time --json '{ "drink": "coffee" }' http://127.0.0.1:36007/386 --next http://127.0.0.1:36007/3860002 > log/8/stdout386 2> log/8/stderr386 d of file server.response === Start of file stdin-for-384 { "drink": "coffee" } === End of file stdin-for-384 === Start of file valgrind384 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind384 test 0385...[HTTP with --json x 2] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind385 ../src/curl -q --output log/2/curl385.out --include --trace-ascii log/2/trace385 --trace-time --json '{ "drink": "coffee",' --json ' "crunch": "cookie" }' http://127.0.0.1:43789/385 -H "Content-Type: drinks/hot" > log/2/stdout385 2> log/2/stderr385 385: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 385 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind385 ../src/curl -q --output log/2/curl385.out --include --trace-ascii log/2/trace385 --trace-time --json '{ "drink": "coffee",' --json ' "crunch": "cookie" }' http://127.0.0.1:43789/385 -H "Content-Type: drinks/hot" > log/2/stdout385 2> log/2/stderr385 === End of file commands.log === Start of file http_server.log 10:31:27.738864 ====> Client connect 10:31:27.739236 accept_connection 3 returned 4 10:31:27.739458 accept_connection 3 returned 0 10:31:27.739618 Read 93 bytes 10:31:27.739724 Process 93 bytes request 10:31:27.739821 Got request: GET /verifiedserver HTTP/1.1 10:31:27.739903 Are-we-friendly question received 10:31:27.740834 Wrote request (93 bytes) input to log/2/server.input 10:31:27.741181 Identifying ourselves as friends 10:31:27.742172 Response sent (56 bytes) and written to log/2/server.response 10:31:27.742376 special request received, no persistency 10:31:27.742476 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 53806 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 385 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind385 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind385 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind389 ../src/curl -q --output log/5/curl389.out --include --trace-ascii log/5/trace389 --trace-time -4 http://curlmachine.localhost:41733/389 > log/5/stdout389 2> log/5/stderr389 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind388 ../src/curl -q --include --trace-ascii log/1/trace388 --trace-time http://127.0.0.1:36129/3880001 -u testuser:testpass --digest http://127.0.0.1:36129/3880002 > log/1/stdout388 2> log/1/stderr388 test 0387...[Response with overly long compression chain] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind387 ../src/curl -q --output log/7/curl387.out --include --trace-ascii log/7/trace387 --trace-time http://127.0.0.1:40129/387 -sS --tr-encoding > log/7/stdout387 2> log/7/stderr387 387: stderr FAILED: --- log/7/check-expected 2025-09-11 10:31:28.927834091 +0000 +++ log/7/check-generated 2025-09-11 10:31:28.923834011 +0000 @@ -1 +0,0 @@ -curl: (61) Reject response due to more than 5 content encodings[CR][LF] == Contents of files in the log/7/ dir after test 387 === Start of file check-expected curl: (61) Reject response due to more than 5 content encodings[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind387 ../src/curl -q --output log/7/curl387.out --include --trace-ascii log/7/trace387 --trace-time http://127.0.0.1:40129/387 -sS --tr-encoding > log/7/stdout387 2> log/7/stderr387 === End of file commands.log === Start of file http_server.log 10:31:27.789759 ====> Client connect 10:31:27.790070 accept_connection 3 returned 4 10:31:27.790238 accept_connection 3 returned 0 10:31:27.790370 Read 93 bytes 10:31:27.790504 Process 93 bytes request 10:31:27.790608 Got request: GET /verifiedserver HTTP/1.1 10:31:27.790711 Are-we-friendly question received 10:31:27.790944 Wrote request (93 bytes) input to log/7/server.input 10:31:27.791163 Identifying ourselves as friends 10:31:27.791937 Response sent (56 bytes) and written to log/7/server.response 10:31:27.792224 special request received, no persistency 10:31:27.792322 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 58712 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 387 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind387 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind387 test 0386...[HTTP with --json + --next] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind386 ../src/curl -q --output log/8/curl386.out --include --trace-ascii log/8/trace386 --trace-time --json '{ "drink": "coffee" }' http://127.0.0.1:36007/386 --next http://127.0.0.1:36007/3860002 > log/8/stdout386 2> log/8/stderr386 386: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 386 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind386 ../src/curl -q --output log/8/curl386.out --include --trace-ascii log/8/trace386 --trace-time --json '{ "drink": "coffee" }' http://127.0.0.1:36007/386 --next http://127.0.0.1:36007/3860002 > log/8/stdout386 2> log/8/stderr386 === End of file commands.log === Start of file http_server.log 10:31:27.767909 ====> Client connect 10:31:27.768410 accept_connection 3 returned 4 10:31:27.768625 accept_connection 3 returned 0 10:31:27.768748 Read 93 bytes 10:31:27.768820 Process 93 bytes request 10:31:27.768904 Got request: GET /verifiedserver HTTP/1.1 10:31:27.768970 Are-we-friendly question received 10:31:27.769200 Wrote request (93 bytes) input to log/8/server.input 10:31:27.769366 Identifying ourselves as friends 10:31:27.770087 Response sent (56 bytes) and written to log/8/server.response 10:31:27.770242 special request received, no persistency 10:31:27.770309 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 40952 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 386 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind386 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind386 test 0389...[*.localhost is a local host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind389 ../src/curl -q --output log/5/curl389.out --include --trace-ascii log/5/trace389 --trace-time -4 http://curlmachine.localhost:41733/389 > log/5/stdout389 2> log/5/stderr389 389: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 389 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind389 ../src/curl -q --output log/5/curl389.out --include --trace-ascii log/5/trace389 --trace-time -4 http://curlmachine.localhost:41733/389 > log/5/stdout389 2> log/5/stderr389 === End of file commands.log === Start of file http_server.log 10:31:29.226157 ====> Client connect 10:31:29.226575 accept_connection 3 returned 4 10:31:29.226859 accept_connection 3 returned 0 10:31:29.227134 Read 93 bytes 10:31:29.227267 Process 93 bytes request 10:31:29.227381 Got request: GET /verifiedserver HTTP/1.1 10:31:29.227467 Are-we-friendly question received 10:31:29.227798 Wrote request (93 bytes) input to log/5/server.input 10:31:29.228281 Identifying ourselves as friends 10:31:29.229930 Response sent (56 bytes) and written to log/5/server.response 10:31:29.230176 special request received, no persistency 10:31:29.230312 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36056 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 389 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind389 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind389 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind393 ../src/curl -q --output log/2/curl393.out --include --trace-ascii log/2/trace393 --trace-time http://127.0.0.1:43789/393 --max-filesize 2000000 > log/2/stdout393 2> log/2/stderr393 test 0388...[HTTP with Digest and multiple qop values with leading space] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind388 ../src/curl -q --include --trace-ascii log/1/trace388 --trace-time http://127.0.0.1:36129/3880001 -u testuser:testpass --digest http://127.0.0.1:36129/3880002 > log/1/stdout388 2> log/1/stderr388 388: stdout FAILED: --- log/1/check-expected 2025-09-11 10:31:29.363842770 +0000 +++ log/1/check-generated 2025-09-11 10:31:29.363842770 +0000 @@ -1,30 +0,0 @@ -HTTP/1.1 401 Authorization Required swsclose[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 23[CR][LF] -[CR][LF] -This IS the real page![LF] -HTTP/1.1 401 Authorization Required swsclose[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 401 Authorization re-negotiation please swsbounce[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="crazy, auth"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 26[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 30[CR][LF] -[CR][LF] -This IS the second real page![LF] == Contents of files in the log/1/ dir after test 388 === Start of file check-expected HTTP/1.1 401 Authorization Required swsclose[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 23[CR][LF] [CR][LF] This IS the real page![LF] HTTP/1.1 401 Authorization Required swsclose[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 401 Authorization re-negotiation please swsbounce[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="crazy, auth"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 26[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Server: Apache/1.3.27 (Darwin) PHP/4.1.2[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 30[CR][LF] [CR][LF] This IS the second real page![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind388 ../src/curl -q --include --trace-ascii log/1/trace388 --trace-time http://127.0.0.1:36129/3880001 -u testuser:testpass --digest http://127.0.0.1:36129/3880002 > log/1/stdout388 2> log/1/stderr388 === End of file commands.log === Start of file http_server.log 10:31:27.984444 ====> Client connect 10:31:27.984797 accept_connection 3 returned 4 10:31:27.984982 accept_connection 3 returned 0 10:31:27.985105 Read 93 bytes 10:31:27.985189 Process 93 bytes request 10:31:27.985272 Got request: GET /verifiedserver HTTP/1.1 10:31:27.985341 Are-we-friendly question received 10:31:27.985557 Wrote request (93 bytes) input to log/1/server.input 10:31:27.985725 Identifying ourselves as friends 10:31:27.986441 Response sent (56 bytes) and written to log/1/server.response 10:31:27.986629 special request received, no persistency 10:31:27.986721 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 39432 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 388 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind388 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind388 test 0393...[HTTP max-filesize and out-of-range Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind393 ../src/curl -q --output log/2/curl393.out --include --trace-ascii log/2/trace393 --trace-time http://127.0.0.1:43789/393 --max-filesize 2000000 > log/2/stdout393 2> log/2/stderr393 393: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 393 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind393 ../src/curl -q --output log/2/curl393.out --include --trace-ascii log/2/trace393 --trace-time http://127.0.0.1:43789/393 --max-filesize 2000000 > log/2/stdout393 2> log/2/stderr393 === End of file commands.log === Start of file http_server.log 10:31:28.738951 ====> Client connect 10:31:28.739207 accept_connection 3 returned 4 10:31:28.739370 accept_connection 3 returned 0 10:31:28.739525 Read 93 bytes 10:31:28.739631 Process 93 bytes request 10:31:28.739737 Got request: GET /verifiedserver HTTP/1.1 10:31:28.739828 Are-we-friendly question received 10:31:28.740208 Wrote request (93 bytes) input to log/2/server.input 10:31:28.740458 Identifying ourselves as friends 10:31:28.741315 Response sent (56 bytes) and written to log/2/server.response 10:31:28.741484 special request received, no persisteCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind391 ../src/curl -q --output log/6/curl391.out --include --trace-ascii log/6/trace391 --trace-time http://127.0.0.1:33363/../../391 --path-as-is -L > log/6/stdout391 2> log/6/stderr391 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind392 ../src/curl -q --output log/4/curl392.out --include --trace-ascii log/4/trace392 --trace-time -4 http://localhost:36757/392 -b none http://localhost:36757/392 > log/4/stdout392 2> log/4/stderr392 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind394 ../src/curl -q --output log/7/curl394.out --include --trace-ascii log/7/trace394 --trace-time http://127.0.0.1:40129/394 > log/7/stdout394 2> log/7/stderr394 ncy 10:31:28.741559 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 53818 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 393 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind393 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind393 test 0391...[--path-as-is with redirect, keeping dotdots] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind391 ../src/curl -q --output log/6/curl391.out --include --trace-ascii log/6/trace391 --trace-time http://127.0.0.1:33363/../../391 --path-as-is -L > log/6/stdout391 2> log/6/stderr391 391: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 391 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind391 ../src/curl -q --output log/6/curl391.out --include --trace-ascii log/6/trace391 --trace-time http://127.0.0.1:33363/../../391 --path-as-is -L > log/6/stdout391 2> log/6/stderr391 === End of file commands.log === Start of file http_server.log 10:31:28.652686 ====> Client connect 10:31:28.653044 accept_connection 3 returned 4 10:31:28.653273 accept_connection 3 returned 0 10:31:28.653486 Read 93 bytes 10:31:28.653610 Process 93 bytes request 10:31:28.653756 Got request: GET /verifiedserver HTTP/1.1 10:31:28.653870 Are-we-friendly question received 10:31:28.654145 Wrote request (93 bytes) input to log/6/server.input 10:31:28.654414 Identifying ourselves as friends 10:31:28.655388 Response sent (56 bytes) and written to log/6/server.response 10:31:28.655576 special request received, no persistency 10:31:28.655689 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 34614 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 391 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind391 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind391 setenv TZ = GMT test 0392...[HTTP secure cookies over localhost] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind392 ../src/curl -q --output log/4/curl392.out --include --trace-ascii log/4/trace392 --trace-time -4 http://localhost:36757/392 -b none http://localhost:36757/392 > log/4/stdout392 2> log/4/stderr392 392: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 392 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind392 ../src/curl -q --output log/4/curl392.out --include --trace-ascii log/4/trace392 --trace-time -4 http://localhost:36757/392 -b none http://localhost:36757/392 > log/4/stdout392 2> log/4/stderr392 === End of file commands.log === Start of file http_server.log 10:31:29.713777 ====> Client connect 10:31:29.714114 accept_connection 3 returned 4 10:31:29.714303 accept_connection 3 returned 0 10:31:29.714460 Read 93 bytes 10:31:29.714572 Process 93 bytes request 10:31:29.714675 Got request: GET /verifiedserver HTTP/1.1 10:31:29.714762 Are-we-friendly question received 10:31:29.715023 Wrote request (93 bytes) input to log/4/server.input 10:31:29.715251 Identifying ourselves as friends 10:31:29.720434 Response sent (56 bytes) and written to log/4/server.response 10:31:29.720639 special request received, no persistency 10:31:29.720729 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33098 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * RequesCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind395 ../src/curl -q --output log/8/curl395.out --include --trace-ascii log/8/trace395 --trace-time http://127.0.0.1:36007/395 > log/8/stdout395 2> log/8/stderr395 t completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 392 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind392 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind392 test 0394...[HTTP with rubbish in Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind394 ../src/curl -q --output log/7/curl394.out --include --trace-ascii log/7/trace394 --trace-time http://127.0.0.1:40129/394 > log/7/stdout394 2> log/7/stderr394 394: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 394 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind394 ../src/curl -q --output log/7/curl394.out --include --trace-ascii log/7/trace394 --trace-time http://127.0.0.1:40129/394 > log/7/stdout394 2> log/7/stderr394 === End of file commands.log === Start of file http_server.log 10:31:28.802965 ====> Client connect 10:31:28.803261 accept_connection 3 returned 4 10:31:28.803462 accept_connection 3 returned 0 10:31:28.803586 Read 93 bytes 10:31:28.803656 Process 93 bytes request 10:31:28.803740 Got request: GET /verifiedserver HTTP/1.1 10:31:28.803803 Are-we-friendly question received 10:31:28.804547 Wrote request (93 bytes) input to log/7/server.input 10:31:28.804816 Identifying ourselves as friends 10:31:28.805503 Response sent (56 bytes) and written to log/7/server.response 10:31:28.805622 special request received, no persistency 10:31:28.805690 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 58714 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 394 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind394 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind394 test 0395...[HTTP and out-of-range Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind395 ../src/curl -q --output log/8/curl395.out --include --trace-ascii log/8/trace395 --trace-time http://127.0.0.1:36007/395 > log/8/stdout395 2> log/8/stderr395 395: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 395 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind395 ../src/curl -q --output log/8/curl395.out --include --trace-ascii log/8/trace395 --trace-time http://127.0.0.1:36007/395 > log/8/stdout395 2> log/8/stderr395 === End of file commands.log === Start of file http_server.log 10:31:28.821690 ====> Client connect 10:31:28.821954 accept_connection 3 returned 4 10:31:28.822127 accept_connection 3 returned 0 10:31:28.822261 Read 93 bytes 10:31:28.822402 Process 93 bytes request 10:31:28.822485 Got request: GET /verifiedserver HTTP/1.1 10:31:28.822550 Are-we-friendly question received 10:31:28.822781 Wrote request (93 bytes) input to log/8/server.input 10:31:28.822951 Identifying ourselves as friends 10:31:28.823582 Response sent (56 bytes) and written to log/8/server.response 10:31:28.823708 special request received, no persistency 10:31:28.823769 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 40958 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 395 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind395 valgrind: Fatal error at startupCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind390 ../src/curl -q --include --trace-ascii log/3/trace390 --trace-time http://127.0.0.1:36933/390 file://localhost/build/curl/src/build-curl/tests/log/3/test390.txt ftp://127.0.0.1:33831/3900002 --parallel -o log/3/390.a -o log/3/390.b -o log/3/390.c > log/3/stdout390 2> log/3/stderr390 : a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind395 test 0390...[curl HTTP, FILE and FTP in parallel] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind390 ../src/curl -q --include --trace-ascii log/3/trace390 --trace-time http://127.0.0.1:36933/390 file://localhost/build/curl/src/build-curl/tests/log/3/test390.txt ftp://127.0.0.1:33831/3900002 --parallel -o log/3/390.a -o log/3/390.b -o log/3/390.c > log/3/stdout390 2> log/3/stderr390 curl returned 1, when expecting 0 390: exit FAILED == Contents of files in the log/3/ dir after test 390 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind390 ../src/curl -q --include --trace-ascii log/3/trace390 --trace-time http://127.0.0.1:36933/390 file://localhost/build/curl/src/build-curl/tests/log/3/test390.txt ftp://127.0.0.1:33831/3900002 --parallel -o log/3/390.a -o log/3/390.b -o log/3/390.c > log/3/stdout390 2> log/3/stderr390 === End of file commands.log === Start of file ftp_server.log 10:31:29.042806 ====> Client connect 10:31:29.044247 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:29.048153 < "USER anonymous" 10:31:29.048616 > "331 We are happy you popped in![CR][LF]" 10:31:29.052585 < "PASS ftp@example.com" 10:31:29.053155 > "230 Welcome you silly person[CR][LF]" 10:31:29.056817 < "PWD" 10:31:29.057454 > "257 "/" is current directory[CR][LF]" 10:31:29.060687 < "EPSV" 10:31:29.061176 ====> Passive DATA channel requested by client 10:31:29.061556 DATA sockfilt for passive data channel starting... 10:31:29.079899 DATA sockfilt for passive data channel started (pid 95894) 10:31:29.082024 DATA sockfilt for passive data channel listens on port 40481 10:31:29.082540 > "229 Entering Passive Mode (|||40481|)[LF]" 10:31:29.082891 Client has been notified that DATA conn will be accepted on port 40481 10:31:29.086241 Client connects to port 40481 10:31:29.086693 ====> Client established passive DATA connection on port 40481 10:31:29.087730 < "TYPE I" 10:31:29.088231 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:29.098284 < "SIZE verifiedserver" 10:31:29.098786 > "213 17[CR][LF]" 10:31:29.103693 < "RETR verifiedserver" 10:31:29.104302 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:29.106121 =====> Closing passive DATA connection... 10:31:29.106569 Server disconnects passive DATA connection 10:31:29.107740 Server disconnected passive DATA connection 10:31:29.108189 DATA sockfilt for passive data channel quits (pid 95894) 10:31:29.110114 DATA sockfilt for passive data channel quit (pid 95894) 10:31:29.110518 =====> Closed passive DATA connection 10:31:29.110913 > "226 File transfer complete[CR][LF]" 10:31:29.152190 < "QUIT" 10:31:29.152564 > "221 bye bye baby[CR][LF]" 10:31:29.158947 MAIN sockfilt said DISC 10:31:29.159427 ====> Client disconnected 10:31:29.160029 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:28.712395 ====> Client connect 10:31:28.715151 Received DATA (on stdin) 10:31:28.716188 > 160 bytes data, server => client 10:31:28.716365 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:28.716457 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:28.716534 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:28.717377 < 16 bytes data, client => server 10:31:28.717571 'USER anonymous\r\n' 10:31:28.719439 Received DATA (on stdin) 10:31:28.719584 > 33 bytes data, server => client 10:31:28.719674 '331 We are happy you popped in!\r\n' 10:31:28.721223 < 22 bytes data, client => server 10:31:28.721481 'PASS ftp@example.com\r\n' 10:31:28.723679 Received DATA (on stdin) 10:31:28.723921 > 30 bytes data, server => client 10:31:28.724616 '230 Welcome you silly person\r\n' 10:31:28.725709 < 5 bytes data, client => server 10:31:28.725987 'PWD\r\n' 10:31:28.728102 Received DATA (on stdin) 10:31:28.728373 > 30 bytes data, server => client 10:31:28.728519 '257 "/" is current directory\r\n' 10:31:28.729409 < 6 bytes data, client => server 10:31:28.729652 'EPSV\r\n' 10:31:28.753629 Received DATA (on stdin) 10:31:28.753832 > 38 bytes data, server => client 10:31:28.753961 '229 Entering Passive Mode (|||40481|)\n' 10:31:28.755693 < 8 bytes data, client => server 10:31:28.755909 'TYPE I\r\n' 10:31:28.759330 Received DATA (on stdin) 10:31:28.759590 > 33 bytes data, server => client 10:31:28.759737 '200 I modify TYPE as you wanted\r\n' 10:31:28.765892 < 21 bytes data, client => server 10:31:28.766125 'SIZE verifiedserver\r\n' 10:31:28.771152 Received DATA (on stdin) 10:31:28.771376 > 8 bytes data, server => client 10:31:28.771465 '213 17\r\n' 10:31:28.773396 < 21 bytes data, client => server 10:31:28.773614 'RETR verifiedserver\r\n' 10:31:28.774802 Received DATA (on stdin) 10:31:28.774999 > 29 bytes data, server => client 10:31:28.775088 '150 Binary junk (17 bytes).\r\n' 10:31:28.784178 Received DATA (on stdin) 10:31:28.784457 > 28 bytes data, server => client 10:31:28.784571 '226 File transfer complete\r\n' 10:31:28.820697 < 6 bytes data, client => server 10:31:28.820908 'QUIT\r\n' 10:31:28.828085 Received DATA (on stdin) 10:31:28.828343 > 18 bytes data, server => client 10:31:28.828444 '221 bye bye baby\r\n' 10:31:28.829016 ====> Client disconnect 10:31:28.829957 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:29.746401 Running IPv4 version 10:31:29.747012 Listening on port 40481 10:31:29.747351 Wrote pid 95894 to log/3/server/ftp_sockdata.pid 10:31:29.747532 Received PING (on stdin) 10:31:29.751168 Received PORT (on stdin) 10:31:29.756340 ====> Client connect 10:31:29.775244 Received DATA (on stdin) 10:31:29.775416 > 17 bytes data, server => client 10:31:29.775603 'WE ROOLZ: 79555\r\n' 10:31:29.777445 Received DISC (on stdin) 10:31:29.777647 ====> Client forcibly disconnected 10:31:29.779062 Received QUIT (on stdin) 10:31:29.779226 quits 10:31:29.779625 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:31:28.558936 ====> Client connect 10:31:28.559250 accept_connection 3 returned 4 10:31:28.559420 accept_connection 3 returned 0 10:31:28.559550 Read 93 bytes 10:31:28.559644 Process 93 bytes request 10:31:28.559735 Got request: GET /verifiedserver HTTP/1.1 10:31:28.559818 Are-we-friendly question received 10:31:28.560226 Wrote request (93 bytes) input to log/3/server.input 10:31:28.560494 Identifying ourselves as friends 10:31:28.561358 Response sent (56 bytes) and written to log/3/server.response 10:31:28.561546 special request received, no persistency 10:31:28.561632 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45634 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 390 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file test390.txt hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind396 ../src/curl -q --output log/5/curl396.out --include --trace-ascii log/5/trace396 --trace-time http://127.0.0.1:41733/396 --compressed > log/5/stdout396 2> log/5/stderr396 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind397 ../src/curl -q --output log/1/curl397.out --include --trace-ascii log/1/trace397 --trace-time http://127.0.0.1:36129/397 --compressed > log/1/stdout397 2> log/1/stderr397 hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile!hellofile === End of file test390.txt === Start of file valgrind390 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind390 test 0396...[HTTP GET zstd compressed content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind396 ../src/curl -q --output log/5/curl396.out --include --trace-ascii log/5/trace396 --trace-time http://127.0.0.1:41733/396 --compressed > log/5/stdout396 2> log/5/stderr396 396: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 396 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind396 ../src/curl -q --output log/5/curl396.out --include --trace-ascii log/5/trace396 --trace-time http://127.0.0.1:41733/396 --compressed > log/5/stdout396 2> log/5/stderr396 === End of file commands.log === Start of file http_server.log 10:31:30.211509 ====> Client connect 10:31:30.211909 accept_connection 3 returned 4 10:31:30.212212 accept_connection 3 returned 0 10:31:30.212376 Read 93 bytes 10:31:30.212474 Process 93 bytes request 10:31:30.212566 Got request: GET /verifiedserver HTTP/1.1 10:31:30.212645 Are-we-friendly question received 10:31:30.212964 Wrote request (93 bytes) input to log/5/server.input 10:31:30.213228 Identifying ourselves as friends 10:31:30.214279 Response sent (56 bytes) and written to log/5/server.response 10:31:30.214416 special request received, no persistency 10:31:30.214497 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36068 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 396 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind396 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind396 test 0397...[HTTP GET zstd compressCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind411 ../src/curl -q --output log/3/curl411.out --include --trace-ascii log/3/trace411 --trace-time -K log/3/missing http://localhost > log/3/stdout411 2> log/3/stderr411 ed content of size more than CURL_MAX_WRITE_SIZE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind397 ../src/curl -q --output log/1/curl397.out --include --trace-ascii log/1/trace397 --trace-time http://127.0.0.1:36129/397 --compressed > log/1/stdout397 2> log/1/stderr397 397: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 397 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind397 ../src/curl -q --output log/1/curl397.out --include --trace-ascii log/1/trace397 --trace-time http://127.0.0.1:36129/397 --compressed > log/1/stdout397 2> log/1/stderr397 === End of file commands.log === Start of file http_server.log 10:31:29.263260 ====> Client connect 10:31:29.263743 accept_connection 3 returned 4 10:31:29.264022 accept_connection 3 returned 0 10:31:29.264238 Read 93 bytes 10:31:29.264452 Process 93 bytes request 10:31:29.264554 Got request: GET /verifiedserver HTTP/1.1 10:31:29.264643 Are-we-friendly question received 10:31:29.264939 Wrote request (93 bytes) input to log/1/server.input 10:31:29.265223 Identifying ourselves as friends 10:31:29.266245 Response sent (56 bytes) and written to log/1/server.response 10:31:29.266419 special request received, no persistency 10:31:29.266491 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 39446 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 397 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind397 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind397 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind398 ../src/curl -q --output log/2/curl398.out --include --trace-ascii log/2/trace398 --trace-time http://127.0.0.1:43789/398 > log/2/stdout398 2> log/2/stderr398 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind399 ../src/curl -q --output log/6/curl399.out --include --trace-ascii log/6/trace399 --trace-time -K log/6/input%TESTNUM > log/6/stdout399 2> log/6/stderr399 test 0411...[-K with missing file causes error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind411 ../src/curl -q --output log/3/curl411.out --include --trace-ascii log/3/trace411 --trace-time -K log/3/missing http://localhost > log/3/stdout411 2> log/3/stderr411 411: stderr FAILED: --- log/3/check-expected 2025-09-11 10:31:30.711869604 +0000 +++ log/3/check-generated 2025-09-11 10:31:30.711869604 +0000 @@ -1,3 +0,0 @@ -curl: cannot read config from 'log/3/missing'[CR][LF] -curl: option -K: error encountered when reading a file[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/3/ dir after test 411 === Start of file check-expected curl: cannot read config from 'log/3/missing'[CR][LF] curl: option -K: error encountered when reading a file[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind411 ../src/curl -q --output log/3/curl411.out --include --trace-ascii log/3/trace411 --trace-time -K log/3/missing http://localhost > log/3/stdout411 2> log/3/stderr411 === End of file commands.log === Start of file server.cmd Testnum 411 === End of file server.cmd === Start of file valgrind411 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind411 test 0398...[Reject HTTP/1.1 response with colon-less header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind398 ../src/curl -q --output log/2/curl398.out --include --trace-ascii log/2/trace398 --trace-time http://127.0.0.1:43789/398 > log/2/stdout398 2> log/2/stderr398 398: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 398 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind398 ../src/curl -q --output log/2/curl398.out --include --trace-ascii log/2/trace398 --trace-time http://127.0.0.1:43789/398 > log/2/stdout398 2> log/2/stderr398 === End of file commands.log === Start of file http_server.log 10:31:29.655225 ====> Client connect 10:31:29.655615 accept_connection 3 returned 4 10:31:29.655805 accept_connection 3 returned 0 10:31:29.656013 Read 93 bytes 10:31:29.656150 Process 93 bytes request 10:31:29.656261 Got request: GET /verifiedserver HTTP/1.1 10:31:29.656337 Are-we-friendly question received 10:31:29.656592 Wrote request (93 bytes) input to log/2/server.input 10:31:29.656824 Identifying ourselves as friends 10:31:29.657669 Response sent (56 bytes) and written to log/2/server.response 10:31:29.657794 special request received, no persistency 10:31:29.657873 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 53822 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 398 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind398 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind398 test 0399...[65536 bytes long host name in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind399 ../src/curl -q --output log/6/curl399.out --include --trace-ascii log/6/trace399 --trace-time -K log/6/input%TESTNUM > log/6/stdout399 2> log/6/stderr399 curl returned 1, when expecting 3 399: exit FAILED == Contents of files in the log/6/ dir after test 399 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind399 ../src/curl -q --output log/6/curl399.out --include --trace-ascii log/6/trace399 --trace-time -K log/6/input%TESTNUM > log/6/stdout399 2> log/6/stderr399 === End of file commands.log === Start of file http_server.log 10:31:29.697459 ====> Client connect 10:31:29.697836 accept_connection 3 returned 4 10:31:29.698505 accept_connection 3 returned 0 10:31:29.701613 Read 93 bytes 10:31:29.701863 Process 93 bytes request 10:31:29.702146 Got request: GET /verifiedserver HTTP/1.1 10:31:29.702285 Are-we-friendly question received 10:31:29.702619 Wrote request (93 bytes) input to log/6/server.input 10:31:29.704439 Identifying ourselves as friends 10:31:29.705493 Response sent (56 bytes) and written to log/6/server.response 10:31:29.705653 special request received, no persistency 10:31:29.705733 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 34616 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file input%TESTNUM url = http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind402 ../src/curl -q --output log/4/curl402.out --include --trace-ascii log/4/trace402 --trace-time --insecure --ftp-ssl-reqd ftp://127.0.0.1:42635/402 > log/4/stdout402 2> log/4/stderr402 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/399 === End of file input%TESTNUM === Start of file server.cmd Testnum 399 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind399 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind399 test 0402...[FTP SSL required on non-SSL server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind402 ../src/curl -q --output log/4/curl402.out --include --trace-ascii log/4/trace402 --trace-time --insecure --ftp-ssl-reqd ftp://127.0.0.1:42635/402 > log/4/stdout402 2> log/4/stderr402 402: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 402 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind402 ../src/curl -q --output log/4/curl402.out --include --trace-ascii log/4/trace402 --trace-time --insecure --ftp-ssl-reqd ftp://127.0.0.1:42635/402 > log/4/stdout402 2> log/4/stderr402 === End of file commands.log === Start of file ftp_server.log 10:31:30.057363 ====> Client connect 10:31:30.063102 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:30.068047 < "USER anonymous" 10:31:30.068539 > "331 We are happy you popped in![CR][LF]" 10:31:30.075042 < "PASS ftp@example.com" 10:31:30.076469 > "230 Welcome you silly person[CR][LF]" 10:31:30.078039 < "PWD" 10:31:30.079400 > "257 "/" is current directory[CR][LF]" 10:31:30.080759 < "EPSV" 10:31:30.081079 ====> Passive DATA channel requested by client 10:31:30.081305 DATA sockfilt for passive data channel starting... 10:31:30.095994 DATA sockfilt for passive data channel started (pid 96323) 10:31:30.098110 DATA sockfilt for passive data channel listens on port 35563 10:31:30.098615 > "229 Entering Passive Mode (|||35563|)[LF]" 10:31:30.098815 Client has been notified that DATA conn will be accepted on port 35563 10:31:30.102797 Client connects to port 35563 10:31:30.103211 ====> Client established passive DATA connection on port 35563 10:31:30.104137 < "TYPE I" 10:31:30.104490 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:30.110331 < "SIZE verifiedserver" 10:31:30.110982 > "213 17[CR][LF]" 10:31:30.126401 < "RETR verifiedserver" 10:31:30.126967 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:30.127919 =====> Closing passive DATA connection... 10:31:30.128288 Server disconnects passive DATA connection 10:31:30.135551 Server disconnected passive DATA connection 10:31:30.135944 DATA sockfilt for passive data channel quits (pid 96323) 10:31:30.137883 DATA sockfilt for passive data channel quit (pid 96323) 10:31:30.138180 =====> Closed passive DATA connection 10:31:30.138611 > "226 File transfer complete[CR][LF]" 10:31:30.182277 < "QUIT" 10:31:30.182813 > "221 bye bye baby[CR][LF]" 10:31:30.186121 MAIN sockfilt said DISC 10:31:30.186629 ====> Client disconnected 10:31:30.187341 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:30.727107 ====> Client connect 10:31:30.734097 Received DATA (on stdin) 10:31:30.734318 > 160 bytes data, server => client 10:31:30.734427 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:30.734501 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:30.734567 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:30.737080 < 16 bytes data, client => server 10:31:30.737344 'USER anonymous\r\n' 10:31:30.739300 Received DATA (on stdin) 10:31:30.739456 > 33 bytes data, server => client 10:31:30.739544 '331 We are happy you popped in!\r\n' 10:31:30.744235 < 22 bytes data, client => server 10:31:30.744519 'PASS ftp@example.com\r\n' 10:31:30.746031 Received DATA (on stdin) 10:31:30.746229 > 30 bytes data, server => client 10:31:30.746424 '230 Welcome you silly person\r\n' 10:31:30.747289 < 5 bytes data, client => server 10:31:30.747450 'PWD\r\n' 10:31:30.748977 Received DATA (on stdin) 10:31:30.749153 > 30 bytes data, server => client 10:31:30.749349 '257 "/" is current directory\r\n' 10:31:30.750211 < 6 bytes data, client => server 10:31:30.750390 'EPSV\r\n' 10:31:30.769110 Received DATA (on stdin) 10:31:30.769259 > 38 bytes data, server => client 10:31:30.769353 '229 Entering Passive Mode (|||35563|)\n' 10:31:30.770874 < 8 bytes data, client => server 10:31:30.771060 'TYPE I\r\n' 10:31:30.776242 Received DATA (on stdin) 10:31:30.776535 > 33 bytes data, server => client 10:31:30.776688 '200 I modify TYPE as you wanted\r\n' 10:31:30.779906 < 21 bytes data, client => server 10:31:30.780245 'SIZE verifiedserver\r\n' 10:31:30.781419 Received DATA (on stdin) 10:31:30.781696 > 8 bytes data, server => client 10:31:30.781805 '213 17\r\n' 10:31:30.785270 < 21 bytes data, client => server 10:31:30.785449 'RETR verifiedserver\r\n' 10:31:30.804295 Received DATA (on stdin) 10:31:30.804544 > 29 bytes data, server => client 10:31:30.804647 '150 Binary junk (17 bytes).\r\n' 10:31:30.809122 Received DATA (on stdin) 10:31:30.809340 > 28 bytes data, server => client 10:31:30.809451 '226 File transfer complete\r\n' 10:31:30.849272 < 6 bytes data, client => server 10:31:30.849529 'QUIT\r\n' 10:31:30.853282 Received DATA (on stdin) 10:31:30.853523 > 18 bytes data, server => client 10:31:30.853622 '221 bye bye baby\r\n' 10:31:30.856174 ====> Client disconnect 10:31:30.858130 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:30.762377 Running IPv4 version 10:31:30.762847 Listening on port 35563 10:31:30.763221 Wrote pid 96323 to log/4/server/ftp_sockdata.pid 10CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind405 ../src/curl -q --output log/8/curl405.out --include --trace-ascii log/8/trace405 --trace-time -m 5 --insecure ftps://127.0.0.1:42977/path/to/file/405 > log/8/stdout405 2> log/8/stderr405 :31:30.766042 Received PING (on stdin) 10:31:30.767858 Received PORT (on stdin) 10:31:30.770447 ====> Client connect 10:31:30.805067 Received DATA (on stdin) 10:31:30.805262 > 17 bytes data, server => client 10:31:30.805371 'WE ROOLZ: 79516\r\n' 10:31:30.805701 Received DISC (on stdin) 10:31:30.805866 ====> Client forcibly disconnected 10:31:30.806744 Received QUIT (on stdin) 10:31:30.806942 quits 10:31:30.807456 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 402 === End of file server.cmd === Start of file valgrind402 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind402 test 0405...[FTPS operation to FTP port] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind405 ../src/curl -q --output log/8/curl405.out --include --trace-ascii log/8/trace405 --trace-time -m 5 --insecure ftps://127.0.0.1:42977/path/to/file/405 > log/8/stdout405 2> log/8/stderr405 curl returned 1, when expecting 35,28 405: exit FAILED == Contents of files in the log/8/ dir after test 405 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind405 ../src/curl -q --output log/8/curl405.out --include --trace-ascii log/8/trace405 --trace-time -m 5 --insecure ftps://127.0.0.1:42977/path/to/file/405 > log/8/stdout405 2> log/8/stderr405 === End of file commands.log === Start of file ftp_server.log 10:31:30.082293 ====> Client connect 10:31:30.083684 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:30.086319 < "USER anonymous" 10:31:30.087557 > "331 We are happy you popped in![CR][LF]" 10:31:30.092494 < "PASS ftp@example.com" 10:31:30.092941 > "230 Welcome you silly person[CR][LF]" 10:31:30.096724 < "PWD" 10:31:30.097241 > "257 "/" is current directory[CR][LF]" 10:31:30.103362 < "EPSV" 10:31:30.103704 ====> Passive DATA channel requested by client 10:31:30.104020 DATA sockfilt for passive data channel starting... 10:31:30.115791 DATA sockfilt for passive data channel started (pid 96332) 10:31:30.119068 DATA sockfilt for passive data channel listens on port 36017 10:31:30.119594 > "229 Entering Passive Mode (|||36017|)[LF]" 10:31:30.119881 Client has been notified that DATA conn will be accepted on port 36017 10:31:30.122831 Client connects to port 36017 10:31:30.123275 ====> Client established passive DATA connection on port 36017 10:31:30.124322 < "TYPE I" 10:31:30.124900 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:30.138283 < "SIZE verifiedserver" 10:31:30.138702 > "213 17[CR][LF]" 10:31:30.147883 < "RETR verifiedserver" 10:31:30.148620 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:30.149621 =====> Closing passive DATA connection... 10:31:30.150063 Server disconnects passive DATA connection 10:31:30.154171 Server disconnected passive DATA connection 10:31:30.154648 DATA sockfilt for passive data channel quits (pid 96332) 10:31:30.156727 DATA sockfilt for passive data channel quit (pid 96332) 10:31:30.157189 =====> Closed passive DATA connection 10:31:30.157735 > "226 File transfer complete[CR][LF]" 10:31:30.192454 < "QUIT" 10:31:30.193164 > "221 bye bye baby[CR][LF]" 10:31:30.195008 MAIN sockfilt said DISC 10:31:30.195415 ====> Client disconnected 10:31:30.196024 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:29.752117 ====> Client connect 10:31:29.754160 Received DATA (on stdin) 10:31:29.754482 > 160 bytes data, server => client 10:31:29.754683 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:29.754800 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:29.754899 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:29.755667 < 16 bytes data, client => server 10:31:29.755881 'USER anonymous\r\n' 10:31:29.760147 Received DATA (on stdin) 10:31:29.760433 > 33 bytes data, server => client 10:31:29.760578 '331 We are happy you popped in!\r\n' 10:31:29.762226 < 22 bytes data, client => server 10:31:29.762427 'PASS ftp@example.com\r\n' 10:31:29.763446 Received DATA (on stdin) 10:31:29.763615 > 30 bytes data, server => client 10:31:29.763721 '230 Welcome you silly person\r\n' 10:31:29.766045 < 5 bytes data, client => server 10:31:29.766244 'PWD\r\n' 10:31:29.769244 Received DATA (on stdin) 10:31:29.769353 > 30 bytes data, server => client 10:31:29.769431 '257 "/" is current directory\r\n' 10:31:29.772081 < 6 bytes data, client => server 10:31:29.772330 'EPSV\r\n' 10:31:29.790785 Received DATA (on stdin) 10:31:29.791040 > 38 bytes data, server => client 10:31:29.791176 '229 Entering Passive Mode (|||36017|)\n' 10:31:29.792711 < 8 bytes data, client => server 10:31:29.792959 'TYPE I\r\n' 10:31:29.795839 Received DATA (on stdin) 10:31:29.796111 > 33 bytes data, server => client 10:31:29.796225 '200 I modify TYPE as you wanted\r\n' 10:31:29.802778 < 21 bytes data, client => server 10:31:29.803053 'SIZE verifiedserver\r\n' 10:31:29.816060 Received DATA (on stdin) 10:31:29.816365 > 8 bytes data, server => client 10:31:29.816486 '213 17\r\n' 10:31:29.817334 < 21 bytes data, client => server 10:31:29.817637 'RETR verifiedserver\r\n' 10:31:29.819129 Received DATA (on stdin) 10:31:29.819366 > 29 bytes data, server => client 10:31:29.819493 '150 Binary junk (17 bytes).\r\n' 10:31:29.828198 Received DATA (on stdin) 10:31:29.828407 > 28 bytes data, server => client 10:31:29.828495 '226 File transfer complete\r\n' 10:31:29.861075 < 6 bytes data, client => server 10:31:29.861365 'QUIT\r\n' 10:31:29.863650 Received DATA (on stdin) 10:31:29.863884 > 18 bytes data, server => client 10:31:29.864165 '221 bye bye baby\r\n' 10:31:29.865086 ====> Client disconnect 10:31:29.865918 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:30.784522 Running IPv4 version 10:31:30.785273 Listening on port 36017 10:31:30.785759 Wrote pid 96332 to log/8/server/ftp_sockdata.pid 10:31:30.785931 Received PING (on stdin) 10:31:30.786807 Received PORT (on stdin) 10:31:30.792774 ====> Client connect 10:31:30.819588 Received DATA (on stdin) 10:31:30.819746 > 17 bytes data, server => client 10:31:30.819911 'WE ROOLZ: 86552\r\n' 10:31:30.821128 Received DISC (on stdin) 10:31:30.821382 ====> Client forcibly disconnected 10:31:30.825490 Received QUIT (on stdin) 10:31:30.825736 quits 10:31:30.826232 ============> sockfilt quits === End of file ftp_sockdata.log === CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind415 ../src/curl -q --output log/7/curl415.out --include --trace-ascii log/7/trace415 --trace-time http://127.0.0.1:40129/415 > log/7/stdout415 2> log/7/stderr415 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind419 ../src/curl -q --output log/2/curl419.out --include --trace-ascii log/2/trace419 --trace-time http://127.0.0.1:43789/419 -D loggg/save-here/fails > log/2/stdout419 2> log/2/stderr419 Start of file server.cmd Testnum 405 === End of file server.cmd === Start of file valgrind405 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind405 test 0415...[HTTP response with control code then negative Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind415 ../src/curl -q --output log/7/curl415.out --include --trace-ascii log/7/trace415 --trace-time http://127.0.0.1:40129/415 > log/7/stdout415 2> log/7/stderr415 415: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 415 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind415 ../src/curl -q --output log/7/curl415.out --include --trace-ascii log/7/trace415 --trace-time http://127.0.0.1:40129/415 > log/7/stdout415 2> log/7/stderr415 === End of file commands.log === Start of file http_server.log 10:31:29.991314 ====> Client connect 10:31:29.991720 accept_connection 3 returned 4 10:31:29.991999 accept_connection 3 returned 0 10:31:29.992417 Read 93 bytes 10:31:29.992511 Process 93 bytes request 10:31:29.992600 Got request: GET /verifiedserver HTTP/1.1 10:31:29.992672 Are-we-friendly question received 10:31:29.992926 Wrote request (93 bytes) input to log/7/server.input 10:31:29.993122 Identifying ourselves as friends 10:31:29.994004 Response sent (56 bytes) and written to log/7/server.response 10:31:29.994146 special request received, no persistency 10:31:29.994235 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 34448 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 415 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind415 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind415 test 0419...[--dump-header to file that cannot be created] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind419 ../src/curl -q --output log/2/curl419.out --include --trace-ascii log/2/trace419 --trace-time http://127.0.0.1:43789/419 -D loggg/save-here/fails > log/2/stdout419 2> log/2/stderr419 curl returned 1, when expecting 23 419: exit FAILED == Contents of files in the log/2/ dir after test 419 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind419 ../src/curl -q --output log/2/curl419.out --include --trace-ascii log/2/trace419 --trace-time http://127.0.0.1:43789/419 -D loggg/save-here/fails > log/2/stdout419 2> log/2/stderr419 === End of file commands.log === Start of file http_server.log 10:31:30.627165 ====> Client connect 10:31:30.627451 accept_connection 3 returned 4 10:31:30.627616 accept_connection 3 returned 0 10:31:30.627733 Read 93 bytes 10:31:30.627807 Process 93 bytes request 10:31:30.627889 Got request: GET /verifiedserver HTTP/1.1 10:31:30.628239 Are-we-friendly question received 10:31:30.628533 Wrote request (93 bytes) input to log/2/server.input 10:31:30.628794 Identifying ourselves as friends 10:31:30.629472 Response sent (56 bytes) and written to log/2/server.response 10:31:30.629610 special request received, no persistency 10:31:30.629675 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 58550 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 419 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind419 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind418 ../src/curl -q --output log/3/curl418.out --include --trace-ascii log/3/trace418 --trace-time http://127.0.0.1:36933/418 -sS --tr-encoding > log/3/stdout418 2> log/3/stderr418 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind416 ../src/curl -q --output log/5/curl416.out --include --trace-ascii log/5/trace416 --trace-time --ignore-content-length ftp://127.0.0.1:43393/416 > log/5/stdout416 2> log/5/stderr416 st processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind419 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind422 ../src/curl -q --output log/4/curl422.out --include --trace-ascii log/4/trace422 --trace-time -O -I --next http://127.0.0.1:36757/422 > log/4/stdout422 2> log/4/stderr422 test 0418...[Response with multiple Transfer-Encoding headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind418 ../src/curl -q --output log/3/curl418.out --include --trace-ascii log/3/trace418 --trace-time http://127.0.0.1:36933/418 -sS --tr-encoding > log/3/stdout418 2> log/3/stderr418 418: stderr FAILED: --- log/3/check-expected 2025-09-11 10:31:31.715889589 +0000 +++ log/3/check-generated 2025-09-11 10:31:31.711889510 +0000 @@ -1 +0,0 @@ -curl: (61) Reject response due to more than 5 content encodings[CR][LF] == Contents of files in the log/3/ dir after test 418 === Start of file check-expected curl: (61) Reject response due to more than 5 content encodings[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind418 ../src/curl -q --output log/3/curl418.out --include --trace-ascii log/3/trace418 --trace-time http://127.0.0.1:36933/418 -sS --tr-encoding > log/3/stdout418 2> log/3/stderr418 === End of file commands.log === Start of file http_server.log 10:31:30.585699 ====> Client connect 10:31:30.585980 accept_connection 3 returned 4 10:31:30.586223 accept_connection 3 returned 0 10:31:30.586448 Read 93 bytes 10:31:30.586586 Process 93 bytes request 10:31:30.586717 Got request: GET /verifiedserver HTTP/1.1 10:31:30.586833 Are-we-friendly question received 10:31:30.587117 Wrote request (93 bytes) input to log/3/server.input 10:31:30.587316 Identifying ourselves as friends 10:31:30.588216 Response sent (56 bytes) and written to log/3/server.response 10:31:30.588424 special request received, no persistency 10:31:30.588503 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 43056 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 418 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind418 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind418 test 0422...[use --next with missing URL before it] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind422 ../src/curl -q --output log/4/curl422.out --include --trace-ascii log/4/trace422 --trace-time -O -I --next http://127.0.0.1:36757/422 > log/4/stdout422 2> log/4/stderr422 422: stderr FAILED: --- log/4/check-expected 2025-09-11 10:31:31.755890386 +0000 +++ log/4/check-generated 2025-09-11 10:31:31.755890386 +0000 @@ -1,3 +0,0 @@ -curl: missing URL before --next[CR][LF] -curl: option --next: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/4/ dir after test 422 === Start of file check-expected curl: missing URL before --next[CR][LF] curl: option --next: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind422 ../src/curl -q --output log/4/curl422.out --include --trace-ascii log/4/trace422 --trace-time -O -I --next http://127.0.0.1:36757/422 > log/4/stdout422 2> log/4/stderr422 === End of file commands.log === Start of file server.cmd Testnum 422 === End of file server.cmd === Start of file valgrind422 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind422 test 0416...[FTP growing file support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind416 ../src/curl -q --output log/5/curl416.out --include --trace-ascii log/5/trace416 --trace-time --ignore-content-length ftp://127.0.0.1:43393/416 > log/5/stdout416 2> log/5/stderr416 416: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 416 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind416 ../src/curl -q --output log/5/curl416.out --include --trace-ascii log/5/trace416 --trace-time --ignore-content-length ftp://127.0.0.1:43393/416 > log/5/stdout416 2> log/5/stderr416 === End of file commands.log === Start of file ftp_server.log 10:31:30.816583 ====> Client connect 10:31:30.819055 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:30.836509 < "USER anonymous" 10:31:30.837262 > "331 We are happy you popped in![CR][LF]" 10:31:30.846777 < "PASS ftp@example.com" 10:31:30.847628 > "230 Welcome you silly person[CR][LF]" 10:31:30.856068 < "PWD" 10:31:30.856918 > "257 "/" is current directory[CR][LF]" 10:31:30.861634 < "EPSV" 10:31:30.862573 ====> Passive DATA channel requested by client 10:31:30.863119 DATA sockfilt for passive data channel starting... 10:31:30.894269 DATA sockfilt for passive data channel started (pid 96762) 10:31:30.896012 DATA sockfilt for passive data channel listens on port 36405 10:31:30.896746 > "229 Entering Passive Mode (|||36405|)[LF]" 10:31:30.897097 Client has been notified that DATA conn will be accepted on port 36405 10:31:30.899096 Client connects to port 36405 10:31:30.899725 ====> Client established passive DATA connection on port 36405 10:31:30.901877 < "TYPE I" 10:31:30.902585 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:30.911070 < "SIZE verifiedserver" 10:31:30.911841 > "213 17[CR][LF]" 10:31:30.913772 < "RETR verifiedserver" 10:31:30.914465 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:30.919792 =====> Closing passive DATA connection... 10:31:30.920911 Server disconnects passive DATA connection 10:31:30.921318 Fancy that; client wants to DISC, too 10:31:30.923112 Server disconnected passive DATA connection 10:31:30.923673 DATA sockfilt for passive data channel quits (pid 96762) 10:31:30.931872 DATA sockfilt for passive data channel quit (pid 96762) 10:31:30.932283 =====> Closed passive DATA connection 10:31:30.932727 > "226 File transfer complete[CR][LF]" 10:31:30.962287 < "QUIT" 10:31:30.962753 > "221 bye bye baby[CR][LF]" 10:31:30.965714 MAIN sockfilt said DISC 10:31:30.966230 ====> Client disconnected 10:31:30.966862 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:30.486236 ====> Client connect 10:31:30.488724 Received DATA (on stdin) 10:31:30.489075 > 160 bytes data, server => client 10:31:30.490218 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:30.490452 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:30.490571 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:30.502468 < 16 bytes data, client => server 10:31:30.502716 'USER anonymous\r\n' 10:31:30.507743 Received DATA (on stdin) 10:31:30.508095 > 33 bytes data, server => client 10:31:30.508306 '331 We are happy you popped in!\r\n' 10:31:30.509332 < 22 bytes data, client => server 10:31:30.509571 'PASS ftp@example.com\r\n' 10:31:30.520439 Received DATA (on stdin) 10:31:30.520798 > 30 bytes data, server => client 10:31:30.521265 '230 Welcome you silly person\r\n' 10:31:30.524881 < 5 bytes data, client => server 10:31:30.525152 'PWD\r\n' 10:31:30.528166 Received DATA (on stdin) 10:31:30.528455 > 30 bytes data, server => client 10:31:30.528658 '257 "/" is current directory\r\n' 10:31:30.529903 < 6 bytes data, client => server 10:31:30.530195 'EPSV\r\n' 10:31:30.567210 Received DATA (on stdin) 10:31:30.567455 > 38 bytes data, server => client 10:31:30.567575 '229 Entering Passive Mode (|||36405|)\n' 10:31:30.571167 < 8 bytes data, client => server 10:31:30.571493 'TYPE I\r\n' 10:31:30.575551 Received DATA (on stdin) 10:31:30.575841 > 33 bytes data, server => client 10:31:30.576030 '200 I modify TYPE as you wanted\r\n' 10:31:30.580611 < 21 bytes data, client => server 10:31:30.580840 'SIZE verifiedserver\r\n' 10:31:30.582286 Received DATA (on stdin) 10:31:30.582489 > 8 bytes data, server => client 10:31:30.582575 '213 17\r\n' 10:31:30.583252 < 21 bytes data, client => server 10:31:30.583505 'RETR verifiedserver\r\n' 10:31:30.585592 Received DATA (on stdin) 10:31:30.585804 > 29 bytes data, server => client 10:31:30.585911 '150 Binary junk (17 bytes).\r\n' 10:31:30.603675 Received DATA (on stdin) 10:31:30.603975 > 28 bytes data, server => client 10:31:30.604118 '226 File CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind420 ../src/curl -q --output log/6/curl420.out --include --trace-ascii log/6/trace420 --trace-time http://127.0.0.1:33363/func_test/del_cookie -b log/6/cookie420 -c log/6/save420 > log/6/stdout420 2> log/6/stderr420 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind421 ../src/curl -q --output log/1/curl421.out --include --trace-ascii log/1/trace421 --trace-time http://127.0.0.1:36129/421 -w '%{stderr}%{header_json}\n' -s > log/1/stdout421 2> log/1/stderr421 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind423 ../src/curl -q --trace-ascii log/8/trace423 --trace-time "http://uuuu:pppp@127.0.0.1:36007/423?qqqq#ffff" "h55p://hello2000:1/423?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:36007/423?qqqq#ffff" -w '%{url.host}+%{url.path}+%{url.scheme}+%{url.user}+%{url.password}+%{url.port}+%{url.query}+%{url.fragment}\n' > log/8/stdout423 2> log/8/stderr423 transfer complete\r\n' 10:31:30.628751 < 6 bytes data, client => server 10:31:30.628903 'QUIT\r\n' 10:31:30.633205 Received DATA (on stdin) 10:31:30.633392 > 18 bytes data, server => client 10:31:30.633481 '221 bye bye baby\r\n' 10:31:30.635490 ====> Client disconnect 10:31:30.640025 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:30.556471 Running IPv4 version 10:31:30.557296 Listening on port 36405 10:31:30.557964 Wrote pid 96762 to log/5/server/ftp_sockdata.pid 10:31:30.564067 Received PING (on stdin) 10:31:30.565543 Received PORT (on stdin) 10:31:30.569167 ====> Client connect 10:31:30.589795 Received DATA (on stdin) 10:31:30.590023 > 17 bytes data, server => client 10:31:30.590127 'WE ROOLZ: 79602\r\n' 10:31:30.591021 ====> Client disconnect 10:31:30.591781 Received DISC (on stdin) 10:31:30.592846 Crikey! Client also wants to disconnect 10:31:30.593138 Received ACKD (on stdin) 10:31:30.597605 Received QUIT (on stdin) 10:31:30.597816 quits 10:31:30.598271 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd RETRSIZE 7 Testnum 416 === End of file server.cmd === Start of file valgrind416 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind416 test 0420...[Setting cookies set with expired dates that were loaded from jar] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind420 ../src/curl -q --output log/6/curl420.out --include --trace-ascii log/6/trace420 --trace-time http://127.0.0.1:33363/func_test/del_cookie -b log/6/cookie420 -c log/6/save420 > log/6/stdout420 2> log/6/stderr420 420: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 420 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind420 ../src/curl -q --output log/6/curl420.out --include --trace-ascii log/6/trace420 --trace-time http://127.0.0.1:33363/func_test/del_cookie -b log/6/cookie420 -c log/6/save420 > log/6/stdout420 2> log/6/stderr420 === End of file commands.log === Start of file cookie420 127.0.0.1 FALSE /func_test FALSE 21709598616 mycookie6 991 #HttpOnly_127.0.0.1 FALSE /func_test FALSE 21709598616 mycookie5 990 #HttpOnly_127.0.0.1 FALSE /func_test FALSE 21709598616 mycookie4 950 #HttpOnly_127.0.0.1 FALSE /func_test FALSE 21709598616 mycookie3 900 #HttpOnly_127.0.0.1 FALSE /func_test/ FALSE 21709598616 mycookie2 5900 #HttpOnly_127.0.0.1 FALSE / FALSE 21709598616 mycookie1 4900 #HttpOnly_127.0.0.1 FALSE /func_test/ FALSE 0 mycookie 1200 === End of file cookie420 === Start of file http_server.log 10:31:30.657959 ====> Client connect 10:31:30.658251 accept_connection 3 returned 4 10:31:30.658434 accept_connection 3 returned 0 10:31:30.658550 Read 93 bytes 10:31:30.658623 Process 93 bytes request 10:31:30.658706 Got request: GET /verifiedserver HTTP/1.1 10:31:30.658770 Are-we-friendly question received 10:31:30.658960 Wrote request (93 bytes) input to log/6/server.input 10:31:30.659115 Identifying ourselves as friends 10:31:30.659768 Response sent (56 bytes) and written to log/6/server.response 10:31:30.659902 special request received, no persistency 10:31:30.660073 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47860 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 420 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind420 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind420 test 0421...[HTTP GET multiple headers and %{header_json}] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind421 ../src/curl -q --output log/1/curl421.out --include --trace-ascii log/1/trace421 --trace-time http://127.0.0.1:36129/421 -w '%{stderr}%{header_json}\n' -s > log/1/stdout421 2> log/1/stderr421 421: stderr FAILED: --- log/1/check-expected 2025-09-11 10:31:31.955894367 +0000 +++ log/1/check-generated 2025-09-11 10:31:31.951894287 +0000 @@ -1,19 +0,0 @@ -{"server":["nginx"],[CR][LF] -"date":["Tue, 07 Mar 2023 15:14:41 GMT"],[CR][LF] -"content-type":["application/json"],[CR][LF] -"content-length":["6"],[CR][LF] -"vary":["Accept-Encoding","Accept-Encoding","Accept"],[CR][LF] -"access-control-allow-origin":["*"],[CR][LF] -"referrer-policy":["strict-origin-when-cross-origin","strict-origin-when-cross-origin"],[CR][LF] -"access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],[CR][LF] -"access-control-max-age":["1728000"],[CR][LF] -"access-control-allow-headers":["Authorization, Content-Type, AuthorizationOauth, X-EARLY-ACCESS"],[CR][LF] -"access-control-expose-headers":[""],[CR][LF] -"etag":["W/\"2678f9ab2ba550d164e7cc014aefd31e\""],[CR][LF] -"cache-control":["max-age=0, private, must-revalidate"],[CR][LF] -"x-request-id":["375b343b3d2ecf9b442c0daf00fc4a9a"],[CR][LF] -"strict-transport-security":["max-age=31536000; includeSubDomains"],[CR][LF] -"x-content-type-options":["nosniff"],[CR][LF] -"x-xss-protection":["1; mode=block"],[CR][LF] -"feature-policy":["accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'"][CR][LF] -}[CR][LF] == Contents of files in the log/1/ dir after test 421 === Start of file check-expected {"server":["nginx"],[CR][LF] "date":["Tue, 07 Mar 2023 15:14:41 GMT"],[CR][LF] "content-type":["application/json"],[CR][LF] "content-length":["6"],[CR][LF] "vary":["Accept-Encoding","Accept-Encoding","Accept"],[CR][LF] "access-control-allow-origin":["*"],[CR][LF] "referrer-policy":["strict-origin-when-cross-origin","strict-origin-when-cross-origin"],[CR][LF] "access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],[CR][LF] "access-control-max-age":["1728000"],[CR][LF] "access-control-allow-headers":["Authorization, Content-Type, AuthorizationOauth, X-EARLY-ACCESS"],[CR][LF] "access-control-expose-headers":[""],[CR][LF] "etag":["W/\"2678f9ab2ba550d164e7cc014aefd31e\""],[CR][LF] "cache-control":["max-age=0, private, must-revalidate"],[CR][LF] "x-request-id":["375b343b3d2ecf9b442c0daf00fc4a9a"],[CR][LF] "strict-transport-security":["max-age=31536000; includeSubDomains"],[CR][LF] "x-content-type-options":["nosniff"],[CR][LF] "x-xss-protection":["1; mode=block"],[CR][LF] "feature-policy":["accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'"][CR][LF] }[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind421 ../src/curl -q --output log/1/curl421.out --include --trace-ascii log/1/trace421 --trace-time http://127.0.0.1:36129/421 -w '%{stderr}%{header_json}\n' -s > log/1/stdout421 2> log/1/stderr421 === End of file commands.log === Start of file http_server.log 10:31:30.760913 ====> Client connect 10:31:30.761328 accept_connection 3 returned 4 10:31:30.761568 accept_connection 3 returned 0 10:31:30.761755 Read 93 bytes 10:31:30.761858 Process 93 bytes request 10:31:30.761959 Got request: GET /verifiedserver HTTP/1.1 10:31:30.762031 Are-we-friendly question received 10:31:30.762326 Wrote request (93 bytes) input to log/1/server.input 10:31:30.762576 Identifying ourselves as friends 10:31:30.763415 Response sent (56 bytes) and written to log/1/server.response 10:31:30.763548 special request received, no persistency 10:31:30.763618 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 57332 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 421 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind421 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind421 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind424 ../src/curl -q --trace-ascii log/7/trace424 --trace-time "http://uuuu:pppp@127.0.0.1:40129/424?qqqq#ffff" "h55p://hello2000:1/424?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:40129/424?qqqq#ffff" -w '%{urle.host}+%{urle.path}+%{urle.scheme}+%{urle.user}+%{urle.password}+%{urle.port}+%{urle.query}+%{urle.fragment}\n' -x http://127.0.0.1:40129/ -L > log/7/stdout424 2> log/7/stderr424 test 0423...[-w with url.* variables] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind423 ../src/curl -q --trace-ascii log/8/trace423 --trace-time "http://uuuu:pppp@127.0.0.1:36007/423?qqqq#ffff" "h55p://hello2000:1/423?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:36007/423?qqqq#ffff" -w '%{url.host}+%{url.path}+%{url.scheme}+%{url.user}+%{url.password}+%{url.port}+%{url.query}+%{url.fragment}\n' > log/8/stdout423 2> log/8/stderr423 423: stdout FAILED: --- log/8/check-expected 2025-09-11 10:31:31.999895243 +0000 +++ log/8/check-generated 2025-09-11 10:31:31.999895243 +0000 @@ -1,4 +0,0 @@ -127.0.0.1+/423+http+uuuu+pppp+36007+qqqq+ffff[LF] -hello2000+/423+h55p+++1+qqqq+ffff[LF] -+++++++[LF] -127.0.0.1+/423+http+u22u+p22p+36007+qqqq+ffff[LF] == Contents of files in the log/8/ dir after test 423 === Start of file check-expected 127.0.0.1+/423+http+uuuu+pppp+36007+qqqq+ffff[LF] hello2000+/423+h55p+++1+qqqq+ffff[LF] +++++++[LF] 127.0.0.1+/423+http+u22u+p22p+36007+qqqq+ffff[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind423 ../src/curl -q --trace-ascii log/8/trace423 --trace-time "http://uuuu:pppp@127.0.0.1:36007/423?qqqq#ffff" "h55p://hello2000:1/423?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:36007/423?qqqq#ffff" -w '%{url.host}+%{url.path}+%{url.scheme}+%{url.user}+%{url.password}+%{url.port}+%{url.query}+%{url.fragment}\n' > log/8/stdout423 2> log/8/stderr423 === End of file commands.log === Start of file http_server.log 10:31:30.827732 ====> Client connect 10:31:30.828125 accept_connection 3 returned 4 10:31:30.828350 accept_connection 3 returned 0 10:31:30.828548 Read 93 bytes 10:31:30.828667 Process 93 bytes request 10:31:30.828763 Got request: GET /verifiedserver HTTP/1.1 10:31:30.828847 Are-we-friendly question received 10:31:30.829115 Wrote request (93 bytes) input to log/8/server.input 10:31:30.829387 Identifying ourselves as friends 10:31:30.830276 Response sent (56 bytes) and written to log/8/server.response 10:31:30.830429 special request received, no persistency 10:31:30.830496 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57904 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 423 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind423 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind423 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind425 ../src/curl -q --output log/2/curl425.out --include --trace-ascii log/2/trace425 --trace-time -T log/2/up425 http://127.0.0.1:43789/425/?fullpath > log/2/stdout425 2> log/2/stderr425 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind426 ../src/curl -q --output log/3/curl426.out --include --trace-ascii log/3/trace426 --trace-time http://127.0.0.1:36933/426 -d foobar -C 3 > log/3/stdout426 2> log/3/stderr426 test 0424...[-w with urle.* variables] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind424 ../src/curl -q --trace-ascii log/7/trace424 --trace-time "http://uuuu:pppp@127.0.0.1:40129/424?qqqq#ffff" "h55p://hello2000:1/424?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:40129/424?qqqq#ffff" -w '%{urle.host}+%{urle.path}+%{urle.scheme}+%{urle.user}+%{urle.password}+%{urle.port}+%{urle.query}+%{urle.fragment}\n' -x http://127.0.0.1:40129/ -L > log/7/stdout424 2> log/7/stderr424 424: stdout FAILED: --- log/7/check-expected 2025-09-11 10:31:32.167898587 +0000 +++ log/7/check-generated 2025-09-11 10:31:32.167898587 +0000 @@ -1,4 +0,0 @@ -anotherhost.example+/4240002+http+++2023+moo.html+[LF] -hello2000+/424+h55p+++1+qqqq+ffff[LF] -+++++++[LF] -anotherhost.example+/4240002+http+++2023+moo.html+[LF] == Contents of files in the log/7/ dir after test 424 === Start of file check-expected anotherhost.example+/4240002+http+++2023+moo.html+[LF] hello2000+/424+h55p+++1+qqqq+ffff[LF] +++++++[LF] anotherhost.example+/4240002+http+++2023+moo.html+[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind424 ../src/curl -q --trace-ascii log/7/trace424 --trace-time "http://uuuu:pppp@127.0.0.1:40129/424?qqqq#ffff" "h55p://hello2000:1/424?qqqq#ffff" "local host" "http://u22u:p22p@127.0.0.1:40129/424?qqqq#ffff" -w '%{urle.host}+%{urle.path}+%{urle.scheme}+%{urle.user}+%{urle.password}+%{urle.port}+%{urle.query}+%{urle.fragment}\n' -x http://127.0.0.1:40129/ -L > log/7/stdout424 2> log/7/stderr424 === End of file commands.log === Start of file http_server.log 10:31:30.952519 ====> Client connect 10:31:30.952928 accept_connection 3 returned 4 10:31:30.953140 accept_connection 3 returned 0 10:31:30.953284 Read 93 bytes 10:31:30.953375 Process 93 bytes request 10:31:30.953471 Got request: GET /verifiedserver HTTP/1.1 10:31:30.953553 Are-we-friendly question received 10:31:30.953771 Wrote request (93 bytes) input to log/7/server.input 10:31:30.953967 Identifying ourselves as friends 10:31:30.954800 Response sent (56 bytes) and written to log/7/server.response 10:31:30.954968 special request received, no persistency 10:31:30.955051 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 34452 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 424 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind424 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind424 test 0425...[HTTP PUT with path ending with slash + query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind425 ../src/curl -q --output log/2/curl425.out --include --trace-ascii log/2/trace425 --trace-time -T log/2/up425 http://127.0.0.1:43789/425/?fullpath > log/2/stdout425 2> log/2/stderr425 425: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 425 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind425 ../src/curl -q --output log/2/curl425.out --include --trace-ascii log/2/trace425 --trace-time -T log/2/up425 http://127.0.0.1:43789/425/?fullpath > log/2/stdout425 2> log/2/stderr425 === End of file commands.log === Start of file http_server.log 10:31:31.511490 ====> Client connect 10:31:31.512043 accept_connection 3 returned 4 10:31:31.512393 accept_connection 3 returned 0 10:31:31.512619 Read 93 bytes 10:31:31.512764 Process 93 bytes request 10:31:31.512878 Got request: GET /verifiedserver HTTP/1.1 10:31:31.513144 Are-we-friendly question received 10:31:31.513537 Wrote request (93 bytes) input to log/2/server.input 10:31:31.513935 Identifying ourselves as friends 10:31:31.515173 Response sent (56 bytes) and written to log/2/server.response 10:31:31.515366 special request received, no persistency 10:31:31.515497 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 58558 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 425 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file up425 content === End of file up425 === Start of file valgrind425 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The packCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind427 ../src/curl -q --output log/5/curl427.out --include --trace-ascii log/5/trace427 --trace-time http://127.0.0.1:41733/427 -c log/5/cookies427 -L > log/5/stdout427 2> log/5/stderr427 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind428 ../src/curl -q --output log/6/curl428.out --include --trace-ascii log/6/trace428 --trace-time http://127.0.0.1:33363/428 -K log/6/cmd > log/6/stdout428 2> log/6/stderr428 age you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind425 test 0426...[try --data with --continue-at] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind426 ../src/curl -q --output log/3/curl426.out --include --trace-ascii log/3/trace426 --trace-time http://127.0.0.1:36933/426 -d foobar -C 3 > log/3/stdout426 2> log/3/stderr426 curl returned 1, when expecting 2 426: exit FAILED == Contents of files in the log/3/ dir after test 426 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind426 ../src/curl -q --output log/3/curl426.out --include --trace-ascii log/3/trace426 --trace-time http://127.0.0.1:36933/426 -d foobar -C 3 > log/3/stdout426 2> log/3/stderr426 === End of file commands.log === Start of file http_server.log 10:31:31.593964 ====> Client connect 10:31:31.594308 accept_connection 3 returned 4 10:31:31.594511 accept_connection 3 returned 0 10:31:31.595349 Read 93 bytes 10:31:31.595617 Process 93 bytes request 10:31:31.595744 Got request: GET /verifiedserver HTTP/1.1 10:31:31.595845 Are-we-friendly question received 10:31:31.596482 Wrote request (93 bytes) input to log/3/server.input 10:31:31.596771 Identifying ourselves as friends 10:31:31.597459 Response sent (56 bytes) and written to log/3/server.response 10:31:31.597620 special request received, no persistency 10:31:31.597682 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 43058 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 426 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind426 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind426 test 0427...[Keep Cookie: header within 8190 bytes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind427 ../src/curl -q --output log/5/curl427.out --include --trace-ascii log/5/trace427 --trace-time http://127.0.0.1:41733/427 -c log/5/cookies427 -L > log/5/stdout427 2> log/5/stderr427 427: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 427 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind427 ../src/curl -q --output log/5/curl427.out --include --trace-ascii log/5/trace427 --trace-time http://127.0.0.1:41733/427 -c log/5/cookies427 -L > log/5/stdout427 2> log/5/stderr427 === End of file commands.log === Start of file http_server.log 10:31:32.651440 ====> Client connect 10:31:32.651720 accept_connection 3 returned 4 10:31:32.651882 accept_connection 3 returned 0 10:31:32.652428 Read 93 bytes 10:31:32.652520 Process 93 bytes request 10:31:32.652603 Got request: GET /verifiedserver HTTP/1.1 10:31:32.652674 Are-we-friendly question received 10:31:32.652910 Wrote request (93 bytes) input to log/5/server.input 10:31:32.653072 Identifying ourselves as friends 10:31:32.653763 Response sent (56 bytes) and written to log/5/server.response 10:31:32.653911 special request received, no persistency 10:31:32.653984 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36738 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 427 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind427 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind427 setenv FUNVALUE = contents setenv VALUE2 = curl setenv BLANK =CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind429 ../src/curl -q --output log/1/curl429.out --include --trace-ascii log/1/trace429 --trace-time http://127.0.0.1:36129/429 -K log/1/cmd > log/1/stdout429 2> log/1/stderr429 test 0428...[Expand environment variables within config file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind428 ../src/curl -q --output log/6/curl428.out --include --trace-ascii log/6/trace428 --trace-time http://127.0.0.1:33363/428 -K log/6/cmd > log/6/stdout428 2> log/6/stderr428 428: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 428 === Start of file cmd --variable %FUNVALUE --variable %VALUE2 --variable %BLANK --variable %curl_NOT_SET=default --expand-data 1{{FUNVALUE}}2{{VALUE2}}3{{curl_NOT_SET}}4{{BLANK}}5\{{verbatim}}6{{not.good}}7{{}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind428 ../src/curl -q --output log/6/curl428.out --include --trace-ascii log/6/trace428 --trace-time http://127.0.0.1:33363/428 -K log/6/cmd > log/6/stdout428 2> log/6/stderr428 === End of file commands.log === Start of file http_server.log 10:31:31.739687 ====> Client connect 10:31:31.740163 accept_connection 3 returned 4 10:31:31.740414 accept_connection 3 returned 0 10:31:31.740616 Read 93 bytes 10:31:31.740730 Process 93 bytes request 10:31:31.740846 Got request: GET /verifiedserver HTTP/1.1 10:31:31.740956 Are-we-friendly question received 10:31:31.741270 Wrote request (93 bytes) input to log/6/server.input 10:31:31.741512 Identifying ourselves as friends 10:31:31.742545 Response sent (56 bytes) and written to log/6/server.response 10:31:31.742811 special request received, no persistency 10:31:31.743108 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47862 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 428 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind428 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind428 setenv FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF = contents2023 test 0429...[Expand environment variable in config file - too long name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind429 ../src/curl -q --output log/1/curl429.out --include --trace-ascii log/1/trace429 --trace-time http://127.0.0.1:36129/429 -K log/1/cmd > log/1/stdout429 2> log/1/stderr429 429: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 429 === Start of file cmd --expand-data {{FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind429 ../src/curl -q --output log/1/curl429.out --include --trace-ascii log/1/trace429 --trace-time http://127.0.0.1:36129/429 -K log/1/cmd > log/1/stdout429 2> log/1/stderr429 === End of file commands.log === Start of file http_server.log 10:31:31.810993 ====> Client connect 10:31:31.811355 accept_connection 3 returned 4 10:31:31.811559 accept_connection 3 returned 0 10:31:31.811713 Read 93 bytes 10:31:31.812056 Process 93 bytes request 10:31:31.812240 Got request: GET /verifiedserver HTTP/1.1 10:31:31.812346 Are-we-friendly question received 10:31:31.812654 Wrote request (93 bytes) input to log/1/server.input 10:31:31.812881 Identifying ourselves as friends 10:31:31.813758 Response sent (56 bytes) and written to log/1/server.response 10:31:31.813904 special request received, no persistency 10:31:31.813977 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 57334 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 429 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind429 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a correCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind431 ../src/curl -q --output log/4/curl431.out --include --trace-ascii log/4/trace431 --trace-time -K log/4/config431-a -K log/4/config431-b --next -d c 127.0.0.1:36757/4310003 -H "c: c" > log/4/stdout431 2> log/4/stderr431 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind430 ../src/curl -q --output log/8/curl430.out --include --trace-ascii log/8/trace430 --trace-time -K log/8/config430-a -K log/8/config430-b -K log/8/config430-c > log/8/stdout430 2> log/8/stderr430 sponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind429 test 0431...[Two -K uses with --next and then one on cmdline] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind431 ../src/curl -q --output log/4/curl431.out --include --trace-ascii log/4/trace431 --trace-time -K log/4/config431-a -K log/4/config431-b --next -d c 127.0.0.1:36757/4310003 -H "c: c" > log/4/stdout431 2> log/4/stderr431 431: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 431 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind431 ../src/curl -q --output log/4/curl431.out --include --trace-ascii log/4/trace431 --trace-time -K log/4/config431-a -K log/4/config431-b --next -d c 127.0.0.1:36757/4310003 -H "c: c" > log/4/stdout431 2> log/4/stderr431 === End of file commands.log === Start of file config431-a --next url = 127.0.0.1:36757/4310001 header = "a: a" data = "a" === End of file config431-a === Start of file config431-b --next url = 127.0.0.1:36757/4310002 header = "b: b" data = "b" === End of file config431-b === Start of file http_server.log 10:31:32.900178 ====> Client connect 10:31:32.900608 accept_connection 3 returned 4 10:31:32.900875 accept_connection 3 returned 0 10:31:32.903042 Read 93 bytes 10:31:32.903260 Process 93 bytes request 10:31:32.903373 Got request: GET /verifiedserver HTTP/1.1 10:31:32.903445 Are-we-friendly question received 10:31:32.903722 Wrote request (93 bytes) input to log/4/server.input 10:31:32.904073 Identifying ourselves as friends 10:31:32.904973 Response sent (56 bytes) and written to log/4/server.response 10:31:32.905146 special request received, no persistency 10:31:32.905227 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 51534 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 431 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind431 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind431 test 0430...[Three -K uses with --next and --data in each] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind430 ../src/curl -q --output log/8/curl430.out --include --trace-ascii log/8/trace430 --trace-time -K log/8/config430-a -K log/8/config430-b -K log/8/config430-c > log/8/stdout430 2> log/8/stderr430 430: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 430 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind430 ../src/curl -q --output log/8/curl430.out --include --trace-ascii log/8/trace430 --trace-time -K log/8/config430-a -K log/8/config430-b -K log/8/config430-c > log/8/stdout430 2> log/8/stderr430 === End of file commands.log === Start of file config430-a --next url = 127.0.0.1:36007/4300001 header = "a: a" data = "a" === End of file config430-a === Start of file config430-b --next url = 127.0.0.1:36007/4300002 header = "b: b" data = "b" === End of file config430-b === Start of file config430-c --next url = 127.0.0.1:36007/4300003 header = "c: c" data = "c" === End of file config430-c === Start of file http_server.log 10:31:31.874901 ====> Client connect 10:31:31.875246 accept_connection 3 returned 4 10:31:31.875460 accept_connection 3 returned 0 10:31:31.875642 Read 93 bytes 10:31:31.875768 Process 93 bytes request 10:31:31.876208 Got request: GET /verifiedserver HTTP/1.1 10:31:31.876404 Are-we-friendly question received 10:31:31.876769 Wrote request (93 bytes) input to log/8/server.input 10:31:31.877093 Identifying ourselves as friends 10:31:31.877997 Response sent (56 bytes) and written to log/8/server.response 10:31:31.878149 special request received, no persistency 10:31:31.878225 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57908 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 430 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind430 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this pCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind432 ../src/curl -q --output log/7/curl432.out --include --trace-ascii log/7/trace432 --trace-time -K log/7/config432 > log/7/stdout432 2> log/7/stderr432 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind434 ../src/curl -q --output log/2/curl434.out --include --trace-ascii log/2/trace434 --trace-time -K log/2/config434 > log/2/stdout434 2> log/2/stderr434 latform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind430 test 0432...[Use -K with --next and --config from within] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind432 ../src/curl -q --output log/7/curl432.out --include --trace-ascii log/7/trace432 --trace-time -K log/7/config432 > log/7/stdout432 2> log/7/stderr432 432: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 432 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind432 ../src/curl -q --output log/7/curl432.out --include --trace-ascii log/7/trace432 --trace-time -K log/7/config432 > log/7/stdout432 2> log/7/stderr432 === End of file commands.log === Start of file config432 --next url = 127.0.0.1:40129/4320001 header = "a: a" data = "a" --next url = 127.0.0.1:40129/4320002 header = "b: b" data = "b" config = "log/7/config432-c" === End of file config432 === Start of file config432-c --next url = 127.0.0.1:40129/4320003 header = "c: c" data = "c" === End of file config432-c === Start of file http_server.log 10:31:32.058539 ====> Client connect 10:31:32.058936 accept_connection 3 returned 4 10:31:32.059195 accept_connection 3 returned 0 10:31:32.059361 Read 93 bytes 10:31:32.059468 Process 93 bytes request 10:31:32.059558 Got request: GET /verifiedserver HTTP/1.1 10:31:32.059627 Are-we-friendly question received 10:31:32.059873 Wrote request (93 bytes) input to log/7/server.input 10:31:32.060314 Identifying ourselves as friends 10:31:32.061172 Response sent (56 bytes) and written to log/7/server.response 10:31:32.061366 special request received, no persistency 10:31:32.061467 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 34456 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 432 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind432 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind432 test 0434...[-K with a single line without newline] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind434 ../src/curl -q --output log/2/curl434.out --include --trace-ascii log/2/trace434 --trace-time -K log/2/config434 > log/2/stdout434 2> log/2/stderr434 434: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 434 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind434 ../src/curl -q --output log/2/curl434.out --include --trace-ascii log/2/trace434 --trace-time -K log/2/config434 > log/2/stdout434 2> log/2/stderr434 === End of file commands.log === Start of file config434 url = 127.0.0.1:43789/434 === End of file config434 === Start of file http_server.log 10:31:32.545661 ====> Client connect 10:31:32.546076 accept_connection 3 returned 4 10:31:32.546309 accept_connection 3 returned 0 10:31:32.546507 Read 93 bytes 10:31:32.546659 Process 93 bytes request 10:31:32.546791 Got request: GET /verifiedserver HTTP/1.1 10:31:32.546909 Are-we-friendly question received 10:31:32.547261 Wrote request (93 bytes) input to log/2/server.input 10:31:32.547640 Identifying ourselves as friends 10:31:32.548718 Response sent (56 bytes) and written to log/2/server.response 10:31:32.548931 special request received, no persistency 10:31:32.549026 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 58568 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 434 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind434 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind435 ../src/curl -q --include --trace-ascii log/3/trace435 --trace-time http://127.0.0.1:36933/435 http://127.0.0.1:36933/435 -w 'local port == %{local_port}\nlocal ip == %{local_ip}\nremote_ip == %{remote_ip}\nremote_port == %{remote_port}\n' > log/3/stdout435 2> log/3/stderr435 On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind434 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind436 ../src/curl --output log/5/curl436.out --include --trace-ascii log/5/trace436 --trace-time 127.0.0.1:41733/436 > log/5/stdout436 2> log/5/stderr436 test 0435...[verify -w local/remote port+ip after connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind435 ../src/curl -q --include --trace-ascii log/3/trace435 --trace-time http://127.0.0.1:36933/435 http://127.0.0.1:36933/435 -w 'local port == %{local_port}\nlocal ip == %{local_ip}\nremote_ip == %{remote_ip}\nremote_port == %{remote_port}\n' > log/3/stdout435 2> log/3/stderr435 435: stdout FAILED: --- log/3/check-expected 2025-09-11 10:31:33.759930278 +0000 +++ log/3/check-generated 2025-09-11 10:31:33.759930278 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Content-Length: 0[CR][LF] -[CR][LF] -local port == [digits][LF] -local ip == 127.0.0.1[LF] -remote_ip == 127.0.0.1[LF] -remote_port == 36933[LF] -HTTP/1.1 200 OK[CR][LF] -Content-Length: 0[CR][LF] -[CR][LF] -local port == [digits][LF] -local ip == 127.0.0.1[LF] -remote_ip == 127.0.0.1[LF] -remote_port == 36933[LF] == Contents of files in the log/3/ dir after test 435 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Content-Length: 0[CR][LF] [CR][LF] local port == [digits][LF] local ip == 127.0.0.1[LF] remote_ip == 127.0.0.1[LF] remote_port == 36933[LF] HTTP/1.1 200 OK[CR][LF] Content-Length: 0[CR][LF] [CR][LF] local port == [digits][LF] local ip == 127.0.0.1[LF] remote_ip == 127.0.0.1[LF] remote_port == 36933[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind435 ../src/curl -q --include --trace-ascii log/3/trace435 --trace-time http://127.0.0.1:36933/435 http://127.0.0.1:36933/435 -w 'local port == %{local_port}\nlocal ip == %{local_ip}\nremote_ip == %{remote_ip}\nremote_port == %{remote_port}\n' > log/3/stdout435 2> log/3/stderr435 === End of file commands.log === Start of file http_server.log 10:31:32.601007 ====> Client connect 10:31:32.601394 accept_connection 3 returned 4 10:31:32.601637 accept_connection 3 returned 0 10:31:32.601803 Read 93 bytes 10:31:32.601895 Process 93 bytes request 10:31:32.602000 Got request: GET /verifiedserver HTTP/1.1 10:31:32.602079 Are-we-friendly question received 10:31:32.602322 Wrote request (93 bytes) input to log/3/server.input 10:31:32.602514 Identifying ourselves as friends 10:31:32.603291 Response sent (56 bytes) and written to log/3/server.response 10:31:32.603456 special request received, no persistency 10:31:32.603531 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 43066 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 435 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind435 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind435 setenv CURL_HOME = /build/curl/src/build-curl/tests/log/5 test 0436...[Find .curlrc in .config/curlrc via CURL_HOME] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind436 ../src/curl --output log/5/curl436.out --include --trace-ascii log/5/trace436 --trace-time 127.0.0.1:41733/436 > log/5/stdout436 2> log/5/stderr436 436: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 436 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind436 ../src/curl --output log/5/curl436.out --include --trace-ascii log/5/trace436 --trace-time 127.0.0.1:41733/436 > log/5/stdout436 2> log/5/stderr436 === End of file commands.log === Start of file http_server.log 10:31:33.721250 ====> Client connect 10:31:33.721619 accept_connection 3 returned 4 10:31:33.721875 accept_connection 3 returned 0 10:31:33.722097 Read 93 bytes 10:31:33.722213 Process 93 bytes request 10:31:33.722314 Got request: GET /verifiedserver HTTP/1.1 10:31:33.722404 Are-we-friendly question received 10:31:33.722712 Wrote request (93 bytes) input to log/5/server.input 10:31:33.722973 Identifying ourselves as friends 10:31:33.723807 Response sent (56 bytes) and written to log/5/server.response 10:31:33.728215 special request received, no persistency 10:31:33.728339 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36740 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 436 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind436 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind440 ../src/curl -q --include --trace-ascii log/6/trace440 --trace-time -x http://127.0.0.1:33363 http://this.hsts.example./440 --hsts log/6/input440 -w '%{url_effective}\n' > log/6/stdout440 2> log/6/stderr440 unction using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind436 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind441 ../src/curl -q --include --trace-ascii log/1/trace441 --trace-time -x http://127.0.0.1:36129 http://this.hsts.example/441 --hsts log/1/input441 -w '%{url_effective}\n' > log/1/stdout441 2> log/1/stderr441 test 0440...[HSTS with trailing-dot host name in URL but none in hsts file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind440 ../src/curl -q --include --trace-ascii log/6/trace440 --trace-time -x http://127.0.0.1:33363 http://this.hsts.example./440 --hsts log/6/input440 -w '%{url_effective}\n' > log/6/stdout440 2> log/6/stderr440 440: stdout FAILED: --- log/6/check-expected 2025-09-11 10:31:34.007935215 +0000 +++ log/6/check-generated 2025-09-11 10:31:34.007935215 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 403 not OK at all[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] -https://this.hsts.example./440[LF] == Contents of files in the log/6/ dir after test 440 === Start of file check-expected HTTP/1.1 403 not OK at all[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] https://this.hsts.example./440[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind440 ../src/curl -q --include --trace-ascii log/6/trace440 --trace-time -x http://127.0.0.1:33363 http://this.hsts.example./440 --hsts log/6/input440 -w '%{url_effective}\n' > log/6/stdout440 2> log/6/stderr440 === End of file commands.log === Start of file http_server.log 10:31:32.780499 ====> Client connect 10:31:32.781061 accept_connection 3 returned 4 10:31:32.781401 accept_connection 3 returned 0 10:31:32.781618 Read 93 bytes 10:31:32.781775 Process 93 bytes request 10:31:32.781907 Got request: GET /verifiedserver HTTP/1.1 10:31:32.782012 Are-we-friendly question received 10:31:32.782264 Wrote request (93 bytes) input to log/6/server.input 10:31:32.782609 Identifying ourselves as friends 10:31:32.783687 Response sent (56 bytes) and written to log/6/server.response 10:31:32.786113 special request received, no persistency 10:31:32.786444 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47870 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file input440 this.hsts.example "99991001 04:47:41" === End of file input440 === Start of file server.cmd Testnum 440 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind440 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind440 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind443 ../src/curl -q --output log/8/curl443.out --include --trace-ascii log/8/trace443 --trace-time http://attack.invalid:36007/a/b/443 -b log/8/cookie443 --resolve attack.invalid:36007:127.0.0.1 -L > log/8/stdout443 2> log/8/stderr443 test 0441...[HSTS with no t-dot host name in URL but t-dot in file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind441 ../src/curl -q --include --trace-ascii log/1/trace441 --trace-time -x http://127.0.0.1:36129 http://this.hsts.example/441 --hsts log/1/input441 -w '%{url_effective}\n' > log/1/stdout441 2> log/1/stderr441 441: stdout FAILED: --- log/1/check-expected 2025-09-11 10:31:34.143937922 +0000 +++ log/1/check-generated 2025-09-11 10:31:34.143937922 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 403 not OK at all[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] -https://this.hsts.example/441[LF] == Contents of files in the log/1/ dir after test 441 === Start of file check-expected HTTP/1.1 403 not OK at all[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] https://this.hsts.example/441[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind441 ../src/curl -q --include --trace-ascii log/1/trace441 --trace-time -x http://127.0.0.1:36129 http://this.hsts.example/441 --hsts log/1/input441 -w '%{url_effective}\n' > log/1/stdout441 2> log/1/stderr441 === End of file commands.log === Start of file http_server.log 10:31:32.892100 ====> Client connect 10:31:32.892565 accept_connection 3 returned 4 10:31:32.892790 accept_connection 3 returned 0 10:31:32.892975 Read 93 bytes 10:31:32.893112 Process 93 bytes request 10:31:32.893224 Got request: GET /verifiedserver HTTP/1.1 10:31:32.893329 Are-we-friendly question received 10:31:32.893677 Wrote request (93 bytes) input to log/1/server.input 10:31:32.893879 Identifying ourselves as friends 10:31:32.894762 Response sent (56 bytes) and written to log/1/server.response 10:31:32.894923 special request received, no persistency 10:31:32.895001 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 57336 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file input441 this.hsts.example. "99991001 04:47:41" === End of file input441 === Start of file server.cmd Testnum 441 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind441 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind441 test 0443...[Cookie header in request no longer than 8K] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind443 ../src/curl -q --output log/8/curl443.out --include --trace-ascii log/8/trace443 --trace-time http://attack.invalid:36007/a/b/443 -b log/8/cookie443 --resolve attack.invalid:36007:127.0.0.1 -L > log/8/stdout443 2> log/8/stderr443 443: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 443 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind443 ../src/curl -q --output log/8/curl443.out --include --trace-ascii log/8/trace443 --trace-time http://attack.invalid:36007/a/b/443 -b log/8/cookie443 --resolve attack.invalid:36007:127.0.0.1 -L > log/8/stdout443 2> log/8/stderr443 === End of file commands.log === Start of file cookie443 attack.invalid TRUE / FALSE 0 huge-1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-1 attack.invalid TRUE / FALSE 0 huge-2 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-2 attack.invalid TRUE / FALSE 0 huge-3 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-3 attack.invalid TRUE / FALSE 0 huge-4 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-4 attack.invalid TRUE / FALSE 0 huge-5 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-5 attack.invalid TRUE / FALSE 0 huge-6 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-6 attack.invalid TRUE / FALSE 0 huge-7 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-7 attack.invalid TRUE / FALSE 0 huge-8 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-8 attack.invalid TRUE / FALSE 0 huge-9 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-9 attack.invalid TRUE / FALSE 0 huge-10 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-10 attack.invalid TRUE / FALSE 0 huge-11 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-11 attack.invalid TRUE / FALSE 0 huge-12 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-12 attack.invalid TRUE / FALSE 0 huge-13 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-13 attack.invalid TRUE / FALSE 0 huge-14 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-14 attack.invalid TRUE / FALSE 0 huge-15 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-15 attack.invalid TRUE / FALSE 0 huge-16 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-16 attack.invalid TRUE / FALSE 0 huge-17 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-17 attack.invalid TRUE / FALSE 0 huge-18 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-18 attack.invalid TRUE / FALSE 0 huge-19 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-19 attack.invalid TRUE / FALSE 0 huge-20 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind444 ../src/curl -q --output log/7/curl444.out --include --trace-ascii log/7/trace444 --trace-time http://attack.invalid:40129/a/b/444 -c log/7/cookie444 --resolve attack.invalid:40129:127.0.0.1 > log/7/stdout444 2> log/7/stderr444 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind442 ../src/curl -q --output log/4/curl442.out --include --trace-ascii log/4/trace442 --trace-time http://attack.invalid:36757/a/b/442 -b log/4/cookie442 --resolve attack.invalid:36757:127.0.0.1 -L > log/4/stdout442 2> log/4/stderr442 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-20 === End of file cookie443 === Start of file http_server.log 10:31:33.061009 ====> Client connect 10:31:33.061367 accept_connection 3 returned 4 10:31:33.061569 accept_connection 3 returned 0 10:31:33.061730 Read 93 bytes 10:31:33.061870 Process 93 bytes request 10:31:33.062040 Got request: GET /verifiedserver HTTP/1.1 10:31:33.062178 Are-we-friendly question received 10:31:33.062507 Wrote request (93 bytes) input to log/8/server.input 10:31:33.062793 Identifying ourselves as friends 10:31:33.063783 Response sent (56 bytes) and written to log/8/server.response 10:31:33.065133 special request received, no persistency 10:31:33.065247 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57912 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 443 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind443 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind443 test 0444...[Many Set-Cookie response headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind444 ../src/curl -q --output log/7/curl444.out --include --trace-ascii log/7/trace444 --trace-time http://attack.invalid:40129/a/b/444 -c log/7/cookie444 --resolve attack.invalid:40129:127.0.0.1 > log/7/stdout444 2> log/7/stderr444 444: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 444 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind444 ../src/curl -q --output log/7/curl444.out --include --trace-ascii log/7/trace444 --trace-time http://attack.invalid:40129/a/b/444 -c log/7/cookie444 --resolve attack.invalid:40129:127.0.0.1 > log/7/stdout444 2> log/7/stderr444 === End of file commands.log === Start of file http_server.log 10:31:33.188894 ====> Client connect 10:31:33.189380 accept_connection 3 returned 4 10:31:33.189583 accept_connection 3 returned 0 10:31:33.190990 Read 93 bytes 10:31:33.191203 Process 93 bytes request 10:31:33.191347 Got request: GET /verifiedserver HTTP/1.1 10:31:33.191453 Are-we-friendly question received 10:31:33.191738 Wrote request (93 bytes) input to log/7/server.input 10:31:33.192346 Identifying ourselves as friends 10:31:33.193536 Response sent (56 bytes) and written to log/7/server.response 10:31:33.193720 special request received, no persistency 10:31:33.193802 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 34458 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 444 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind444 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind444 test 0442...[Send capped huge number of matching cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind442 ../src/curl -q --output log/4/curl442.out --include --trace-ascii log/4/trace442 --trace-time http://attack.invalid:36757/a/b/442 -b log/4/cookie442 --resolve attack.invalid:36757:127.0.0.1 -L > log/4/stdout442 2> log/4/stderr442 442: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 442 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind442 ../src/curl -q --output log/4/curl442.out --include --trace-ascii log/4/trace442 --trace-time http://attack.invalid:36757/a/b/442 -b log/4/cookie442 --resolve attack.invalid:36757:127.0.0.1 -L > log/4/stdout442 2> log/4/stderr442 === End of file commands.log === Start of file cookie442 attack.invalid TRUE / FALSE 0 name1 could-be-large-1 attack.invalid TRUE / FALSE 0 name2 could-be-large-2 attack.invalid TRUE / FALSE 0 name3 could-be-large-3 attack.invalid TRUE / FALSE 0 name4 could-be-large-4 attack.invalid TRUE / FALSE 0 name5 could-be-large-5 attack.invalid TRUE / FALSE 0 name6 could-be-large-6 attack.invalid TRUE / FALSE 0 name7 could-be-large-7 attack.invalid TRUE / FALSE 0 name8 could-be-large-8 attack.invalid TRUE / FALSE 0 name9 could-be-large-9 attack.invalid TRUE / FALSE 0 name10 could-be-large-10 attack.invalid TRUE / FALSE 0 name11 could-be-large-11 attack.invalid TRUE / FALSE 0 name12 could-be-large-12 attack.invalid TRUE / FALSE 0 name13 could-be-large-13 attack.invalid TRUE / FALSE 0 name14 could-be-large-14 attack.invalid TRUE / FALSE 0 name15 could-be-large-15 attack.invalid TRUE / FALSE 0 name16 could-be-large-16 attack.invalid TRUE / FALSE 0 name17 could-be-large-17 attack.invalid TRUE / FALSE 0 name18 could-be-large-18 attack.invalid TRUE / FALSE 0 name19 could-be-large-19 attack.invalid TRUE / FALSE 0 name20 could-be-large-20 attack.invalid TRUE / FALSE 0 name21 could-be-large-21 attack.invalid TRUE / FALSE 0 name22 could-be-large-22 attack.invalid TRUE / FALSE 0 name23 could-be-large-23 attack.invalid TRUE / FALSE 0 name24 could-be-large-24 attack.invalid TRUE / FALSE 0 name25 could-be-large-25 attack.invalid TRUE / FALSE 0 name26 could-be-large-26 attack.invalid TRUE / FALSE 0 name27 could-be-large-27 attack.invalid TRUE / FALSE 0 name28 could-be-large-28 attack.invalid TRUE / FALSE 0 name29 could-be-large-29 attack.invalid TRUE / FALSE 0 name30 could-be-large-30 attack.invalid TRUE / FALSE 0 name31 could-be-large-31 attack.invalid TRUE / FALSE 0 name32 could-be-large-32 attack.invalid TRUE / FALSE 0 name33 could-be-large-33 attack.invalid TRUE / FALSE 0 name34 could-be-large-34 attack.invalid TRUE / FALSE 0 name35 could-be-large-35 attack.invalid TRUE / FALSE 0 name36 could-be-large-36 attack.invalid TRUE / FALSE 0 name37 could-be-large-37 attack.invalid TRUE / FALSE 0 name38 could-be-large-38 attack.invalid TRUE / FALSE 0 name39 could-be-large-39 attack.invalid TRUE / FALSE 0 name40 could-be-large-40 attack.invalid TRUE / FALSE 0 name41 could-be-large-41 attack.invalid TRUE / FALSE 0 name42 could-be-large-42 attack.invalid TRUE / FALSE 0 name43 could-be-large-43 attack.invalid TRUE / FALSE 0 name44 could-be-large-44 attack.invalid TRUE / FALSE 0 name45 could-be-large-45 attack.invalid TRUE / FALSE 0 name46 could-be-large-46 attack.invalid TRUE / FALSE 0 name47 could-be-large-47 attack.invalid TRUE / FALSE 0 name48 could-be-large-48 attack.invalid TRUE / FALSE 0 name49 could-be-large-49 attack.invalid TRUE / FALSE 0 name50 could-be-large-50 attack.invalid TRUE / FALSE 0 name51 could-be-large-51 attack.invalid TRUE / FALSE 0 name52 could-be-large-52 attack.invalid TRUE / FALSE 0 name53 could-be-large-53 attack.invalid TRUE / FALSE 0 name54 could-be-large-54 attack.invalid TRUE / FALSE 0 name55 could-be-large-55 attack.invalid TRUE / FALSE 0 name56 could-be-large-56 attack.invalid TRUE / FALSE 0 name57 could-be-large-57 attack.invalid TRUE / FALSE 0 name58 could-be-large-58 attack.invalid TRUE / FALSE 0 name59 could-be-large-59 attack.invalid TRUE / FALSE 0 name60 could-be-large-60 attack.invalid TRUE / FALSE 0 name61 could-be-large-61 attack.invalid TRUE / FALSE 0 name62 could-be-large-62 attack.invalid TRUE / FALSE 0 name63 could-be-large-63 attack.invalid TRUE / FALSE 0 name64 could-be-large-64 attack.invalid TRUE / FALSE 0 name65 could-be-large-65 attack.invalid TRUE / FALSE 0 name66 could-be-large-66 attack.invalid TRUE / FALSE 0 name67 could-be-large-67 attack.invalid TRUE / FALSE 0 name68 could-be-large-68 attack.invalid TRUE / FALSE 0 name69 could-be-large-69 attack.invalid TRUE / FALSE 0 name70 could-be-large-70 attack.invalid TRUE / FALSE 0 name71 could-be-large-71 attack.invalid TRUE / FALSE 0 name72 could-be-large-72 attack.invalid TRUE / FALSE 0 name73 could-be-large-73 attack.invalid TRUE / FALSE 0 name74 could-be-large-74 attack.invalid TRUE / FALSE 0 name75 could-be-large-75 attack.invalid TRUE / FALSE 0 name76 could-be-large-76 attack.invalid TRUE / FALSE 0 name77 could-be-large-77 attack.invalid TRUE / FALSE 0 name78 could-be-large-78 attack.invalid TRUE / FALSE 0 name79 could-be-large-79 attack.invalid TRUE / FALSE 0 name80 could-be-large-80 attack.invalid TRUE / FALSE 0 name81 could-be-large-81 attack.invalid TRUE / FALSE 0 name82 could-be-large-82 attack.invalid TRUE / FALSE 0 name83 could-be-large-83 attack.invalid TRUE / FALSE 0 name84 could-be-large-84 attack.invalid TRUE / FALSE 0 name85 could-be-large-85 attack.invalid TRUE / FALSE 0 name86 could-be-large-86 attack.invalid TRUE / FALSE 0 name87 could-be-large-87 attack.invalid TRUE / FALSE 0 name88 could-be-large-88 attack.invalid TRUE / FALSE 0 name89 could-be-large-89 attack.invalid TRUE / FALSE 0 name90 could-be-large-90 attack.invalid TRUE / FALSE 0 name91 could-be-large-91 attack.invalid TRUE / FALSE 0 name92 could-be-large-92 attack.invalid TRUE / FALSE 0 name93 could-be-large-93 attack.invalid TRUE / FALSE 0 name94 could-be-large-94 attack.invalid TRUE / FALSE 0 name95 could-be-large-95 attack.invalid TRUE / FALSE 0 name96 could-be-large-96 attack.invalid TRUE / FALSE 0 name97 could-be-large-97 attack.invalid TRUE / FALSE 0 name98 could-be-large-98 attack.invalid TRUE / FALSE 0 name99 could-be-large-99 attack.invalid TRUE / FALSE 0 name100 could-be-large-100 attack.invalid TRUE / FALSE 0 name101 could-be-large-101 attack.invalid TRUE / FALSE 0 name102 could-be-large-102 attack.invalid TRUE / FALSE 0 name103 could-be-large-103 attack.invalid TRUE / FALSE 0 name104 could-be-large-104 attack.invalid TRUE / FALSE 0 name105 could-be-large-105 attack.invalid TRUE / FALSE 0 name106 could-be-large-106 attack.invalid TRUE / FALSE 0 name107 could-be-large-107 attack.invalid TRUE / FALSE 0 name108 could-be-large-108 attack.invalid TRUE / FALSE 0 name109 could-be-large-109 attack.invalid TRUE / FALSE 0 name110 could-be-large-110 attack.invalid TRUE / FALSE 0 name111 could-be-large-111 attack.invalid TRUE / FALSE 0 name112 could-be-large-112 attack.invalid TRUE / FALSE 0 name113 could-be-large-113 attack.invalid TRUE / FALSE 0 name114 could-be-large-114 attack.invalid TRUE / FALSE 0 name115 could-be-large-115 attack.invalid TRUE / FALSE 0 name116 could-be-large-116 attack.invalid TRUE / FALSE 0 name117 could-be-large-117 attack.invalid TRUE / FALSE 0 name118 could-be-large-118 attack.invalid TRUE / FALSE 0 name119 could-be-large-119 attack.invalid TRUE / FALSE 0 name120 could-be-large-120 attack.invalid TRUE / FALSE 0 name121 could-be-large-121 attack.invalid TRUE / FALSE 0 name122 could-be-large-122 attack.invalid TRUE / FALSE 0 name123 could-be-large-123 attack.invalid TRUE / FALSE 0 name124 could-be-large-124 attack.invalid TRUE / FALSE 0 name125 could-be-large-125 attack.invalid TRUE / FALSE 0 name126 could-be-large-126 attack.invalid TRUE / FALSE 0 name127 could-be-large-127 attack.invalid TRUE / FALSE 0 name128 could-be-large-128 attack.invalid TRUE / FALSE 0 name129 could-be-large-129 attack.invalid TRUE / FALSE 0 name130 could-be-large-130 attack.invalid TRUE / FALSE 0 name131 could-be-large-131 attack.invalid TRUE / FALSE 0 name132 could-be-large-132 attack.invalid TRUE / FALSE 0 name133 could-be-large-133 attack.invalid TRUE / FALSE 0 name134 could-be-large-134 attack.invalid TRUE / FALSE 0 name135 could-be-large-135 attack.invalid TRUE / FALSE 0 name136 could-be-large-136 attack.invalid TRUE / FALSE 0 name137 could-be-large-137 attack.invalid TRUE / FALSE 0 name138 could-be-large-138 attack.invalid TRUE / FALSE 0 name139 could-be-large-139 attack.invalid TRUE / FALSE 0 name140 could-be-large-140 attack.invalid TRUE / FALSE 0 name141 could-be-large-141 attack.invalid TRUE / FALSE 0 name142 could-be-large-142 attack.invalid TRUE / FALSE 0 name143 could-be-large-143 attack.invalid TRUE / FALSE 0 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind448 ../src/curl -q --output log/2/curl448.out --include --trace-ascii log/2/trace448 --trace-time http://127.0.0.1:43789/448 -K log/2/cmd > log/2/stdout448 2> log/2/stderr448 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind449 ../src/curl -q --output log/3/curl449.out --include --trace-ascii log/3/trace449 --trace-time http://127.0.0.1:36933/449 -K log/3/cmd > log/3/stdout449 2> log/3/stderr449 name144 could-be-large-144 attack.invalid TRUE / FALSE 0 name145 could-be-large-145 attack.invalid TRUE / FALSE 0 name146 could-be-large-146 attack.invalid TRUE / FALSE 0 name147 could-be-large-147 attack.invalid TRUE / FALSE 0 name148 could-be-large-148 attack.invalid TRUE / FALSE 0 name149 could-be-large-149 attack.invalid TRUE / FALSE 0 name150 could-be-large-150 attack.invalid TRUE / FALSE 0 name151 could-be-large-151 === End of file cookie442 === Start of file http_server.log 10:31:34.050678 ====> Client connect 10:31:34.050993 accept_connection 3 returned 4 10:31:34.051173 accept_connection 3 returned 0 10:31:34.051310 Read 93 bytes 10:31:34.051397 Process 93 bytes request 10:31:34.051479 Got request: GET /verifiedserver HTTP/1.1 10:31:34.051544 Are-we-friendly question received 10:31:34.051781 Wrote request (93 bytes) input to log/4/server.input 10:31:34.056223 Identifying ourselves as friends 10:31:34.057160 Response sent (56 bytes) and written to log/4/server.response 10:31:34.057322 special request received, no persistency 10:31:34.057392 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 51544 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 442 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind442 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind442 setenv FUNVALUE = contents setenv VALUE2 = curl test 0448...[Environment variables within config file, unbalanced braces] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind448 ../src/curl -q --output log/2/curl448.out --include --trace-ascii log/2/trace448 --trace-time http://127.0.0.1:43789/448 -K log/2/cmd > log/2/stdout448 2> log/2/stderr448 448: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 448 === Start of file cmd --variable %FUNVALUE --variable %VALUE2 --expand-data 1{{FUNVALUE}}2{{VALUE2}}3{{curl_NOT_SET}}4{{AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA}}5{{broken === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind448 ../src/curl -q --output log/2/curl448.out --include --trace-ascii log/2/trace448 --trace-time http://127.0.0.1:43789/448 -K log/2/cmd > log/2/stdout448 2> log/2/stderr448 === End of file commands.log === Start of file http_server.log 10:31:33.537820 ====> Client connect 10:31:33.538222 accept_connection 3 returned 4 10:31:33.538437 accept_connection 3 returned 0 10:31:33.538597 Read 93 bytes 10:31:33.538711 Process 93 bytes request 10:31:33.538828 Got request: GET /verifiedserver HTTP/1.1 10:31:33.538934 Are-we-friendly question received 10:31:33.539290 Wrote request (93 bytes) input to log/2/server.input 10:31:33.539639 Identifying ourselves as friends 10:31:33.540787 Response sent (56 bytes) and written to log/2/server.response 10:31:33.540983 special request received, no persistency 10:31:33.541079 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 58584 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 448 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind448 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind448 setenv FUNVALUE = contents setenv VALUE2 = curl setenv BLANK = test 0449...[Environment variables in config file w/o [expand]] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind449 ../src/curl -q --output log/3/curl449.out --include --trace-ascii log/3/trace449 --trace-time http://127.0.0.1:36933/449 -K log/3/cmd > log/3/stdout449 2> log/3/stderr449 449: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind450 ../src/curl -q --output log/5/curl450.out --include --trace-ascii log/5/trace450 --trace-time http://127.0.0.1:41733/450 --variable what@log/5/junk --expand-data "{{what:trim:url}}" > log/5/stdout450 2> log/5/stderr450 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind451 ../src/curl -q --output log/6/curl451.out --include --trace-ascii log/6/trace451 --trace-time http://127.0.0.1:33363/451 --variable what@log/6/junk --variable second=hello --variable second=again --expand-data "--{{what:trim:json}}22{{none}}--{{second}}{{what:trim:url}}" > log/6/stdout451 2> log/6/stderr451 ir after test 449 === Start of file cmd -d 1{{FUNVALUE}}2{{VALUE2}}3{{CURL_NOT_SET}}4{{BLANK}}5\{{verbatim}}6{{not.good}}7{{}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind449 ../src/curl -q --output log/3/curl449.out --include --trace-ascii log/3/trace449 --trace-time http://127.0.0.1:36933/449 -K log/3/cmd > log/3/stdout449 2> log/3/stderr449 === End of file commands.log === Start of file http_server.log 10:31:33.636817 ====> Client connect 10:31:33.637177 accept_connection 3 returned 4 10:31:33.637394 accept_connection 3 returned 0 10:31:33.637571 Read 93 bytes 10:31:33.637779 Process 93 bytes request 10:31:33.637970 Got request: GET /verifiedserver HTTP/1.1 10:31:33.638075 Are-we-friendly question received 10:31:33.638423 Wrote request (93 bytes) input to log/3/server.input 10:31:33.638815 Identifying ourselves as friends 10:31:33.640099 Response sent (56 bytes) and written to log/3/server.response 10:31:33.640288 special request received, no persistency 10:31:33.640396 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 43078 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 449 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind449 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind449 test 0450...[Variable from file that is trimmed and URL encoded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind450 ../src/curl -q --output log/5/curl450.out --include --trace-ascii log/5/trace450 --trace-time http://127.0.0.1:41733/450 --variable what@log/5/junk --expand-data "{{what:trim:url}}" > log/5/stdout450 2> log/5/stderr450 450: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 450 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind450 ../src/curl -q --output log/5/curl450.out --include --trace-ascii log/5/trace450 --trace-time http://127.0.0.1:41733/450 --variable what@log/5/junk --expand-data "{{what:trim:url}}" > log/5/stdout450 2> log/5/stderr450 === End of file commands.log === Start of file http_server.log 10:31:34.740753 ====> Client connect 10:31:34.741131 accept_connection 3 returned 4 10:31:34.741346 accept_connection 3 returned 0 10:31:34.741476 Read 93 bytes 10:31:34.741556 Process 93 bytes request 10:31:34.741643 Got request: GET /verifiedserver HTTP/1.1 10:31:34.741711 Are-we-friendly question received 10:31:34.742010 Wrote request (93 bytes) input to log/5/server.input 10:31:34.742272 Identifying ourselves as friends 10:31:34.743063 Response sent (56 bytes) and written to log/5/server.response 10:31:34.743216 special request received, no persistency 10:31:34.743285 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36754 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file junk space with space === End of file junk === Start of file server.cmd Testnum 450 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind450 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind450 test 0451...[Variable from file that is JSON and URL encoded (with null byte)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind451 ../src/curl -q --output log/6/curl451.out --include --trace-ascii log/6/trace451 --trace-time http://127.0.0.1:33363/451 --variable what@log/6/junk --variable second=hello --variable second=again --expand-data "--{{what:trim:json}}22{{none}}--{{second}}{{what:trim:url}}" > log/6/stdout451 2> log/6/stderr451 451: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind452 ../src/curl -q --output log/1/curl452.out --include --trace-ascii log/1/trace452 --trace-time http://127.0.0.1:36129/452 --variable what=hello --expand-data "--{{what:trim:super}}" > log/1/stdout452 2> log/1/stderr452 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind453 ../src/curl -q --output log/8/curl453.out --include --trace-ascii log/8/trace453 --trace-time http://127.0.0.1:36007/453 --variable what@log/8/junk --expand-data "{{what}}" > log/8/stdout453 2> log/8/stderr453 of files in the log/6/ dir after test 451 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind451 ../src/curl -q --output log/6/curl451.out --include --trace-ascii log/6/trace451 --trace-time http://127.0.0.1:33363/451 --variable what@log/6/junk --variable second=hello --variable second=again --expand-data "--{{what:trim:json}}22{{none}}--{{second}}{{what:trim:url}}" > log/6/stdout451 2> log/6/stderr451 === End of file commands.log === Start of file http_server.log 10:31:33.903005 ====> Client connect 10:31:33.903354 accept_connection 3 returned 4 10:31:33.903554 accept_connection 3 returned 0 10:31:33.903667 Read 93 bytes 10:31:33.903750 Process 93 bytes request 10:31:33.903945 Got request: GET /verifiedserver HTTP/1.1 10:31:33.904072 Are-we-friendly question received 10:31:33.904364 Wrote request (93 bytes) input to log/6/server.input 10:31:33.904590 Identifying ourselves as friends 10:31:33.905413 Response sent (56 bytes) and written to log/6/server.response 10:31:33.905567 special request received, no persistency 10:31:33.905645 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47886 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file junk  === End of file junk === Start of file server.cmd Testnum 451 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind451 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind451 test 0452...[Variable using illegal function in expansion] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind452 ../src/curl -q --output log/1/curl452.out --include --trace-ascii log/1/trace452 --trace-time http://127.0.0.1:36129/452 --variable what=hello --expand-data "--{{what:trim:super}}" > log/1/stdout452 2> log/1/stderr452 curl returned 1, when expecting 2 452: exit FAILED == Contents of files in the log/1/ dir after test 452 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind452 ../src/curl -q --output log/1/curl452.out --include --trace-ascii log/1/trace452 --trace-time http://127.0.0.1:36129/452 --variable what=hello --expand-data "--{{what:trim:super}}" > log/1/stdout452 2> log/1/stderr452 === End of file commands.log === Start of file http_server.log 10:31:34.053738 ====> Client connect 10:31:34.054123 accept_connection 3 returned 4 10:31:34.054345 accept_connection 3 returned 0 10:31:34.054479 Read 93 bytes 10:31:34.054561 Process 93 bytes request 10:31:34.054649 Got request: GET /verifiedserver HTTP/1.1 10:31:34.054734 Are-we-friendly question received 10:31:34.055034 Wrote request (93 bytes) input to log/1/server.input 10:31:34.055270 Identifying ourselves as friends 10:31:34.056171 Response sent (56 bytes) and written to log/1/server.response 10:31:34.056352 special request received, no persistency 10:31:34.056426 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 57344 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 452 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind452 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind452 test 0453...[Variable output containing null byte] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind453 ../src/curl -q --output log/8/curl453.out --include --trace-ascii log/8/trace453 --trace-time http://127.0.0.1:36007/453 --variable what@log/8/junk --expand-data "{{what}}" > log/8/stdout453 2> log/8/stderr453 curl returned 1, when expecting 2 453: exit FAILED == Contents of files in the log/8/ dir after test 453 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind453 ../src/curl -q --outCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind454 ../src/curl -q --output log/7/curl454.out --include --trace-ascii log/7/trace454 --trace-time http://127.0.0.1:40129/454 --variable what=hello --expand-data "--{{what:trim,url}}" > log/7/stdout454 2> log/7/stderr454 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind455 ../src/curl -q --output log/4/curl455.out --include --trace-ascii log/4/trace455 --trace-time --variable moby="Call me Ishmael" --variable what=d2hpdGUtd2hhbGU= --expand-url "http://127.0.0.1:36757/{{moby:b64}}/{{what:64dec}}/455" > log/4/stdout455 2> log/4/stderr455 put log/8/curl453.out --include --trace-ascii log/8/trace453 --trace-time http://127.0.0.1:36007/453 --variable what@log/8/junk --expand-data "{{what}}" > log/8/stdout453 2> log/8/stderr453 === End of file commands.log === Start of file http_server.log 10:31:34.100378 ====> Client connect 10:31:34.101083 accept_connection 3 returned 4 10:31:34.101420 accept_connection 3 returned 0 10:31:34.101696 Read 93 bytes 10:31:34.101844 Process 93 bytes request 10:31:34.101962 Got request: GET /verifiedserver HTTP/1.1 10:31:34.102066 Are-we-friendly question received 10:31:34.102400 Wrote request (93 bytes) input to log/8/server.input 10:31:34.102661 Identifying ourselves as friends 10:31:34.103616 Response sent (56 bytes) and written to log/8/server.response 10:31:34.107262 special request received, no persistency 10:31:34.107558 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57926 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file junk  === End of file junk === Start of file server.cmd Testnum 453 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind453 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind453 test 0454...[Variable using illegal function separator] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind454 ../src/curl -q --output log/7/curl454.out --include --trace-ascii log/7/trace454 --trace-time http://127.0.0.1:40129/454 --variable what=hello --expand-data "--{{what:trim,url}}" > log/7/stdout454 2> log/7/stderr454 curl returned 1, when expecting 2 454: exit FAILED == Contents of files in the log/7/ dir after test 454 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind454 ../src/curl -q --output log/7/curl454.out --include --trace-ascii log/7/trace454 --trace-time http://127.0.0.1:40129/454 --variable what=hello --expand-data "--{{what:trim,url}}" > log/7/stdout454 2> log/7/stderr454 === End of file commands.log === Start of file http_server.log 10:31:34.460757 ====> Client connect 10:31:34.461195 accept_connection 3 returned 4 10:31:34.461485 accept_connection 3 returned 0 10:31:34.461702 Read 93 bytes 10:31:34.461820 Process 93 bytes request 10:31:34.461926 Got request: GET /verifiedserver HTTP/1.1 10:31:34.462026 Are-we-friendly question received 10:31:34.462412 Wrote request (93 bytes) input to log/7/server.input 10:31:34.462693 Identifying ourselves as friends 10:31:34.463567 Response sent (56 bytes) and written to log/7/server.response 10:31:34.463745 special request received, no persistency 10:31:34.463818 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 34466 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 454 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind454 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind454 test 0455...[Variable using base64] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind455 ../src/curl -q --output log/4/curl455.out --include --trace-ascii log/4/trace455 --trace-time --variable moby="Call me Ishmael" --variable what=d2hpdGUtd2hhbGU= --expand-url "http://127.0.0.1:36757/{{moby:b64}}/{{what:64dec}}/455" > log/4/stdout455 2> log/4/stderr455 455: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 455 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind455 ../src/curl -q --output log/4/curl455.out --include --trace-ascii log/4/trace455 --trace-time --variable moby="Call me Ishmael" --variable what=d2hpdGUtd2hhbGU= --expand-url "http://127.0.0.1:36757/{{moby:b64}}/{{what:64dec}}/455" > log/4/stdout455 2> log/4/stderr455 === End of fileCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind456 ../src/curl -q --output log/2/curl456.out --include --trace-ascii log/2/trace456 --trace-time http://127.0.0.1:43789/456 --variable what@log/2/junk --expand-data "{{what}}" > log/2/stdout456 2> log/2/stderr456 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind457 ../src/curl -q --output log/3/curl457.out --include --trace-ascii log/3/trace457 --trace-time http://127.0.0.1:36933/457 --max-filesize 143 > log/3/stdout457 2> log/3/stderr457 commands.log === Start of file http_server.log 10:31:35.512706 ====> Client connect 10:31:35.513297 accept_connection 3 returned 4 10:31:35.513551 accept_connection 3 returned 0 10:31:35.514989 Read 93 bytes 10:31:35.515201 Process 93 bytes request 10:31:35.515341 Got request: GET /verifiedserver HTTP/1.1 10:31:35.515432 Are-we-friendly question received 10:31:35.515745 Wrote request (93 bytes) input to log/4/server.input 10:31:35.516078 Identifying ourselves as friends 10:31:35.516995 Response sent (56 bytes) and written to log/4/server.response 10:31:35.517179 special request received, no persistency 10:31:35.517270 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 51558 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 455 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind455 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind455 test 0456...[Variable output starting with null byte] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind456 ../src/curl -q --output log/2/curl456.out --include --trace-ascii log/2/trace456 --trace-time http://127.0.0.1:43789/456 --variable what@log/2/junk --expand-data "{{what}}" > log/2/stdout456 2> log/2/stderr456 curl returned 1, when expecting 2 456: exit FAILED == Contents of files in the log/2/ dir after test 456 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind456 ../src/curl -q --output log/2/curl456.out --include --trace-ascii log/2/trace456 --trace-time http://127.0.0.1:43789/456 --variable what@log/2/junk --expand-data "{{what}}" > log/2/stdout456 2> log/2/stderr456 === End of file commands.log === Start of file http_server.log 10:31:34.628895 ====> Client connect 10:31:34.629401 accept_connection 3 returned 4 10:31:34.629680 accept_connection 3 returned 0 10:31:34.629851 Read 93 bytes 10:31:34.629949 Process 93 bytes request 10:31:34.630040 Got request: GET /verifiedserver HTTP/1.1 10:31:34.630115 Are-we-friendly question received 10:31:34.630407 Wrote request (93 bytes) input to log/2/server.input 10:31:34.630679 Identifying ourselves as friends 10:31:34.631742 Response sent (56 bytes) and written to log/2/server.response 10:31:34.636170 special request received, no persistency 10:31:34.636339 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 58590 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file junk hello === End of file junk === Start of file server.cmd Testnum 456 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind456 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind456 test 0457...[chunked Transfer-Encoding with --max-filesize] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind457 ../src/curl -q --output log/3/curl457.out --include --trace-ascii log/3/trace457 --trace-time http://127.0.0.1:36933/457 --max-filesize 143 > log/3/stdout457 2> log/3/stderr457 457: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 457 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind457 ../src/curl -q --output log/3/curl457.out --include --trace-ascii log/3/trace457 --trace-time http://127.0.0.1:36933/457 --max-filesize 143 > log/3/stdout457 2> log/3/stderr457 === End of file commands.log === Start of file http_server.log 10:31:34.672152 ====> Client connect 10:31:34.672669 accept_connection 3 returned 4 10:31:34.672974 accept_connection 3 returned 0 10:31:34.678502 Read 93 bytes 10:31:34.678712 Process 93 bytes request 10:31:34.678818 Got request: GET /verifiedserver HTTP/1.1 10:31:34.678887 Are-we-friendly question received 10:31:34.679CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind458 ../src/curl -q --include --trace-ascii log/5/trace458 --trace-time http://127.0.0.1:41733/458 -K log/5/cmd > log/5/stdout458 2> log/5/stderr458 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind460 ../src/curl -q --output log/1/curl460.out --include --trace-ascii log/1/trace460 --trace-time --expand-url > log/1/stdout460 2> log/1/stderr460 163 Wrote request (93 bytes) input to log/3/server.input 10:31:34.679357 Identifying ourselves as friends 10:31:34.684423 Response sent (56 bytes) and written to log/3/server.response 10:31:34.684658 special request received, no persistency 10:31:34.684738 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 43082 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 457 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind457 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind457 setenv FUNVALUE = contents458 setenv VALUE2 = curl test 0458...[variable expand the file name with --expand-output] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind458 ../src/curl -q --include --trace-ascii log/5/trace458 --trace-time http://127.0.0.1:41733/458 -K log/5/cmd > log/5/stdout458 2> log/5/stderr458 458: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 458 === Start of file cmd --variable %FUNVALUE --expand-output log/5/{{FUNVALUE}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind458 ../src/curl -q --include --trace-ascii log/5/trace458 --trace-time http://127.0.0.1:41733/458 -K log/5/cmd > log/5/stdout458 2> log/5/stderr458 === End of file commands.log === Start of file http_server.log 10:31:35.744654 ====> Client connect 10:31:35.745056 accept_connection 3 returned 4 10:31:35.745305 accept_connection 3 returned 0 10:31:35.745485 Read 93 bytes 10:31:35.745595 Process 93 bytes request 10:31:35.745697 Got request: GET /verifiedserver HTTP/1.1 10:31:35.745780 Are-we-friendly question received 10:31:35.746061 Wrote request (93 bytes) input to log/5/server.input 10:31:35.746312 Identifying ourselves as friends 10:31:35.747342 Response sent (56 bytes) and written to log/5/server.response 10:31:35.747554 special request received, no persistency 10:31:35.747638 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36764 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 458 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind458 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind458 test 0460...[try --expand without an argument] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind460 ../src/curl -q --output log/1/curl460.out --include --trace-ascii log/1/trace460 --trace-time --expand-url > log/1/stdout460 2> log/1/stderr460 curl returned 1, when expecting 2 460: exit FAILED == Contents of files in the log/1/ dir after test 460 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind460 ../src/curl -q --output log/1/curl460.out --include --trace-ascii log/1/trace460 --trace-time --expand-url > log/1/stdout460 2> log/1/stderr460 === End of file commands.log === Start of file server.cmd Testnum 460 === End of file server.cmd === Start of file valgrind460 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: strippeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind459 ../src/curl -q --output log/6/curl459.out --include --trace-ascii log/6/trace459 --trace-time http://127.0.0.1:33363/459 --config log/6/config --silent > log/6/stdout459 2> log/6/stderr459 d ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind460 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind461 ../src/curl -q --output log/8/curl461.out --include --trace-ascii log/8/trace461 --trace-time http://127.0.0.1:36007/461 -H host: > log/8/stdout461 2> log/8/stderr461 test 0459...[config file with argument using whitespace missing quotes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind459 ../src/curl -q --output log/6/curl459.out --include --trace-ascii log/6/trace459 --trace-time http://127.0.0.1:33363/459 --config log/6/config --silent > log/6/stdout459 2> log/6/stderr459 459: stderr FAILED: --- log/6/check-expected 2025-09-11 10:31:36.183978531 +0000 +++ log/6/check-generated 2025-09-11 10:31:36.183978531 +0000 @@ -1,2 +0,0 @@ -Warning: log/6/config:1: warning: 'data' uses unquoted whitespace. This may [CR][LF] -Warning: cause side-effects. Consider double quotes.[CR][LF] == Contents of files in the log/6/ dir after test 459 === Start of file check-expected Warning: log/6/config:1: warning: 'data' uses unquoted whitespace. This may [CR][LF] Warning: cause side-effects. Consider double quotes.[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind459 ../src/curl -q --output log/6/curl459.out --include --trace-ascii log/6/trace459 --trace-time http://127.0.0.1:33363/459 --config log/6/config --silent > log/6/stdout459 2> log/6/stderr459 === End of file commands.log === Start of file config data = arg with space === End of file config === Start of file http_server.log 10:31:34.941891 ====> Client connect 10:31:34.942340 accept_connection 3 returned 4 10:31:34.942538 accept_connection 3 returned 0 10:31:34.942667 Read 93 bytes 10:31:34.942760 Process 93 bytes request 10:31:34.942846 Got request: GET /verifiedserver HTTP/1.1 10:31:34.942915 Are-we-friendly question received 10:31:34.943225 Wrote request (93 bytes) input to log/6/server.input 10:31:34.943551 Identifying ourselves as friends 10:31:34.944407 Response sent (56 bytes) and written to log/6/server.response 10:31:34.944574 special request received, no persistency 10:31:34.944663 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47892 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 459 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind459 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind459 test 0461...[disable Host: when specified as lower case] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind461 ../src/curl -q --output log/8/curl461.out --include --trace-ascii log/8/trace461 --trace-time http://127.0.0.1:36007/461 -H host: > log/8/stdout461 2> log/8/stderr461 461: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 461 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind461 ../src/curl -q --output log/8/curl461.out --include --trace-ascii log/8/trace461 --trace-time http://127.0.0.1:36007/461 -H host: > log/8/stdout461 2> log/8/stderr461 === End of file commands.log === Start of file http_server.log 10:31:35.108308 ====> Client connect 10:31:35.108765 accept_connection 3 returned 4 10:31:35.109053 accept_connection 3 returned 0 10:31:35.109295 Read 93 bytes 10:31:35.109458 Process 93 bytes request 10:31:35.109598 Got request: GET /verifiedserver HTTP/1.1 10:31:35.109718 Are-we-friendly question received 10:31:35.110058 Wrote request (93 bytes) input to log/8/server.input 10:31:35.110380 Identifying ourselves as friends 10:31:35.111449 Response sent (56 bytes) and written to log/8/server.response 10:31:35.111627 special request received, no persistency 10:31:35.111719 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57936 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 461 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind461 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: CannotCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind462 ../src/curl -q --output log/7/curl462.out --include --trace-ascii log/7/trace462 --trace-time http://127.0.0.1:40129/462 -K log/7/cmd > log/7/stdout462 2> log/7/stderr462 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind467 ../src/curl -q --output log/2/curl467.out --include --trace-ascii log/2/trace467 --trace-time curl -v http://example.com > log/2/stdout467 2> log/2/stderr467 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind463 ../src/curl -q --output log/4/curl463.out --include --trace-ascii log/4/trace463 --trace-time -d @log/4/input463 http://127.0.0.1:36757/463 > log/4/stdout463 2> log/4/stderr463 continue -- exiting now. Sorry. === End of file valgrind461 test 0462...[Missing environment variables in config file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind462 ../src/curl -q --output log/7/curl462.out --include --trace-ascii log/7/trace462 --trace-time http://127.0.0.1:40129/462 -K log/7/cmd > log/7/stdout462 2> log/7/stderr462 curl returned 1, when expecting 26 462: exit FAILED == Contents of files in the log/7/ dir after test 462 === Start of file cmd variable %MISSING expand-data {{MISSING}} === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind462 ../src/curl -q --output log/7/curl462.out --include --trace-ascii log/7/trace462 --trace-time http://127.0.0.1:40129/462 -K log/7/cmd > log/7/stdout462 2> log/7/stderr462 === End of file commands.log === Start of file server.cmd Testnum 462 === End of file server.cmd === Start of file valgrind462 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind462 test 0467...[use a bad short option letter that does not exist (after one does exist)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind467 ../src/curl -q --output log/2/curl467.out --include --trace-ascii log/2/trace467 --trace-time curl -v http://example.com > log/2/stdout467 2> log/2/stderr467 curl returned 1, when expecting 2 467: exit FAILED == Contents of files in the log/2/ dir after test 467 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind467 ../src/curl -q --output log/2/curl467.out --include --trace-ascii log/2/trace467 --trace-time curl -v http://example.com > log/2/stdout467 2> log/2/stderr467 === End of file commands.log === Start of file server.cmd Testnum 467 === End of file server.cmd === Start of file valgrind467 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind467 test 0463...[HTTP with -d @file with file containing CR, LF and null byte] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind463 ../src/curl -q --output log/4/curl463.out --include --trace-ascii log/4/trace463 --trace-time -d @log/4/input463 http://127.0.0.1:36757/463 > log/4/stdout463 2> log/4/stderr463 463: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 463 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind463 ../src/curl -q --output log/4/curl463.out --include --trace-ascii log/4/trace463 --trace-time -d @log/4/input463 http://127.0.0.1:36757/463 > log/4/stdout463 2> log/4/stderr463 === End of file commands.log === Start of file http_server.log 10:31:36.515335 ====> Client connect 10:31:36.515719 accept_connection 3 returned 4 10:31:36.515985 accept_connection 3 returned 0 10:31:36.516204 Read 93 bytes 10:31:36.516359 Process 93 bytes request 10:31:36.516480 Got request: GET /verifiedserver HTTP/1.1 10:31:36.516571 Are-we-friendly question received 10:31:36.516844 Wrote request (93 bytes) input to log/4/server.input 10:31:36.517074 Identifying ourselves as friends 10:31:36.518021 Response sent (56 bytes) and written to log/4/server.response 10:31:36.518251 special request received, no persistency 10:31:36.518337 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 51570 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file input463 one two three fourfive === End of file input463 === Start of file server.cmd Testnum 463 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind463 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short termCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind468 ../src/curl -q --trace-ascii log/3/trace468 --trace-time http://127.0.0.1:36933/468 -K log/3/cmd468 -w "" > log/3/stdout468 2> log/3/stderr468 ): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind463 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind469 ../src/curl -q --output log/5/curl469.out --include --trace-ascii log/5/trace469 --trace-time -H “host: 127.0.0.1:41733/“ -s > log/5/stdout469 2> log/5/stderr469 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind470 ../src/curl -q --output log/1/curl470.out --include --trace-ascii log/1/trace470 --trace-time 127.0.0.1:36129 --no-progress-meter -K "log/1/input470" > log/1/stdout470 2> log/1/stderr470 test 0468...[set -w in config, then reset -w to blank on cmdline] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind468 ../src/curl -q --trace-ascii log/3/trace468 --trace-time http://127.0.0.1:36933/468 -K log/3/cmd468 -w "" > log/3/stdout468 2> log/3/stderr468 468: stdout FAILED: --- log/3/check-expected 2025-09-11 10:31:36.911993022 +0000 +++ log/3/check-generated 2025-09-11 10:31:36.903992863 +0000 @@ -1 +0,0 @@ --foo-[LF] == Contents of files in the log/3/ dir after test 468 === Start of file check-expected -foo-[LF] === End of file check-expected === Start of file cmd468 -w "output\n" === End of file cmd468 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind468 ../src/curl -q --trace-ascii log/3/trace468 --trace-time http://127.0.0.1:36933/468 -K log/3/cmd468 -w "" > log/3/stdout468 2> log/3/stderr468 === End of file commands.log === Start of file http_server.log 10:31:35.715609 ====> Client connect 10:31:35.716001 accept_connection 3 returned 4 10:31:35.716263 accept_connection 3 returned 0 10:31:35.716408 Read 93 bytes 10:31:35.716501 Process 93 bytes request 10:31:35.716596 Got request: GET /verifiedserver HTTP/1.1 10:31:35.716677 Are-we-friendly question received 10:31:35.716926 Wrote request (93 bytes) input to log/3/server.input 10:31:35.717140 Identifying ourselves as friends 10:31:35.718016 Response sent (56 bytes) and written to log/3/server.response 10:31:35.718193 special request received, no persistency 10:31:35.718284 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 43088 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 468 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind468 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind468 test 0470...[warn about Unicode quote character read from config file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind470 ../src/curl -q --output log/1/curl470.out --include --trace-ascii log/1/trace470 --trace-time 127.0.0.1:36129 --no-progress-meter -K "log/1/input470" > log/1/stdout470 2> log/1/stderr470 470: stderr FAILED: --- log/1/check-expected 2025-09-11 10:31:36.955993898 +0000 +++ log/1/check-generated 2025-09-11 10:31:36.955993898 +0000 @@ -1,2 +0,0 @@ -Warning: The argument '%e2%80%9chost:fake%e2%80%9d' starts with a Unicode character. Maybe [CR][LF] -Warning: ASCII was intended?[CR][LF] == Contents of files in the log/1/ dir after test 470 === Start of file check-expected Warning: The argument '%e2%80%9chost:fake%e2%80%9d' starts with a Unicode character. Maybe [CR][LF] Warning: ASCII was intended?[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind470 ../src/curl -q --output log/1/curl470.out --include --trace-ascii log/1/trace470 --trace-time 127.0.0.1:36129 --no-progress-meter -K "log/1/input470" > log/1/stdout470 2> log/1/stderr470 === End of file commands.log === Start of file http_server.log 10:31:35.793387 ====> Client connect 10:31:35.793785 accept_connection 3 returned 4 10:31:35.793998 accept_connection 3 returned 0 10:31:35.794156 Read 93 bytes 10:31:35.794268 Process 93 bytes request 10:31:35.794373 Got request: GET /verifiedserver HTTP/1.1 10:31:35.794456 Are-we-friendly question received 10:31:35.794736 Wrote request (93 bytes) input to log/1/server.input 10:31:35.794959 Identifying ourselves as friends 10:31:35.795793 Response sent (56 bytes) and written to log/1/server.response 10:31:35.796154 special request received, no persistency 10:31:35.796239 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 57354 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file input470 -H “host:fake†=== End of file input470 === Start of file server.cmd Testnum 470 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind470 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind470 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind471 ../src/curl -q --include --trace-ascii log/6/trace471 --trace-time "http://127.0.0.1:33363/{471,4710001}" -o "log/6/dumpit#1.dump" > log/6/stdout471 2> log/6/stderr471 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind473 ../src/curl -q --output log/8/curl473.out --include --trace-ascii log/8/trace473 --trace-time http://127.0.0.1:36007/473 --etag-save log/8/etag473 > log/8/stdout473 2> log/8/stderr473 test 0469...[warn about Unicode quote character] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind469 ../src/curl -q --output log/5/curl469.out --include --trace-ascii log/5/trace469 --trace-time -H “host: 127.0.0.1:41733/“ -s > log/5/stdout469 2> log/5/stderr469 469: stderr FAILED: --- log/5/check-expected 2025-09-11 10:31:36.991994615 +0000 +++ log/5/check-generated 2025-09-11 10:31:36.991994615 +0000 @@ -1,2 +0,0 @@ -Warning: The argument '%e2%80%9chost:' starts with a Unicode character. Maybe ASCII [LF] -Warning: was intended?[LF] == Contents of files in the log/5/ dir after test 469 === Start of file check-expected Warning: The argument '%e2%80%9chost:' starts with a Unicode character. Maybe ASCII [LF] Warning: was intended?[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind469 ../src/curl -q --output log/5/curl469.out --include --trace-ascii log/5/trace469 --trace-time -H “host: 127.0.0.1:41733/“ -s > log/5/stdout469 2> log/5/stderr469 === End of file commands.log === Start of file http_server.log 10:31:36.749462 ====> Client connect 10:31:36.749923 accept_connection 3 returned 4 10:31:36.750158 accept_connection 3 returned 0 10:31:36.750359 Read 93 bytes 10:31:36.750527 Process 93 bytes request 10:31:36.750667 Got request: GET /verifiedserver HTTP/1.1 10:31:36.750804 Are-we-friendly question received 10:31:36.751197 Wrote request (93 bytes) input to log/5/server.input 10:31:36.751492 Identifying ourselves as friends 10:31:36.752537 Response sent (56 bytes) and written to log/5/server.response 10:31:36.752734 special request received, no persistency 10:31:36.752845 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36774 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 469 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind469 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind469 test 0471...[Reject HTTP/1.1 to HTTP/2 switch on the same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind471 ../src/curl -q --include --trace-ascii log/6/trace471 --trace-time "http://127.0.0.1:33363/{471,4710001}" -o "log/6/dumpit#1.dump" > log/6/stdout471 2> log/6/stderr471 471: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 471 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind471 ../src/curl -q --include --trace-ascii log/6/trace471 --trace-time "http://127.0.0.1:33363/{471,4710001}" -o "log/6/dumpit#1.dump" > log/6/stdout471 2> log/6/stderr471 === End of file commands.log === Start of file http_server.log 10:31:36.044336 ====> Client connect 10:31:36.044740 accept_connection 3 returned 4 10:31:36.045006 accept_connection 3 returned 0 10:31:36.045212 Read 93 bytes 10:31:36.045329 Process 93 bytes request 10:31:36.045422 Got request: GET /verifiedserver HTTP/1.1 10:31:36.045502 Are-we-friendly question received 10:31:36.045742 Wrote request (93 bytes) input to log/6/server.input 10:31:36.045924 Identifying ourselves as friends 10:31:36.046689 Response sent (56 bytes) and written to log/6/server.response 10:31:36.046825 special request received, no persistency 10:31:36.046908 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47896 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 471 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind471 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind471 test 0473...[Check if --etag-save saved correct etag to a file on 301] ../libtool --mode=execute /usr/bin/valgrind --tool=memCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind477 ../src/curl -q --output log/7/curl477.out --include --trace-ascii log/7/trace477 --trace-time http://127.0.0.1:40129/477 --max-filesize 5 -L > log/7/stdout477 2> log/7/stderr477 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind478 ../src/curl -q --output log/3/curl478.out --include --trace-ascii log/3/trace478 --trace-time --netrc --netrc-file log/3/netrc478 -x http://127.0.0.1:36933/ http://debbie@github.com/ > log/3/stdout478 2> log/3/stderr478 check --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind473 ../src/curl -q --output log/8/curl473.out --include --trace-ascii log/8/trace473 --trace-time http://127.0.0.1:36007/473 --etag-save log/8/etag473 > log/8/stdout473 2> log/8/stderr473 473: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 473 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind473 ../src/curl -q --output log/8/curl473.out --include --trace-ascii log/8/trace473 --trace-time http://127.0.0.1:36007/473 --etag-save log/8/etag473 > log/8/stdout473 2> log/8/stderr473 === End of file commands.log === Start of file http_server.log 10:31:36.092266 ====> Client connect 10:31:36.092823 accept_connection 3 returned 4 10:31:36.093183 accept_connection 3 returned 0 10:31:36.093472 Read 93 bytes 10:31:36.093700 Process 93 bytes request 10:31:36.094041 Got request: GET /verifiedserver HTTP/1.1 10:31:36.094256 Are-we-friendly question received 10:31:36.094656 Wrote request (93 bytes) input to log/8/server.input 10:31:36.095050 Identifying ourselves as friends 10:31:36.096319 Response sent (56 bytes) and written to log/8/server.response 10:31:36.096538 special request received, no persistency 10:31:36.096809 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57946 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 473 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind473 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind473 test 0477...[HTTP GET with maximum filesize with a redirect sending data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind477 ../src/curl -q --output log/7/curl477.out --include --trace-ascii log/7/trace477 --trace-time http://127.0.0.1:40129/477 --max-filesize 5 -L > log/7/stdout477 2> log/7/stderr477 477: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 477 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind477 ../src/curl -q --output log/7/curl477.out --include --trace-ascii log/7/trace477 --trace-time http://127.0.0.1:40129/477 --max-filesize 5 -L > log/7/stdout477 2> log/7/stderr477 === End of file commands.log === Start of file http_server.log 10:31:36.431705 ====> Client connect 10:31:36.432115 accept_connection 3 returned 4 10:31:36.432327 accept_connection 3 returned 0 10:31:36.432489 Read 93 bytes 10:31:36.432592 Process 93 bytes request 10:31:36.432683 Got request: GET /verifiedserver HTTP/1.1 10:31:36.432763 Are-we-friendly question received 10:31:36.433021 Wrote request (93 bytes) input to log/7/server.input 10:31:36.433220 Identifying ourselves as friends 10:31:36.434053 Response sent (56 bytes) and written to log/7/server.response 10:31:36.434233 special request received, no persistency 10:31:36.434302 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 34488 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 477 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind477 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind477 test 0478...[.netrc with multiple accounts for same host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind478 ../src/curl -q --output log/3/curl478.out --include --trace-ascii log/3/trace478 --trace-time --netrc --netrc-file log/3/netrc478 -x http://127.0.0.1:36933/ http://debbie@github.com/ > log/3/stdout478 2> log/3/stderr478 478: protocol FAILED! ThereCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind475 ../src/curl -q --output log/2/curl475.out --include --trace-ascii log/2/trace475 --trace-time "ftp://127.0.0.1:37959/475;type=a" -T log/2/test475.txt > log/2/stdout475 2> log/2/stderr475 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind476 ../src/curl -q --output log/4/curl476.out --include --trace-ascii log/4/trace476 --trace-time "ftp://127.0.0.1:42635/476;type=a" -T log/4/test476.txt > log/4/stdout476 2> log/4/stderr476 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind481 ../src/curl -q --trace-ascii log/6/trace481 --trace-time http://127.0.0.1:33363/481 --no-clobber -C 1 -o "log/6/481" > log/6/stdout481 2> log/6/stderr481 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind479 ../src/curl -q --output log/5/curl479.out --include --trace-ascii log/5/trace479 --trace-time --netrc --netrc-file log/5/netrc479 -L -x http://127.0.0.1:41733/ http://a.com/ > log/5/stdout479 2> log/5/stderr479 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind482 ../src/curl -q --trace-ascii log/8/trace482 --trace-time http://non-existing-host.haxx.se. --remove-on-error -C 1 -o "log/8/482" > log/8/stdout482 2> log/8/stderr482 was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 478 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind478 ../src/curl -q --output log/3/curl478.out --include --trace-ascii log/3/trace478 --trace-time --netrc --netrc-file log/3/netrc478 -x http://127.0.0.1:36933/ http://debbie@github.com/ > log/3/stdout478 2> log/3/stderr478 === End of file commands.log === Start of file http_server.log 10:31:36.752094 ====> Client connect 10:31:36.752354 accept_connection 3 returned 4 10:31:36.752522 accept_connection 3 returned 0 10:31:36.753212 Read 93 bytes 10:31:36.753376 Process 93 bytes request 10:31:36.753467 Got request: GET /verifiedserver HTTP/1.1 10:31:36.753533 Are-we-friendly question received 10:31:36.753754 Wrote request (93 bytes) input to log/3/server.input 10:31:36.753904 Identifying ourselves as friends 10:31:36.754337 Response sent (56 bytes) and written to log/3/server.response 10:31:36.754443 special request received, no persistency 10:31:36.754501 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 43094 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file netrc478 machine github.com password weird password firstone login daniel machine github.com machine github.com login debbie machine github.com password weird password "second\r" login debbie === End of file netrc478 === Start of file server.cmd Testnum 478 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind478 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind478 test 0475...[FTP PASV upload ASCII file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind475 ../src/curl -q --output log/2/curl475.out --include --trace-ascii log/2/trace475 --trace-time "ftp://127.0.0.1:37959/475;type=a" -T log/2/test475.txt > log/2/stdout475 2> log/2/stderr475 475: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 475 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind475 ../src/curl -q --output log/2/curl475.out --include --trace-ascii log/2/trace475 --trace-time "ftp://127.0.0.1:37959/475;type=a" -T log/2/test475.txt > log/2/stdout475 2> log/2/stderr475 === End of file commands.log === Start of file ftp_server.log 10:31:36.749138 ====> Client connect 10:31:36.750681 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:36.753769 < "USER anonymous" 10:31:36.754424 > "331 We are happy you popped in![CR][LF]" 10:31:36.759758 < "PASS ftp@example.com" 10:31:36.760340 > "230 Welcome you silly person[CR][LF]" 10:31:36.765983 < "PWD" 10:31:36.766652 > "257 "/" is current directory[CR][LF]" 10:31:36.770083 < "EPSV" 10:31:36.770672 ====> Passive DATA channel requested by client 10:31:36.771036 DATA sockfilt for passive data channel starting... 10:31:36.789142 DATA sockfilt for passive data channel started (pid 99671) 10:31:36.794962 DATA sockfilt for passive data channel listens on port 45965 10:31:36.795880 > "229 Entering Passive Mode (|||45965|)[LF]" 10:31:36.796326 Client has been notified that DATA conn will be accepted on port 45965 10:31:36.817190 Client connects to port 45965 10:31:36.817926 ====> Client established passive DATA connection on port 45965 10:31:36.823081 < "TYPE I" 10:31:36.823961 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:36.832512 < "SIZE verifiedserver" 10:31:36.833754 > "213 17[CR][LF]" 10:31:36.838012 < "RETR verifiedserver" 10:31:36.838859 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:36.840026 =====> Closing passive DATA connection... 10:31:36.840465 Server disconnects passive DATA connection 10:31:36.842949 Server disconnected passive DATA connection 10:31:36.843370 DATA sockfilt for passive data channel quits (pid 99671) 10:31:36.847217 DATA sockfilt for passive data channel quit (pid 99671) 10:31:36.847530 =====> Closed passive DATA connection 10:31:36.847961 > "226 File transfer complete[CR][LF]" 10:31:36.887452 < "QUIT" 10:31:36.887933 > "221 bye bye baby[CR][LF]" 10:31:36.889447 MAIN sockfilt said DISC 10:31:36.892683 ====> Client disconnected 10:31:36.893615 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:36.418783 ====> Client connect 10:31:36.421481 Received DATA (on stdin) 10:31:36.421706 > 160 bytes data, server => client 10:31:36.421816 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:36.421902 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:36.421971 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:36.422787 < 16 bytes data, client => server 10:31:36.423030 'USER anonymous\r\n' 10:31:36.427976 Received DATA (on stdin) 10:31:36.428277 > 33 bytes data, server => client 10:31:36.428394 '331 We are happy you popped in!\r\n' 10:31:36.429247 < 22 bytes data, client => server 10:31:36.429479 'PASS ftp@example.com\r\n' 10:31:36.430707 Received DATA (on stdin) 10:31:36.430920 > 30 bytes data, server => client 10:31:36.431044 '230 Welcome you silly person\r\n' 10:31:36.435334 < 5 bytes data, client => server 10:31:36.435651 'PWD\r\n' 10:31:36.437022 Received DATA (on stdin) 10:31:36.437276 > 30 bytes data, server => client 10:31:36.437388 '257 "/" is current directory\r\n' 10:31:36.439110 < 6 bytes data, client => server 10:31:36.439416 'EPSV\r\n' 10:31:36.467971 Received DATA (on stdin) 10:31:36.468406 > 38 bytes data, server => client 10:31:36.468652 '229 Entering Passive Mode (|||45965|)\n' 10:31:36.485460 < 8 bytes data, client => server 10:31:36.485847 'TYPE I\r\n' 10:31:36.495192 Received DATA (on stdin) 10:31:36.495613 > 33 bytes data, server => client 10:31:36.495771 '200 I modify TYPE as you wanted\r\n' 10:31:36.500789 < 21 bytes data, client => server 10:31:36.501113 'SIZE verifiedserver\r\n' 10:31:36.504988 Received DATA (on stdin) 10:31:36.505376 > 8 bytes data, server => client 10:31:36.505695 '213 17\r\n' 10:31:36.507094 < 21 bytes data, client => server 10:31:36.507398 'RETR verifiedserver\r\n' 10:31:36.509220 Received DATA (on stdin) 10:31:36.509471 > 29 bytes data, server => client 10:31:36.509669 '150 Binary junk (17 bytes).\r\n' 10:31:36.518338 Received DATA (on stdin) 10:31:36.518581 > 28 bytes data, server => client 10:31:36.518717 '226 File transfer complete\r\n' 10:31:36.556708 < 6 bytes data, client => server 10:31:36.556919 'QUIT\r\n' 10:31:36.558653 Received DATA (on stdin) 10:31:36.558820 > 18 bytes data, server => client 10:31:36.558893 '221 bye bye baby\r\n' 10:31:36.559420 ====> Client disconnect 10:31:36.560407 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:36.453232 Running IPv4 version 10:31:36.453978 Listening on port 45965 10:31:36.454674 Wrote pid 99671 to log/2/server/ftp_sockdata.pid 10:31:36.455999 Received PING (on stdin) 10:31:36.462752 Received PORT (on stdin) 10:31:36.485497 ====> Client connect 10:31:36.510615 Received DATA (on stdin) 10:31:36.510818 > 17 bytes data, server => client 10:31:36.510921 'WE ROOLZ: 79558\r\n' 10:31:36.512205 Received DISC (on stdin) 10:31:36.512520 ====> Client forcibly disconnected 10:31:36.514186 Received QUIT (on stdin) 10:31:36.514365 quits 10:31:36.514964 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 475 === End of file server.cmd === Start of file test475.txt a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this === File too long: 349 lines omitted here a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this === End of file test475.txt === Start of file valgrind475 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind475 test 0476...[FTP PASV upload ASCII file already using CRLF] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind476 ../src/curl -q --output log/4/curl476.out --include --trace-ascii log/4/trace476 --trace-time "ftp://127.0.0.1:42635/476;type=a" -T log/4/test476.txt > log/4/stdout476 2> log/4/stderr476 476: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 476 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind476 ../src/curl -q --output log/4/curl476.out --include --trace-ascii log/4/trace476 --trace-time "ftp://127.0.0.1:42635/476;type=a" -T log/4/test476.txt > log/4/stdout476 2> log/4/stderr476 === End of file commands.log === Start of file ftp_server.log 10:31:36.780048 ====> Client connect 10:31:36.781959 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:36.787379 < "USER anonymous" 10:31:36.788281 > "331 We are happy you popped in![CR][LF]" 10:31:36.792834 < "PASS ftp@example.com" 10:31:36.793708 > "230 Welcome you silly person[CR][LF]" 10:31:36.802986 < "PWD" 10:31:36.804416 > "257 "/" is current directory[CR][LF]" 10:31:36.817954 < "EPSV" 10:31:36.818578 ====> Passive DATA channel requested by client 10:31:36.819046 DATA sockfilt for passive data channel starting... 10:31:36.840136 DATA sockfilt for passive data channel started (pid 99678) 10:31:36.842562 DATA sockfilt for passive data channel listens on port 45257 10:31:36.843228 > "229 Entering Passive Mode (|||45257|)[LF]" 10:31:36.843589 Client has been notified that DATA conn will be accepted on port 45257 10:31:36.847145 Client connects to port 45257 10:31:36.847578 ====> Client established passive DATA connection on port 45257 10:31:36.848511 < "TYPE I" 10:31:36.849037 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:36.853862 < "SIZE verifiedserver" 10:31:36.854464 > "213 17[CR][LF]" 10:31:36.858265 < "RETR verifiedserver" 10:31:36.858853 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:36.859840 =====> Closing passive DATA connection... 10:31:36.860268 Server disconnects passive DATA connection 10:31:36.862750 Server disconnected passive DATA connection 10:31:36.863326 DATA sockfilt for passive data channel quits (pid 99678) 10:31:36.865649 DATA sockfilt for passive data channel quit (pid 99678) 10:31:36.866052 =====> Closed passive DATA connection 10:31:36.866451 > "226 File transfer complete[CR][LF]" 10:31:36.903586 < "QUIT" 10:31:36.904149 > "221 bye bye baby[CR][LF]" 10:31:36.905893 MAIN sockfilt said DISC 10:31:36.906885 ====> Client disconnected 10:31:36.907535 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:37.448091 ====> Client connect 10:31:37.452275 Received DATA (on stdin) 10:31:37.452573 > 160 bytes data, server => client 10:31:37.452704 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:37.452806 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:37.452891 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:37.454240 < 16 bytes data, client => server 10:31:37.454508 'USER anonymous\r\n' 10:31:37.460225 Received DATA (on stdin) 10:31:37.460672 > 33 bytes data, server => client 10:31:37.460876 '331 We are happy you popped in!\r\n' 10:31:37.461931 < 22 bytes data, client => server 10:31:37.462282 'PASS ftp@example.com\r\n' 10:31:37.466279 Received DATA (on stdin) 10:31:37.466572 > 30 bytes data, server => client 10:31:37.466713 '230 Welcome you silly person\r\n' 10:31:37.468799 < 5 bytes data, client => server 10:31:37.469085 'PWD\r\n' 10:31:37.475021 Received DATA (on stdin) 10:31:37.480425 > 30 bytes data, server => client 10:31:37.482143 '257 "/" is current directory\r\n' 10:31:37.484678 < 6 bytes data, client => server 10:31:37.484996 'EPSV\r\n' 10:31:37.513603 Received DATA (on stdin) 10:31:37.513881 > 38 bytes data, server => client 10:31:37.514107 '229 Entering Passive Mode (|||45257|)\n' 10:31:37.517374 < 8 bytes data, client => server 10:31:37.517652 'TYPE I\r\n' 10:31:37.520033 Received DATA (on stdin) 10:31:37.520322 > 33 bytes data, server => client 10:31:37.520468 '200 I modify TYPE as you wanted\r\n' 10:31:37.522286 < 21 bytes data, client => server 10:31:37.522596 'SIZE verifiedserver\r\n' 10:31:37.525170 Received DATA (on stdin) 10:31:37.525430 > 8 bytes data, server => client 10:31:37.525564 '213 17\r\n' 10:31:37.527669 < 21 bytes data, client => server 10:31:37.528040 'RETR verifiedserver\r\n' 10:31:37.529388 Received DATA (on stdin) 10:31:37.529595 > 29 bytes data, server => client 10:31:37.529724 '150 Binary junk (17 bytes).\r\n' 10:31:37.537315 Received DATA (on stdin) 10:31:37.537527 > 28 bytes data, server => client 10:31:37.537633 '226 File transfer complete\r\n' 10:31:37.572787 < 6 bytes data, client => server 10:31:37.573041 'QUIT\r\n' 10:31:37.574917 Received DATA (on stdin) 10:31:37.575101 > 18 bytes data, server => client 10:31:37.575193 '221 bye bye baby\r\n' 10:31:37.575707 ====> Client disconnect 10:31:37.576611 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:36.507673 Running IPv4 version 10:31:36.508411 Listening on port 45257 10:31:36.509125 Wrote pid 99678 to log/4/server/ftp_sockdata.pid 10:31:36.509545 Received PING (on stdin) 10:31:36.511688 Received PORT (on stdin) 10:31:36.516943 ====> Client connect 10:31:36.531028 Received DATA (on stdin) 10:31:36.531346 > 17 bytes data, server => client 10:31:36.531552 'WE ROOLZ: 79516\r\n' 10:31:36.532114 Received DISC (on stdin) 10:31:36.532427 ====> Client forcibly disconnected 10:31:36.534203 Received QUIT (on stdin) 10:31:36.534420 quits 10:31:36.534953 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 476 === End of file server.cmd === Start of file test476.txt a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this === File too long: 349 lines omitted here a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this a line of text used for verifying this === End of file test476.txt === Start of file valgrind476 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind476 test 0479...[.netrc with redirect and default without password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind479 ../src/curl -q --output log/5/curl479.out --include --trace-ascii log/5/trace479 --trace-time --netrc --netrc-file log/5/netrc479 -L -x http://127.0.0.1:41733/ http://a.com/ > log/5/stdout479 2> log/5/stderr479 479: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 479 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind479 ../src/curl -q --output log/5/curl479.out --include --trace-ascii log/5/trace479 --trace-time --netrc --netrc-file log/5/netrc479 -L -x http://127.0.0.1:41733/ http://a.com/ > log/5/stdout479 2> log/5/stderr479 === End of file commands.log === Start of file http_server.log 10:31:37.851037 ====> Client connect 10:31:37.851408 accept_connection 3 returned 4 10:31:37.851639 accept_connection 3 returned 0 10:31:37.852731 Read 93 bytes 10:31:37.852949 Process 93 bytes request 10:31:37.853048 Got request: GET /verifiedserver HTTP/1.1 10:31:37.853117 Are-we-friendly question received 10:31:37.853366 Wrote request (93 bytes) input to log/5/server.input 10:31:37.853566 Identifying ourselves as friends 10:31:37.854140 Response sent (56 bytes) and written to log/5/server.response 10:31:37.854299 special request received, no persistency 10:31:37.854370 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36780 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file netrc479 machine a.com login alice password alicespassword default login bob === End of file netrc479 === Start of file server.cmd Testnum 479 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind479 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind479 test 0481...[--no-clobber with --continue-at] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind481 ../src/curl -q --trace-ascii log/6/trace481 --trace-time http://127.0.0.1:33363/481 --no-clobber -C 1 -o "log/6/481" > log/6/stdout481 2> log/6/stderr481 481: stderr FAILED: --- log/6/check-expected 2025-09-11 10:31:38.460023837 +0000 +++ log/6/check-generated 2025-09-11 10:31:38.460023837 +0000 @@ -1,3 +0,0 @@ -curl: --continue-at is mutually exclusive with --no-clobber[CR][LF] -curl: option -C: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/6/ dir after test 481 === Start of file 481 initial content === End of file 481 === Start of file check-expected curl: --continue-at is mutually exclusive with --no-clobber[CR][LF] curl: option -C: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind481 ../src/curl -q --trace-ascii log/6/trace481 --trace-time http://127.0.0.1:33363/481 --no-clobber -C 1 -o "log/6/481" > log/6/stdout481 2> log/6/stderr481 === End of file commands.log === Start of file http_server.log 10:31:36.969275 ====> Client connect 10:31:36.969622 accept_connection 3 returned 4 10:31:36.969849 accept_connection 3 returned 0 10:31:36.970029 Read 93 bytes 10:31:36.970143 Process 93 bytes request 10:31:36.970256 Got request: GET /verifiedserver HTTP/1.1 10:31:36.970358 Are-we-friendly question received 10:31:36.970644 Wrote request (93 bytes) input to log/6/server.input 10:31:36.970846 Identifying ourselves as friends 10:31:36.971581 Response sent (56 bytes) and written to log/6/server.response 10:31:36.971728 special request received, no persistency 10:31:36.971920 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47898 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 481 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind481 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind481 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind480 ../src/curl -q --output log/1/curl480.out --include --trace-ascii log/1/trace480 --trace-time --netrc --netrc-file log/1/netrc480 pop3://127.0.0.1:37137/480 > log/1/stdout480 2> log/1/stderr480 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind484 ../src/curl -q --output log/3/curl484.out --include --trace-ascii log/3/trace484 --trace-time http://example.com/484 --etag-compare log/3/etag484 --etag-save log/3/etag484 --url http://example.net/fooo > log/3/stdout484 2> log/3/stderr484 test 0482...[--remove-on-error with --continue-at] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind482 ../src/curl -q --trace-ascii log/8/trace482 --trace-time http://non-existing-host.haxx.se. --remove-on-error -C 1 -o "log/8/482" > log/8/stdout482 2> log/8/stderr482 482: stderr FAILED: --- log/8/check-expected 2025-09-11 10:31:38.496024554 +0000 +++ log/8/check-generated 2025-09-11 10:31:38.496024554 +0000 @@ -1,3 +0,0 @@ -curl: --continue-at is mutually exclusive with --remove-on-error[CR][LF] -curl: option -C: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/8/ dir after test 482 === Start of file check-expected curl: --continue-at is mutually exclusive with --remove-on-error[CR][LF] curl: option -C: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind482 ../src/curl -q --trace-ascii log/8/trace482 --trace-time http://non-existing-host.haxx.se. --remove-on-error -C 1 -o "log/8/482" > log/8/stdout482 2> log/8/stderr482 === End of file commands.log === Start of file http_server.log 10:31:37.062012 ====> Client connect 10:31:37.062361 accept_connection 3 returned 4 10:31:37.062607 accept_connection 3 returned 0 10:31:37.062782 Read 93 bytes 10:31:37.062905 Process 93 bytes request 10:31:37.063013 Got request: GET /verifiedserver HTTP/1.1 10:31:37.063115 Are-we-friendly question received 10:31:37.063410 Wrote request (93 bytes) input to log/8/server.input 10:31:37.063647 Identifying ourselves as friends 10:31:37.064687 Response sent (56 bytes) and written to log/8/server.response 10:31:37.064897 special request received, no persistency 10:31:37.064987 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57962 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 482 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind482 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind482 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/1/server/pop3_server.pid" --logfile "log/1/pop3_server.log" --logdir "log/1" --portfile "log/1/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 37137 (log/1/server/pop3_server.port) RUN: POP3 server is PID 99758 port 37137 * pid pop3 => 99758 99758 test 0480...[Reject .netrc with credentials using CRLF for POP3] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind480 ../src/curl -q --output log/1/curl480.out --include --trace-ascii log/1/trace480 --trace-time --netrc --netrc-file log/1/netrc480 pop3://127.0.0.1:37137/480 > log/1/stdout480 2> log/1/stderr480 curl returned 1, when expecting 26 480: exit FAILED == Contents of files in the log/1/ dir after test 480 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind480 ../src/curl -q --output log/1/curl480.out --include --trace-ascii log/1/trace480 --trace-time --netrc --netrc-file log/1/netrc480 pop3://127.0.0.1:37137/480 > log/1/stdout480 2> log/1/stderr480 === End of file commands.log === Start of file netrc480 machine 127.0.0.1 login alice password "password\r\ncommand" === End of file netrc480 === Start of file pop3_server.log 10:31:37.640351 POP3 server listens on port IPv4/37137 10:31:37.641706 logged pid 99758 in log/1/server/pop3_server.pid 10:31:37.642229 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:31:37.308054 Running IPv4 version 10:31:37.308892 Listening on port 37137 10:31:37.309421 Wrote pid 99997 to log/1/server/pop3_sockfilt.pid 10:31:37.309808 Wrote port 37137 to log/1/server/pop3_server.port 10:31:37.310011 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 480 === End of file server.cmd === Start of file valgrind480 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind480 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind483 ../src/curl -q --output log/7/curl483.out --include --trace-ascii log/7/trace483 --trace-time http://127.0.0.1:40129/483 -c log/7/c483 > log/7/stdout483 2> log/7/stderr483 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind485 ../src/curl -q --output log/2/curl485.out --include --trace-ascii log/2/trace485 --trace-time http://example.com/485 http://example.net/fooo --etag-save log/2/etag485 > log/2/stdout485 2> log/2/stderr485 test 0484...[Use --etag-compare and -save with more than one URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind484 ../src/curl -q --output log/3/curl484.out --include --trace-ascii log/3/trace484 --trace-time http://example.com/484 --etag-compare log/3/etag484 --etag-save log/3/etag484 --url http://example.net/fooo > log/3/stdout484 2> log/3/stderr484 484: stderr FAILED: --- log/3/check-expected 2025-09-11 10:31:38.764029889 +0000 +++ log/3/check-generated 2025-09-11 10:31:38.764029889 +0000 @@ -1,3 +0,0 @@ -curl: The etag options only work on a single URL[CR][LF] -curl: option --url: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/3/ dir after test 484 === Start of file check-expected curl: The etag options only work on a single URL[CR][LF] curl: option --url: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind484 ../src/curl -q --output log/3/curl484.out --include --trace-ascii log/3/trace484 --trace-time http://example.com/484 --etag-compare log/3/etag484 --etag-save log/3/etag484 --url http://example.net/fooo > log/3/stdout484 2> log/3/stderr484 === End of file commands.log === Start of file server.cmd Testnum 484 === End of file server.cmd === Start of file valgrind484 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind484 test 0483...[HTTP cookies with long expire dates] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind483 ../src/curl -q --output log/7/curl483.out --include --trace-ascii log/7/trace483 --trace-time http://127.0.0.1:40129/483 -c log/7/c483 > log/7/stdout483 2> log/7/stderr483 483: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 483 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind483 ../src/curl -q --output log/7/curl483.out --include --trace-ascii log/7/trace483 --trace-time http://127.0.0.1:40129/483 -c log/7/c483 > log/7/stdout483 2> log/7/stderr483 === End of file commands.log === Start of file http_server.log 10:31:37.559559 ====> Client connect 10:31:37.559992 accept_connection 3 returned 4 10:31:37.560213 accept_connection 3 returned 0 10:31:37.560356 Read 93 bytes 10:31:37.560441 Process 93 bytes request 10:31:37.560534 Got request: GET /verifiedserver HTTP/1.1 10:31:37.560608 Are-we-friendly question received 10:31:37.560873 Wrote request (93 bytes) input to log/7/server.input 10:31:37.561055 Identifying ourselves as friends 10:31:37.561865 Response sent (56 bytes) and written to log/7/server.response 10:31:37.562042 special request received, no persistency 10:31:37.562134 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 34500 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 483 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind483 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind483 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind487 ../src/curl -q --output log/6/curl487.out --include --trace-ascii log/6/trace487 --trace-time --variable what=not-base64-data --expand-url "http://127.0.0.1:33363/{{what:64dec}}/487" -g > log/6/stdout487 2> log/6/stderr487 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind486 ../src/curl -q --output log/8/curl486.out --include --trace-ascii log/8/trace486 --trace-time --netrc --netrc-file log/8/netrc486 -L -x http://127.0.0.1:36007/ http://a.com/ > log/8/stdout486 2> log/8/stderr486 test 0485...[Use --etag-compare and -save with more than one URL, URLs specified first] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind485 ../src/curl -q --output log/2/curl485.out --include --trace-ascii log/2/trace485 --trace-time http://example.com/485 http://example.net/fooo --etag-save log/2/etag485 > log/2/stdout485 2> log/2/stderr485 485: stderr FAILED: --- log/2/check-expected 2025-09-11 10:31:39.180038170 +0000 +++ log/2/check-generated 2025-09-11 10:31:39.180038170 +0000 @@ -1,3 +0,0 @@ -curl: The etag options only work on a single URL[CR][LF] -curl: option --etag-save: is badly used here[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/2/ dir after test 485 === Start of file check-expected curl: The etag options only work on a single URL[CR][LF] curl: option --etag-save: is badly used here[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind485 ../src/curl -q --output log/2/curl485.out --include --trace-ascii log/2/trace485 --trace-time http://example.com/485 http://example.net/fooo --etag-save log/2/etag485 > log/2/stdout485 2> log/2/stderr485 === End of file commands.log === Start of file server.cmd Testnum 485 === End of file server.cmd === Start of file valgrind485 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind485 test 0487...[Variable using 64dec with bad base64] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind487 ../src/curl -q --output log/6/curl487.out --include --trace-ascii log/6/trace487 --trace-time --variable what=not-base64-data --expand-url "http://127.0.0.1:33363/{{what:64dec}}/487" -g > log/6/stdout487 2> log/6/stderr487 487: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 487 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind487 ../src/curl -q --output log/6/curl487.out --include --trace-ascii log/6/trace487 --trace-time --variable what=not-base64-data --expand-url "http://127.0.0.1:33363/{{what:64dec}}/487" -g > log/6/stdout487 2> log/6/stderr487 === End of file commands.log === Start of file http_server.log 10:31:38.346615 ====> Client connect 10:31:38.347085 accept_connection 3 returned 4 10:31:38.347361 accept_connection 3 returned 0 10:31:38.347620 Read 93 bytes 10:31:38.347895 Process 93 bytes request 10:31:38.348050 Got request: GET /verifiedserver HTTP/1.1 10:31:38.348187 Are-we-friendly question received 10:31:38.348585 Wrote request (93 bytes) input to log/6/server.input 10:31:38.348852 Identifying ourselves as friends 10:31:38.349777 Response sent (56 bytes) and written to log/6/server.response 10:31:38.349905 special request received, no persistency 10:31:38.349979 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47906 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 487 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind487 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind487 test 0486...[.netrc with redirect and "default" with no password or login] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind486 ../src/curl -q --output log/8/curl486.out --include --trace-ascii log/8/trace486 --trace-time --netrc --netrc-file log/8/netrc486 -L -x http://127.0.0.1:36007/ http://a.com/ > log/8/stdout486 2> log/8/stderr486 486: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 486 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind486 ../src/curl -q --output log/8/curl486.out --include --trace-ascii log/8/trace486 --trace-time --netrc --netrc-file log/8/netrc486 -L -x http://127.0.0.1:36007/ http://a.com/ > log/8/stdout486 2> log/8/stderr486 === End of file commands.log === Start of file http_server.log 10:31:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind488 ../src/curl -q --output log/5/curl488.out --include --trace-ascii log/5/trace488 --trace-time --output-dir log/5 --url @- log/5/stdout488 2> log/5/stderr488 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind489 ../src/curl -q --output log/1/curl489.out --include --trace-ascii log/1/trace489 --trace-time --output-dir log/1 --url @log/1/urls > log/1/stdout489 2> log/1/stderr489 38.341638 ====> Client connect 10:31:38.342045 accept_connection 3 returned 4 10:31:38.342281 accept_connection 3 returned 0 10:31:38.342465 Read 93 bytes 10:31:38.342582 Process 93 bytes request 10:31:38.342682 Got request: GET /verifiedserver HTTP/1.1 10:31:38.342772 Are-we-friendly question received 10:31:38.343064 Wrote request (93 bytes) input to log/8/server.input 10:31:38.343321 Identifying ourselves as friends 10:31:38.344392 Response sent (56 bytes) and written to log/8/server.response 10:31:38.344564 special request received, no persistency 10:31:38.344677 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57972 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file netrc486 machine a.com login alice password alicespassword default === End of file netrc486 === Start of file server.cmd Testnum 486 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind486 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind486 test 0488...[Download two URLs provided on stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind488 ../src/curl -q --output log/5/curl488.out --include --trace-ascii log/5/trace488 --trace-time --output-dir log/5 --url @- log/5/stdout488 2> log/5/stderr488 488: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 488 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind488 ../src/curl -q --output log/5/curl488.out --include --trace-ascii log/5/trace488 --trace-time --output-dir log/5 --url @- log/5/stdout488 2> log/5/stderr488 === End of file commands.log === Start of file http_server.log 10:31:39.465518 ====> Client connect 10:31:39.465860 accept_connection 3 returned 4 10:31:39.466049 accept_connection 3 returned 0 10:31:39.466202 Read 93 bytes 10:31:39.466334 Process 93 bytes request 10:31:39.466454 Got request: GET /verifiedserver HTTP/1.1 10:31:39.466560 Are-we-friendly question received 10:31:39.466809 Wrote request (93 bytes) input to log/5/server.input 10:31:39.466996 Identifying ourselves as friends 10:31:39.467859 Response sent (56 bytes) and written to log/5/server.response 10:31:39.468038 special request received, no persistency 10:31:39.468125 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 36790 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 488 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file stdin-for-488 http://127.0.0.1:41733/a http://127.0.0.1:41733/b === End of file stdin-for-488 === Start of file valgrind488 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind488 test 0489...[Download two URLs provided in a file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind489 ../src/curl -q --output log/1/curl489.out --include --trace-ascii log/1/trace489 --trace-time --output-dir log/1 --url @log/1/urls > log/1/stdout489 2> log/1/stderr489 489: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 489 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind489 ../src/curl -q --output log/1/curl489.out --include --trace-ascii log/1/trace489 --trace-time --output-dir log/1 --url @log/1/urls > log/1/stdout489 2> log/1/stderr489 === End of file commands.log === Start of file http_server.log 10:31:38.579250 ====> Client connect 10:31:38.579633 accept_connection 3 returned 4 10:31:38.579927 accept_connection 3 returned 0 10:31:38.580104 Read 93 bytes 10:31:38.580246 Process 93 bytes request 10:31:38CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind491 ../src/curl -q --output log/4/curl491.out --include --trace-ascii log/4/trace491 --trace-time http://127.0.0.1:36757/491 -T '{log/4/in491,log/4/bad491}' > log/4/stdout491 2> log/4/stderr491 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind490 ../src/curl -q --output log/3/curl490.out --include --trace-ascii log/3/trace490 --trace-time http://127.0.0.1:36933/490 -T '{log/3/in490,log/3/in490}' > log/3/stdout490 2> log/3/stderr490 .580337 Got request: GET /verifiedserver HTTP/1.1 10:31:38.580405 Are-we-friendly question received 10:31:38.580646 Wrote request (93 bytes) input to log/1/server.input 10:31:38.580820 Identifying ourselves as friends 10:31:38.581539 Response sent (56 bytes) and written to log/1/server.response 10:31:38.581696 special request received, no persistency 10:31:38.581765 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 57360 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 489 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file urls http://127.0.0.1:36129/a http://127.0.0.1:36129/b === End of file urls === Start of file valgrind489 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind489 test 0491...[Two globbed HTTP PUTs, the second upload file is missing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind491 ../src/curl -q --output log/4/curl491.out --include --trace-ascii log/4/trace491 --trace-time http://127.0.0.1:36757/491 -T '{log/4/in491,log/4/bad491}' > log/4/stdout491 2> log/4/stderr491 491: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 491 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind491 ../src/curl -q --output log/4/curl491.out --include --trace-ascii log/4/trace491 --trace-time http://127.0.0.1:36757/491 -T '{log/4/in491,log/4/bad491}' > log/4/stdout491 2> log/4/stderr491 === End of file commands.log === Start of file http_server.log 10:31:39.652065 ====> Client connect 10:31:39.652508 accept_connection 3 returned 4 10:31:39.652808 accept_connection 3 returned 0 10:31:39.654388 Read 93 bytes 10:31:39.654617 Process 93 bytes request 10:31:39.654791 Got request: GET /verifiedserver HTTP/1.1 10:31:39.654888 Are-we-friendly question received 10:31:39.655226 Wrote request (93 bytes) input to log/4/server.input 10:31:39.655554 Identifying ourselves as friends 10:31:39.658736 Response sent (56 bytes) and written to log/4/server.response 10:31:39.658990 special request received, no persistency 10:31:39.659124 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 51582 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file in491 surprise === End of file in491 === Start of file server.cmd Testnum 491 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind491 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind491 test 0490...[Two globbed HTTP PUTs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind490 ../src/curl -q --output log/3/curl490.out --include --trace-ascii log/3/trace490 --trace-time http://127.0.0.1:36933/490 -T '{log/3/in490,log/3/in490}' > log/3/stdout490 2> log/3/stderr490 490: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 490 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind490 ../src/curl -q --output log/3/curl490.out --include --trace-ascii log/3/trace490 --trace-time http://127.0.0.1:36933/490 -T '{log/3/in490,log/3/in490}' > log/3/stdout490 2> log/3/stderr490 === End of file commands.log === Start of file http_server.log 10:31:38.607366 ====> Client connect 10:31:38.607652 accept_connection 3 returned 4 10:31:38.607937 accept_connection 3 returned 0 10:31:38.608111 Read 93 bytes 10:31:38.608206 Process 93 bytes request 10:31:38.608303 Got request: GET /verifiedserver HTTP/1.1 10:31:38.608381 Are-we-friendly question received 10:31:38.608618 Wrote request (93 bytes) input to log/3/server.input 10:31:38.608803 Identifying ourselves as friends CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind492 ../src/curl -q --output log/7/curl492.out --include --trace-ascii log/7/trace492 --trace-time 'http://127.0.0.1:40129/{one,two}/' -T '{log/7/first492,log/7/second492}' -H "Testno: 492" > log/7/stdout492 2> log/7/stderr492 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind493 ../src/curl -q --include --trace-ascii log/2/trace493 --trace-time -x http://127.0.0.1:43789 http://this.hsts.example/493 --hsts log/2/input493 -w '%{url_effective}\n' > log/2/stdout493 2> log/2/stderr493 10:31:38.609481 Response sent (56 bytes) and written to log/3/server.response 10:31:38.609619 special request received, no persistency 10:31:38.609686 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 43108 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file in490 surprise === End of file in490 === Start of file server.cmd Testnum 490 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind490 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind490 test 0492...[Two globbed HTTP PUTs to two globbed URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind492 ../src/curl -q --output log/7/curl492.out --include --trace-ascii log/7/trace492 --trace-time 'http://127.0.0.1:40129/{one,two}/' -T '{log/7/first492,log/7/second492}' -H "Testno: 492" > log/7/stdout492 2> log/7/stderr492 492: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 492 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind492 ../src/curl -q --output log/7/curl492.out --include --trace-ascii log/7/trace492 --trace-time 'http://127.0.0.1:40129/{one,two}/' -T '{log/7/first492,log/7/second492}' -H "Testno: 492" > log/7/stdout492 2> log/7/stderr492 === End of file commands.log === Start of file first492 first 492 contents === End of file first492 === Start of file http_server.log 10:31:38.951408 ====> Client connect 10:31:38.951708 accept_connection 3 returned 4 10:31:38.952067 accept_connection 3 returned 0 10:31:38.952208 Read 93 bytes 10:31:38.952291 Process 93 bytes request 10:31:38.952382 Got request: GET /verifiedserver HTTP/1.1 10:31:38.952465 Are-we-friendly question received 10:31:38.952708 Wrote request (93 bytes) input to log/7/server.input 10:31:38.952916 Identifying ourselves as friends 10:31:38.953657 Response sent (56 bytes) and written to log/7/server.response 10:31:38.953769 special request received, no persistency 10:31:38.953831 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 34510 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file second492 second 492 contents === End of file second492 === Start of file server.cmd Testnum 492 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind492 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind492 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind496 ../src/curl -q --output log/5/curl496.out --include --trace-ascii log/5/trace496 --trace-time 0 -Z -Tz > log/5/stdout496 2> log/5/stderr496 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind495 ../src/curl -q --output log/8/curl495.out --include --trace-ascii log/8/trace495 --trace-time http://foo%40bar:secret@127.0.0.1:36007/495 --netrc-optional > log/8/stdout495 2> log/8/stderr495 test 0493...[HSTS and %{url_effective} after upgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind493 ../src/curl -q --include --trace-ascii log/2/trace493 --trace-time -x http://127.0.0.1:43789 http://this.hsts.example/493 --hsts log/2/input493 -w '%{url_effective}\n' > log/2/stdout493 2> log/2/stderr493 493: stdout FAILED: --- log/2/check-expected 2025-09-11 10:31:40.284060146 +0000 +++ log/2/check-generated 2025-09-11 10:31:40.280060067 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 403 not OK at all[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] -https://this.hsts.example/493[LF] == Contents of files in the log/2/ dir after test 493 === Start of file check-expected HTTP/1.1 403 not OK at all[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] https://this.hsts.example/493[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind493 ../src/curl -q --include --trace-ascii log/2/trace493 --trace-time -x http://127.0.0.1:43789 http://this.hsts.example/493 --hsts log/2/input493 -w '%{url_effective}\n' > log/2/stdout493 2> log/2/stderr493 === End of file commands.log === Start of file http_server.log 10:31:39.084396 ====> Client connect 10:31:39.084768 accept_connection 3 returned 4 10:31:39.084950 accept_connection 3 returned 0 10:31:39.085065 Read 93 bytes 10:31:39.085136 Process 93 bytes request 10:31:39.085212 Got request: GET /verifiedserver HTTP/1.1 10:31:39.085284 Are-we-friendly question received 10:31:39.085510 Wrote request (93 bytes) input to log/2/server.input 10:31:39.085674 Identifying ourselves as friends 10:31:39.086286 Response sent (56 bytes) and written to log/2/server.response 10:31:39.086411 special request received, no persistency 10:31:39.086474 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 58594 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file input493 .hsts.example "99991001 04:47:41" === End of file input493 === Start of file server.cmd Testnum 493 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind493 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind493 test 0496...[parallel upload missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind496 ../src/curl -q --output log/5/curl496.out --include --trace-ascii log/5/trace496 --trace-time 0 -Z -Tz > log/5/stdout496 2> log/5/stderr496 curl returned 1, when expecting 26 496: exit FAILED == Contents of files in the log/5/ dir after test 496 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind496 ../src/curl -q --output log/5/curl496.out --include --trace-ascii log/5/trace496 --trace-time 0 -Z -Tz > log/5/stdout496 2> log/5/stderr496 === End of file commands.log === Start of file server.cmd Testnum 496 === End of file server.cmd === Start of file valgrind496 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind496 test 0495...[user+password in URL with optional netrc] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind495 ../src/curl -q --output log/8/curl495.out --include --trace-ascii log/8/trace495 --trace-time http://foo%40bar:secret@127.0.0.1:36007/495 --netrc-optional > log/8/stdout495 2> log/8/stderr495 495: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 495 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind495 ../src/curl -q --output log/8/curl495.out --include --trace-ascii log/8/trace495 --trace-time http://foo%40bar:secret@127.0.0.1:36007/495 --netrc-optional > log/8/stdout495 2> log/8/stderr495 === End of file commands.log === Start of file http_server.log 10:31:39.454232 ====> Client connect 10:31:39.454579 accept_connection 3 returned 4 10:31:39.454818 accept_conCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind494 ../src/curl -q --output log/6/curl494.out --include --trace-ascii log/6/trace494 --trace-time --netrc --netrc-file log/6/netrc494 ftp://127.0.0.1:33323/494 > log/6/stdout494 2> log/6/stderr494 nection 3 returned 0 10:31:39.454983 Read 93 bytes 10:31:39.455099 Process 93 bytes request 10:31:39.455210 Got request: GET /verifiedserver HTTP/1.1 10:31:39.455319 Are-we-friendly question received 10:31:39.455612 Wrote request (93 bytes) input to log/8/server.input 10:31:39.456377 Identifying ourselves as friends 10:31:39.457261 Response sent (56 bytes) and written to log/8/server.response 10:31:39.457411 special request received, no persistency 10:31:39.457483 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57988 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 495 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind495 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind495 test 0494...[skip 'macdef' when parsing netrc] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind494 ../src/curl -q --output log/6/curl494.out --include --trace-ascii log/6/trace494 --trace-time --netrc --netrc-file log/6/netrc494 ftp://127.0.0.1:33323/494 > log/6/stdout494 2> log/6/stderr494 494: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 494 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind494 ../src/curl -q --output log/6/curl494.out --include --trace-ascii log/6/trace494 --trace-time --netrc --netrc-file log/6/netrc494 ftp://127.0.0.1:33323/494 > log/6/stdout494 2> log/6/stderr494 === End of file commands.log === Start of file ftp_server.log 10:31:39.703755 ====> Client connect 10:31:39.705767 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:39.711159 < "USER anonymous" 10:31:39.711825 > "331 We are happy you popped in![CR][LF]" 10:31:39.715283 < "PASS ftp@example.com" 10:31:39.715875 > "230 Welcome you silly person[CR][LF]" 10:31:39.718811 < "PWD" 10:31:39.719326 > "257 "/" is current directory[CR][LF]" 10:31:39.721295 < "EPSV" 10:31:39.721877 ====> Passive DATA channel requested by client 10:31:39.722170 DATA sockfilt for passive data channel starting... 10:31:39.735921 DATA sockfilt for passive data channel started (pid 100838) 10:31:39.737277 DATA sockfilt for passive data channel listens on port 39365 10:31:39.738173 > "229 Entering Passive Mode (|||39365|)[LF]" 10:31:39.738577 Client has been notified that DATA conn will be accepted on port 39365 10:31:39.740950 Client connects to port 39365 10:31:39.741407 ====> Client established passive DATA connection on port 39365 10:31:39.742455 < "TYPE I" 10:31:39.742920 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:39.744520 < "SIZE verifiedserver" 10:31:39.744980 > "213 17[CR][LF]" 10:31:39.746758 < "RETR verifiedserver" 10:31:39.747327 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:39.748180 =====> Closing passive DATA connection... 10:31:39.748491 Server disconnects passive DATA connection 10:31:39.750402 Server disconnected passive DATA connection 10:31:39.750767 DATA sockfilt for passive data channel quits (pid 100838) 10:31:39.753414 DATA sockfilt for passive data channel quit (pid 100838) 10:31:39.754326 =====> Closed passive DATA connection 10:31:39.754807 > "226 File transfer complete[CR][LF]" 10:31:39.795566 < "QUIT" 10:31:39.796077 > "221 bye bye baby[CR][LF]" 10:31:39.799745 MAIN sockfilt said DISC 10:31:39.800131 ====> Client disconnected 10:31:39.800691 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:40.370996 ====> Client connect 10:31:40.375993 Received DATA (on stdin) 10:31:40.376379 > 160 bytes data, server => client 10:31:40.376519 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:40.376619 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:40.376702 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:40.379511 < 16 bytes data, client => server 10:31:40.380043 'USER anonymous\r\n' 10:31:40.382642 Received DATA (on stdin) 10:31:40.382849 > 33 bytes data, server => client 10:31:40.382986 '331 We are happy you popped in!\r\n' 10:31:40.384671 < 22 bytes data, client => server 10:31:40.384897 'PASS ftp@example.com\r\n' 10:31:40.386704 Received DATA (on stdin) 10:31:40.386971 > 30 bytes data, server => client 10:31:40.387101 '230 Welcome you silly person\r\n' 10:31:40.388100 < 5 bytes data, client => server 10:31:40.388309 'PWD\r\n' 10:31:40.389634 Received DATA (on stdin) 10:31:40.389848 > 30 bytes data, server => client 10:31:40.389971 '257 "/" is current directory\r\n' 10:31:40.390837 < 6 bytes data, client => server 10:31:40.391111 'EPSV\r\n' 10:31:40.408740 Received DATA (on stdin) 10:31:40.408921 > 38 bytes data, server => client 10:31:40.409051 '229 Entering Passive Mode (|||39365|)\n' 10:31:40.412028 < 8 bytes data, client => server 10:31:40.412180 'TYPE I\r\n' 10:31:40.413229 Received DATA (on stdin) 10:31:40.413398 > 33 bytes data, server => client 10:31:40.413496 '200 I modify TYPE as you wanted\r\n' 10:31:40.414186 < 21 bytes data, client => server 10:31:40.414396 'SIZE verifiedserver\r\n' 10:31:40.415284 Received DATA (on stdin) 10:31:40.415445 > 8 bytes data, server => client 10:31:40.415541 '213 17\r\n' 10:31:40.416239 < 21 bytes data, client => server 10:31:40.416474 'RETR verifiedserver\r\n' 10:31:40.419013 Received DATA (on stdin) 10:31:40.419236 > 29 bytes data, server => client 10:31:40.419339 '150 Binary junk (17 bytes).\r\n' 10:31:40.425593 Received DATA (on stdin) 10:31:40.425791 > 28 bytes data, server => client 10:31:40.425883 '226 File transfer complete\r\n' 10:31:40.464706 < 6 bytes data, client => server 10:31:40.464934 'QUIT\r\n' 10:31:40.466741 Received DATA (on stdin) 10:31:40.466937 > 18 bytes data, server => client 10:31:40.467036 '221 bye bye CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind499 ../src/curl -q --output log/3/curl499.out --include --trace-ascii log/3/trace499 --trace-time http://127.0.0.1:36933/499 -I > log/3/stdout499 2> log/3/stderr499 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind497 ../src/curl -q --output log/1/curl497.out --include --trace-ascii log/1/trace497 --trace-time http://127.0.0.1:36129/497 > log/1/stdout497 2> log/1/stderr497 baby\r\n' 10:31:40.469664 ====> Client disconnect 10:31:40.471363 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:39.404427 Running IPv4 version 10:31:39.404974 Listening on port 39365 10:31:39.405404 Wrote pid 100838 to log/6/server/ftp_sockdata.pid 10:31:39.405602 Received PING (on stdin) 10:31:39.406825 Received PORT (on stdin) 10:31:39.410281 ====> Client connect 10:31:39.419013 Received DATA (on stdin) 10:31:39.419236 > 17 bytes data, server => client 10:31:39.419337 'WE ROOLZ: 79480\r\n' 10:31:39.420359 Received DISC (on stdin) 10:31:39.421443 ====> Client forcibly disconnected 10:31:39.422046 Received QUIT (on stdin) 10:31:39.422252 quits 10:31:39.422733 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc494 macdef testmacro bin cd default cd login put login.bin cd .. cd password put password.bin quit machine 127.0.0.1 login user1 password passwd1 === End of file netrc494 === Start of file server.cmd Testnum 494 === End of file server.cmd === Start of file valgrind494 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind494 test 0499...[HTTP HEAD to server still sending a body] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind499 ../src/curl -q --output log/3/curl499.out --include --trace-ascii log/3/trace499 --trace-time http://127.0.0.1:36933/499 -I > log/3/stdout499 2> log/3/stderr499 499: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 499 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind499 ../src/curl -q --output log/3/curl499.out --include --trace-ascii log/3/trace499 --trace-time http://127.0.0.1:36933/499 -I > log/3/stdout499 2> log/3/stderr499 === End of file commands.log === Start of file http_server.log 10:31:39.668855 ====> Client connect 10:31:39.669168 accept_connection 3 returned 4 10:31:39.669324 accept_connection 3 returned 0 10:31:39.669436 Read 93 bytes 10:31:39.669504 Process 93 bytes request 10:31:39.669579 Got request: GET /verifiedserver HTTP/1.1 10:31:39.669639 Are-we-friendly question received 10:31:39.669815 Wrote request (93 bytes) input to log/3/server.input 10:31:39.669953 Identifying ourselves as friends 10:31:39.670561 Response sent (56 bytes) and written to log/3/server.response 10:31:39.670699 special request received, no persistency 10:31:39.670755 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 43112 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 499 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind499 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind499 test 0497...[Reject too large accumulated HTTP response headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind497 ../src/curl -q --output log/1/curl497.out --include --trace-ascii log/1/trace497 --trace-time http://127.0.0.1:36129/497 > log/1/stdout497 2> log/1/stderr497 497: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 497 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind497 ../src/curl -q --output log/1/curl497.out --include --trace-ascii log/1/trace497 --trace-time http://127.0.0.1:36129/497 > log/1/stdout497 2> log/1/stderr497 === End of file commands.log === Start of file http_server.log 10:31:39.583612 ====> Client connect 10:31:39.584226 accept_connection 3 returned 4 10:31:39.584521 accept_connection 3 returned 0 10:31:39.584735 Read 93 bytes 10:31:39.584835 Process 93 bytes request 10:31:39.584934 Got request: GET /verifiedserver HTTP/1.1 10:31:39.585011 Are-we-friendly question received 10:31:39.585308 Wrote request (93 bytes) input to log/1/server.input 10:31:39.585534 Identifying ourselves as friends 10:31:39.586352 Response sent (56 bytes) and written to log/1/server.response 10:31:39.586521 special request received, no persistency 10:31:39.586602 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind501 ./libtest/libtests lib501 - > log/2/stdout501 2> log/2/stderr501 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind498 ../src/curl -q --output log/4/curl498.out --include --trace-ascii log/4/trace498 --trace-time http://127.0.0.1:36757/498 --max-redirs 400 --location > log/4/stdout498 2> log/4/stderr498 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind502 ./libtest/libtests lib502 file:///build/curl/src/build-curl/tests/log/5/test502.txt > log/5/stdout502 2> log/5/stderr502 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind500 ./libtest/libtests lib500 http://127.0.0.1:40129/500 log/7/ip500 > log/7/stdout500 2> log/7/stderr500 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind504 ./libtest/libtests lib504 http://127.0.0.1:47/504 127.0.0.1:47 > log/6/stdout504 2> log/6/stderr504 from 127.0.0.1 port 57364 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 497 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind497 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind497 test 0501...[simple libcurl attempt operation without URL set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind501 ./libtest/libtests lib501 - > log/2/stdout501 2> log/2/stderr501 libtests returned 1, when expecting 3 501: exit FAILED == Contents of files in the log/2/ dir after test 501 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind501 ./libtest/libtests lib501 - > log/2/stdout501 2> log/2/stderr501 === End of file commands.log === Start of file server.cmd Testnum 501 === End of file server.cmd === Start of file valgrind501 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind501 test 0498...[Reject too large HTTP response headers on endless redirects] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind498 ../src/curl -q --output log/4/curl498.out --include --trace-ascii log/4/trace498 --trace-time http://127.0.0.1:36757/498 --max-redirs 400 --location > log/4/stdout498 2> log/4/stderr498 curl returned 1, when expecting 56 498: exit FAILED == Contents of files in the log/4/ dir after test 498 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind498 ../src/curl -q --output log/4/curl498.out --include --trace-ascii log/4/trace498 --trace-time http://127.0.0.1:36757/498 --max-redirs 400 --location > log/4/stdout498 2> log/4/stderr498 === End of file commands.log === Start of file http_server.log 10:31:40.643314 ====> Client connect 10:31:40.643625 accept_connection 3 returned 4 10:31:40.643935 accept_connection 3 returned 0 10:31:40.644754 Read 93 bytes 10:31:40.644967 Process 93 bytes request 10:31:40.645081 Got request: GET /verifiedserver HTTP/1.1 10:31:40.645157 Are-we-friendly question received 10:31:40.645448 Wrote request (93 bytes) input to log/4/server.input 10:31:40.645690 Identifying ourselves as friends 10:31:40.646409 Response sent (56 bytes) and written to log/4/server.response 10:31:40.646577 special request received, no persistency 10:31:40.646647 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 51590 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 498 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind498 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind498 test 0502...[simple multi file:// get] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind502 ./libtest/libtests lib502 file:///build/curl/src/build-curl/tests/log/5/test502.txt > log/5/stdout502 2> log/5/stderr502 502: data FAILED: --- log/5/check-expected 2025-09-11 10:31:41.408082521 +0000 +++ log/5/check-generated 2025-09-11 10:31:41.408082521 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar swsclose[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/5/ dir after test 502 === Start of file check-expected foo[LF] bar swsclose[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind502 ./libtest/libtests lib502 file:///build/curl/src/build-curl/tests/log/5/test502.txt > log/5/stdout502 2> log/5/stderr502 === End of file commands.log === Start of file server.cmd Testnum 502 === End of file server.cmd === Start of file test502.txt foo bar swsclose bar foo moo === End of file test502.txt === Start of file valgrind502 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind502 test 0504...[simple multi through local proxy without listener] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind504 ./libtest/libtests lib504 http://127.0.0.1:47/504 127.0.0.1:47 > log/6/stdout504 2> log/6/stderr504 libtests returned 1, when expecting 41 504: exit FAILED == Contents of files in the log/6/ dir after test 504 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind504 ./libtest/libtests lib504 http://127.0.0.1:47/504 127.0.0.1:47 > log/6/stdout504 2> log/6/stderr504 === End of file commands.log === Start of file server.cmd Testnum 504 === End of file server.cmd === Start of file valgrind504 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind504 test 0500...[simple libcurl HTTP GET tool] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind500 ./libtest/libtests lib500 http://127.0.0.1:40129/500 log/7/ip500 > log/7/stdout500 2> log/7/stderr500 500: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 500 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind500 ./libtest/libtests lib500 http://127.0.0.1:40129/500 log/7/ip500 > log/7/stdout500 2> log/7/stderr500 === End of file commands.log === Start of file http_server.log 10:31:40.060910 ====> Client connect 10:31:40.061233 accept_connection 3 returned 4 10:31:40.061414 accept_connection 3 returned 0 10:31:40.061534 Read 93 bytes 10:31:40.061625 Process 93 bytes request 10:31:40.061711 Got request: GET /verifiedserver HTTP/1.1 10:31:40.061786 Are-we-friendly question received 10:31:40.062025 Wrote request (93 bytes) input to log/7/server.input 10:31:40.062233 Identifying ourselves as friends 10:31:40.062929 Response sent (56 bytes) and written to log/7/server.response 10:31:40.063078 special request received, no persistency 10:31:40.063145 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60652 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 500 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind500 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-nCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind507 ./libtest/libtests lib507 http://non-existing-host.haxx.se/ > log/1/stdout507 2> log/1/stderr507 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind508 ./libtest/libtests lib508 http://127.0.0.1:43789/508 > log/2/stdout508 2> log/2/stderr508 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind505 ./libtest/libtests lib505 ftp://127.0.0.1:33831/505 log/3/upload505 > log/3/stdout505 2> log/3/stderr505 amed function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind500 test 0507...[multi interface get with non-existing host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind507 ./libtest/libtests lib507 http://non-existing-host.haxx.se/ > log/1/stdout507 2> log/1/stderr507 libtests returned 1, when expecting 6 507: exit FAILED == Contents of files in the log/1/ dir after test 507 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind507 ./libtest/libtests lib507 http://non-existing-host.haxx.se/ > log/1/stdout507 2> log/1/stderr507 === End of file commands.log === Start of file http_server.log 10:31:40.857690 ====> Client connect 10:31:40.858014 accept_connection 3 returned 4 10:31:40.858292 accept_connection 3 returned 0 10:31:40.858430 Read 93 bytes 10:31:40.858506 Process 93 bytes request 10:31:40.858585 Got request: GET /verifiedserver HTTP/1.1 10:31:40.858647 Are-we-friendly question received 10:31:40.858860 Wrote request (93 bytes) input to log/1/server.input 10:31:40.859023 Identifying ourselves as friends 10:31:40.859655 Response sent (56 bytes) and written to log/1/server.response 10:31:40.859865 special request received, no persistency 10:31:40.859933 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 45968 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 507 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind507 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind507 test 0508...[send HTTP POST using read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind508 ./libtest/libtests lib508 http://127.0.0.1:43789/508 > log/2/stdout508 2> log/2/stderr508 508: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 508 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind508 ./libtest/libtests lib508 http://127.0.0.1:43789/508 > log/2/stdout508 2> log/2/stderr508 === End of file commands.log === Start of file http_server.log 10:31:40.911011 ====> Client connect 10:31:40.911313 accept_connection 3 returned 4 10:31:40.911499 accept_connection 3 returned 0 10:31:40.911621 Read 93 bytes 10:31:40.911692 Process 93 bytes request 10:31:40.911836 Got request: GET /verifiedserver HTTP/1.1 10:31:40.911906 Are-we-friendly question received 10:31:40.912134 Wrote request (93 bytes) input to log/2/server.input 10:31:40.912298 Identifying ourselves as friends 10:31:40.912940 Response sent (56 bytes) and written to log/2/server.response 10:31:40.913079 special request received, no persistency 10:31:40.913152 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 34972 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 508 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind508 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind508 test 0505...[FTP upload with rename after transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind505 ./libtest/libtestsCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind509 ./libtest/libtests lib509 - > log/4/stdout509 2> log/4/stderr509 lib505 ftp://127.0.0.1:33831/505 log/3/upload505 > log/3/stdout505 2> log/3/stderr505 505: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 505 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind505 ./libtest/libtests lib505 ftp://127.0.0.1:33831/505 log/3/upload505 > log/3/stdout505 2> log/3/stderr505 === End of file commands.log === Start of file ftp_server.log 10:31:40.977903 ====> Client connect 10:31:40.979444 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:40.987017 < "USER anonymous" 10:31:40.987488 > "331 We are happy you popped in![CR][LF]" 10:31:40.990096 < "PASS ftp@example.com" 10:31:40.990600 > "230 Welcome you silly person[CR][LF]" 10:31:40.994998 < "PWD" 10:31:40.997781 > "257 "/" is current directory[CR][LF]" 10:31:41.002762 < "EPSV" 10:31:41.003231 ====> Passive DATA channel requested by client 10:31:41.003498 DATA sockfilt for passive data channel starting... 10:31:41.023087 DATA sockfilt for passive data channel started (pid 101453) 10:31:41.026919 DATA sockfilt for passive data channel listens on port 40147 10:31:41.027682 > "229 Entering Passive Mode (|||40147|)[LF]" 10:31:41.028107 Client has been notified that DATA conn will be accepted on port 40147 10:31:41.030672 Client connects to port 40147 10:31:41.031273 ====> Client established passive DATA connection on port 40147 10:31:41.032881 < "TYPE I" 10:31:41.033658 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:41.037980 < "SIZE verifiedserver" 10:31:41.038850 > "213 17[CR][LF]" 10:31:41.042108 < "RETR verifiedserver" 10:31:41.042932 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:41.045591 =====> Closing passive DATA connection... 10:31:41.046129 Server disconnects passive DATA connection 10:31:41.049236 Server disconnected passive DATA connection 10:31:41.049851 DATA sockfilt for passive data channel quits (pid 101453) 10:31:41.051906 DATA sockfilt for passive data channel quit (pid 101453) 10:31:41.052320 =====> Closed passive DATA connection 10:31:41.052793 > "226 File transfer complete[CR][LF]" 10:31:41.088231 < "QUIT" 10:31:41.088832 > "221 bye bye baby[CR][LF]" 10:31:41.093665 MAIN sockfilt said DISC 10:31:41.094139 ====> Client disconnected 10:31:41.094819 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:40.647449 ====> Client connect 10:31:40.649716 Received DATA (on stdin) 10:31:40.650040 > 160 bytes data, server => client 10:31:40.650215 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:40.650330 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:40.650424 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:40.652289 < 16 bytes data, client => server 10:31:40.652578 'USER anonymous\r\n' 10:31:40.657817 Received DATA (on stdin) 10:31:40.658009 > 33 bytes data, server => client 10:31:40.658128 '331 We are happy you popped in!\r\n' 10:31:40.661170 < 22 bytes data, client => server 10:31:40.661335 'PASS ftp@example.com\r\n' 10:31:40.661447 Received DATA (on stdin) 10:31:40.661534 > 30 bytes data, server => client 10:31:40.661611 '230 Welcome you silly person\r\n' 10:31:40.664022 < 5 bytes data, client => server 10:31:40.664322 'PWD\r\n' 10:31:40.665742 Received DATA (on stdin) 10:31:40.665960 > 30 bytes data, server => client 10:31:40.668011 '257 "/" is current directory\r\n' 10:31:40.671972 < 6 bytes data, client => server 10:31:40.672232 'EPSV\r\n' 10:31:40.698040 Received DATA (on stdin) 10:31:40.698303 > 38 bytes data, server => client 10:31:40.698457 '229 Entering Passive Mode (|||40147|)\n' 10:31:40.700416 < 8 bytes data, client => server 10:31:40.700683 'TYPE I\r\n' 10:31:40.704655 Received DATA (on stdin) 10:31:40.704965 > 33 bytes data, server => client 10:31:40.705127 '200 I modify TYPE as you wanted\r\n' 10:31:40.706344 < 21 bytes data, client => server 10:31:40.706682 'SIZE verifiedserver\r\n' 10:31:40.709742 Received DATA (on stdin) 10:31:40.710020 > 8 bytes data, server => client 10:31:40.710148 '213 17\r\n' 10:31:40.711072 < 21 bytes data, client => server 10:31:40.711306 'RETR verifiedserver\r\n' 10:31:40.714323 Received DATA (on stdin) 10:31:40.714495 > 29 bytes data, server => client 10:31:40.714653 '150 Binary junk (17 bytes).\r\n' 10:31:40.723507 Received DATA (on stdin) 10:31:40.723698 > 28 bytes data, server => client 10:31:40.724004 '226 File transfer complete\r\n' 10:31:40.757590 < 6 bytes data, client => server 10:31:40.757858 'QUIT\r\n' 10:31:40.759090 Received DATA (on stdin) 10:31:40.759323 > 18 bytes data, server => client 10:31:40.759434 '221 bye bye baby\r\n' 10:31:40.760269 ====> Client disconnect 10:31:40.764442 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:41.687929 Running IPv4 version 10:31:41.688612 Listening on port 40147 10:31:41.689178 Wrote pid 101453 to log/3/server/ftp_sockdata.pid 10:31:41.692831 Received PING (on stdin) 10:31:41.694046 Received PORT (on stdin) 10:31:41.700466 ====> Client connect 10:31:41.713826 Received DATA (on stdin) 10:31:41.714124 > 17 bytes data, server => client 10:31:41.717270 'WE ROOLZ: 79555\r\n' 10:31:41.717933 Received DISC (on stdin) 10:31:41.718267 ====> Client forcibly disconnected 10:31:41.720528 Received QUIT (on stdin) 10:31:41.720710 quits 10:31:41.721185 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 505 === End of file server.cmd === Start of file upload505 Contents of a file to verify ftp upload works? === End of file upload505 === Start of file valgrind505 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind505 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind510 ./libtest/libtests lib510 http://127.0.0.1:40129/510 > log/7/stdout510 2> log/7/stderr510 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind511 ./libtest/libtests lib511 ftp://127.0.0.1:33323/511 > log/6/stdout511 2> log/6/stderr511 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind512 ./libtest/libtests lib512 http://127.0.0.1:41733/512 > log/5/stdout512 2> log/5/stderr512 test 0509...[initialization with memory callbacks and actual usage] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind509 ./libtest/libtests lib509 - > log/4/stdout509 2> log/4/stderr509 509: stdout FAILED: --- log/4/check-expected 2025-09-11 10:31:42.152097331 +0000 +++ log/4/check-generated 2025-09-11 10:31:42.148097252 +0000 @@ -1 +0,0 @@ -Callbacks were invoked![LF] == Contents of files in the log/4/ dir after test 509 === Start of file check-expected Callbacks were invoked![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind509 ./libtest/libtests lib509 - > log/4/stdout509 2> log/4/stderr509 === End of file commands.log === Start of file server.cmd Testnum 509 === End of file server.cmd === Start of file valgrind509 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind509 test 0510...[send HTTP POST using read callback, using chunked transfer-encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind510 ./libtest/libtests lib510 http://127.0.0.1:40129/510 > log/7/stdout510 2> log/7/stderr510 510: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 510 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind510 ./libtest/libtests lib510 http://127.0.0.1:40129/510 > log/7/stdout510 2> log/7/stderr510 === End of file commands.log === Start of file http_server.log 10:31:41.334074 ====> Client connect 10:31:41.334540 accept_connection 3 returned 4 10:31:41.334917 accept_connection 3 returned 0 10:31:41.335160 Read 93 bytes 10:31:41.335306 Process 93 bytes request 10:31:41.335438 Got request: GET /verifiedserver HTTP/1.1 10:31:41.335554 Are-we-friendly question received 10:31:41.335953 Wrote request (93 bytes) input to log/7/server.input 10:31:41.336236 Identifying ourselves as friends 10:31:41.337211 Response sent (56 bytes) and written to log/7/server.response 10:31:41.337490 special request received, no persistency 10:31:41.337607 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60664 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 510 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind510 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind510 test 0511...[FTP with FILETIME and NOBODY but missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind511 ./libtest/libtests lib511 ftp://127.0.0.1:33323/511 > log/6/stdout511 2> log/6/stderr511 511: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 511 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind511 ./libtest/libtests lib511 ftp://127.0.0.1:33323/511 > log/6/stdout511 2> log/6/stderr511 === End of file commands.log === Start of file ftp_server.log 10:31:41.678002 ====> Client connect 10:31:41.679633 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:41.684189 < "USER anonymous" 10:31:41.684717 > "331 We are happy you popped in![CR][LF]" 10:31:41.692424 < "PASS ftp@example.com" 10:31:41.692945 > "230 Welcome you silly person[CR][LF]" 10:31:41.697937 < "PWD" 10:31:41.698551 > "257 "/" is current directory[CR][LF]" 10:31:41.701132 < "EPSV" 10:31:41.701567 ====> Passive DATA channel requested by client 10:31:41.701881 DATA sockfilt for passive data channel starting... 10:31:41.712799 DATA sockfilt for passive data channel started (pid 101699) 10:31:41.715712 DATA sockfilt for passive data channel listens on port 35729 10:31:41.716275 > "229 Entering Passive Mode (|||35729|)[LF]" 10:31:41.716554 Client has been notified that DATA conn will be accepted on port 35729 10:31:41.719283 Client connects to port 35729 10:31:41.719744 ====> Client established passive DATA connection on port 35729 10:31:41.720727 < "TYPE I" 10:31:41.721264 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:41.729459 < "SIZE verifiedserver" 10:31:41.730213 > "213 17[CR][LF]" 10:31:41.732014 < "RETR verifiedserver" 10:31:41.732484 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:41.733248 =====> Closing passive DATA connection... 10:31:41.733697 Server disconnects passive DATA connection 10:31:41.735253 Fancy that; client wants to DISC, too 10:31:41.735837 Server disconnected passive DATA connection 10:31:41.736162 DATA sockfilt for passive data channel quits (pid 101699) 10:31:41.738517 DATA sockfilt for passive data channel quit (pid 101699) 10:31:41.739015 =====> Closed passive DATA connection 10:31:41.739459 > "226 File transfer complete[CR][LF]" 10:31:41.779329 < "QUIT" 10:31:41.785761 > "221 bye bye baby[CR][LF]" 10:31:41.786999 MAIN sockfilt said DISC 10:31:41.790913 ====> Client disconnected 10:31:41.791921 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:42.347261 ====> Client connect 10:31:42.350417 Received DATA (on stdin) 10:31:42.350662 > 160 bytes data, server => client 10:31:42.350787 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:42.350883 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:42.350955 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:42.352599 < 16 bytes data, client => server 10:31:42.352885 'USER anonymous\r\n' 10:31:42.355421 Received DATA (on stdin) 10:31:42.355665 > 33 bytes data, server => client 10:31:42.355897 '331 We are happy you popped in!\r\n' 10:31:42.360057 < 22 bytes data, client => server 10:31:42.360278 'PASS ftp@example.com\r\n' 10:31:42.364308 Received DATA (on stdin) 10:31:42.364512 > 30 bytes data, server => client 10:31:42.364605 '230 Welcome you silly person\r\n' 10:31:42.366761 < 5 bytes data, client => server 10:31:42.367022 'PWD\r\n' 10:31:42.369283 Received DATA (on stdin) 10:31:42.369500 > 30 bytes data, server => client 10:31:42.369597 '257 "/" is current directory\r\n' 10:31:42.370359 < 6 bytes data, client => server 10:31:42.370560 'EPSV\r\n' 10:31:42.386533 Received DATA (on stdin) 10:31:42.386755 > 38 bytes data, server => client 10:31:42.386860 '229 Entering Passive Mode (|||35729|)\n' 10:31:42.388780 < 8 bytes data, client => server 10:31:42.389070 'TYPE I\r\n' 10:31:42.395828 Received DATA (on stdin) 10:31:42.396066 > 33 bytes data, server => client 10:31:42.396195 '200 I modify TYPE as you wanted\r\n' 10:31:42.397096 < 21 bytes data, client => server 10:31:42.397355 'SIZE verifiedserver\r\n' 10:31:42.400433 Received DATA (on stdin) 10:31:42.400669 > 8 bytes data, server => client 10:31:42.400800 '213 17\r\n' 10:31:42.401578 < 21 bytes data, client => server 10:31:42.401768 'RETR verifiedserver\r\n' 10:31:42.402730 Received DATA (on stdin) 10:31:42.402903 > 29 bytes data, server => client 10:31:42.403007 '150 Binary junk (17 bytes).\r\n' 10:31:42.410129 Received DATA (on stdin) 10:31:42.410370 > 28 bytes data, server => client 10:31:42.410514 '226 File transfer complete\r\n' 10:31:42.448524 < 6 bytes data, client => server 10:31:42.448753 'QUIT\r\n' 10:31:42.450151 Received DATA (on stdin) 10:31:42.450377 > 18 bytes data, server => client 10:31:42.451934 '221 bye bye baby\r\n' 10:31:42.456782 ====> Client disconnect 10:31:42.457875 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:41.381733 Running IPv4 version 10:31:41.382241 Listening on port 35729 10:31:41.382588 Wrote pid 101699 to log/6/server/ftp_sockdata.pid 10:31:41.382737 Received PING (on stdin) 10:31:41.385205 Received PORT (on stdin) 10:31:41.389143 ====> Client connect 10:31:41.403137 Received DATA (on stdin) 10:31:41.403335 > 17 bytes data, server => client 10:31:41.403453 'WE ROOLZ: 79480\r\n' 10:31:41.404148 ====> Client disconnect 10:31:41.404374 Received DISC (on stdin) 10:31:41.404483 Crikey! Client also wants to disconnect 10:31:41.406224 Received ACKD (on stdin) 10:31:41.406797 Received QUIT (on stdin) 10:31:41.407034 quits 10:31:41.407503 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY MDTM 550 bluah you f00l REPLY SIZE 550 bluah you f00l Testnum 511 === End of file server.cmd === Start of file valgrind511 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind511 test 0512...[simple curl_easy_duplicate() test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind512 ./libtest/libtests lib512 http://127.0.0.1:41733/512 > log/5/stdout512 2> log/5/stderr512 512: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 512 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind512 ./libtest/libtests lib512 http://127.0.0.1:41733/512 > log/5/stdout512 2> log/5/stderr512 === End of file commands.log === Start of file http_server.log 10:31:42.451524 ====> Client connect 10:31:42.451964 accept_connection 3 returned 4 10:31:42.452159 accept_connection 3 returned 0 10:31:42.452298 Read 93 bytes 10:31:42.452386 Process 93 bytes request 10:31:42.452480 Got request: GET /verifiedserver HTTP/1.1 10:31:42.452551 Are-we-friendly question received 10:31:42.452839 Wrote request (93 bytes) input to log/5/server.input 10:31:42.453073 Identifying ourselves as friends 10:31:42.453900 Response sent (56 bytes) and written to log/5/server.response 10:31:42.454037 special request received, no persistency 10:31:42.454105 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 39546 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 512 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind512 valgrind: Fatal error at startup: a function redirection valgrind: wCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind503 ./libtest/libtests lib503 http://machine.503:36007/503 127.0.0.1:33375 > log/8/stdout503 2> log/8/stderr503 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind513 ./libtest/libtests lib513 http://127.0.0.1:36129/513 > log/1/stdout513 2> log/1/stderr513 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind514 ./libtest/libtests lib514 http://127.0.0.1:43789/514 > log/2/stdout514 2> log/2/stderr514 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind515 ./libtest/libtests lib515 http://127.0.0.1:36933/515 > log/3/stdout515 2> log/3/stderr515 hich is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind512 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/8/server/http2_server.pid" --logfile "log/8/http2_server.log" --logdir "log/8" --portfile log/8/server/http2_server.port --config log/8/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 101334 port 33375 * pid http-proxy => 101334 101334 test 0503...[simple multi http:// through proxytunnel with authentication info] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind503 ./libtest/libtests lib503 http://machine.503:36007/503 127.0.0.1:33375 > log/8/stdout503 2> log/8/stderr503 503: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 503 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind503 ./libtest/libtests lib503 http://machine.503:36007/503 127.0.0.1:33375 > log/8/stdout503 2> log/8/stderr503 === End of file commands.log === Start of file http2_server.log 10:31:41.732875 Run as proxy, CONNECT to host 127.0.0.1 10:31:41.733653 Running HTTP IPv4 version on port 33375 10:31:41.734068 Wrote pid 101334 to log/8/server/http2_server.pid 10:31:41.734334 Wrote port 33375 to log/8/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 10:31:40.411902 ====> Client connect 10:31:40.412286 accept_connection 3 returned 4 10:31:40.412508 accept_connection 3 returned 0 10:31:40.412659 Read 93 bytes 10:31:40.412761 Process 93 bytes request 10:31:40.412850 Got request: GET /verifiedserver HTTP/1.1 10:31:40.412930 Are-we-friendly question received 10:31:40.413199 Wrote request (93 bytes) input to log/8/server.input 10:31:40.413406 Identifying ourselves as friends 10:31:40.414205 Response sent (56 bytes) and written to log/8/server.response 10:31:40.414427 special request received, no persistency 10:31:40.414527 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 36130 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 503 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file test503.txt foo bar bar foo moo === End of file test503.txt === Start of file valgrind503 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind503 test 0515...[make a POSTFIELDS set to NULL with POSTFIELDSIZE set to zero] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind515 ./libtest/libtests lib515 http://127.0.0.1:36933/515 > log/3/stdout515 2> log/3/stderr515 515: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 515 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind515 ./libtest/libtests lib515 http://127.0.0.1:36933/515 > log/3/stdout515 2> log/3/stderr515 === End of file commands.log === Start of file http_server.log 10:31:41.855359 ====> Client connect 10:31:41.855829 accept_connection 3 returned 4 10:31:41.856152 accept_connection 3 returned 0 10:31:41.856351 Read 93 bytes 10:31:41.856481 Process 93 bytes request 10:31:41.856594 Got request: GET /verifiedserver HTTP/1.1 10:31:41.856686 Are-we-friendly question received 10:31:41.856964 Wrote request (93 bytes) input to log/3/server.input 10:31:41.857208 Identifying ourselves as friends 10:31:41.858061 Response sent (56 bytes) and written to log/3/server.response 10:31:41.858202 special request received, no persistency 10:31:41.858284 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 33764 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 515 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OKCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind516 ./libtest/libtests lib516 http://127.0.0.1:36757/516 > log/4/stdout516 2> log/4/stderr516 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind517 ./libtest/libtests lib517 - > log/7/stdout517 2> log/7/stderr517 CMD (0): ./libtest/libtests lib518 http://127.0.0.1:33363/518 > log/6/stdout518 2> log/6/stderr518 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind519 ./libtest/libtests lib519 http://127.0.0.1:41733/519 > log/5/stdout519 2> log/5/stderr519 Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind515 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind515 test 0516...[make an HTTPPOST set to NULL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind516 ./libtest/libtests lib516 http://127.0.0.1:36757/516 > log/4/stdout516 2> log/4/stderr516 516: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 516 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind516 ./libtest/libtests lib516 http://127.0.0.1:36757/516 > log/4/stdout516 2> log/4/stderr516 === End of file commands.log === Start of file http_server.log 10:31:43.020177 ====> Client connect 10:31:43.020493 accept_connection 3 returned 4 10:31:43.020649 accept_connection 3 returned 0 10:31:43.020766 Read 93 bytes 10:31:43.020842 Process 93 bytes request 10:31:43.020919 Got request: GET /verifiedserver HTTP/1.1 10:31:43.020983 Are-we-friendly question received 10:31:43.021191 Wrote request (93 bytes) input to log/4/server.input 10:31:43.021344 Identifying ourselves as friends 10:31:43.022044 Response sent (56 bytes) and written to log/4/server.response 10:31:43.022192 special request received, no persistency 10:31:43.022256 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 39984 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 516 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind516 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind516 test 0517...[curl_getdate() testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind517 ./libtest/libtests lib517 - > log/7/stdout517 2> log/7/stderr517 libtests returned 1, when expecting 0 517: exit FAILED == Contents of files in the log/7/ dir after test 517 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind517 ./libtest/libtests lib517 - > log/7/stdout517 2> log/7/stderr517 === End of file commands.log === Start of file server.cmd Testnum 517 === End of file server.cmd === Start of file valgrind517 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind517 prechecked ./libtest/libtests lib518 check test 0518...[HTTP GET with more than FD_SETSIZE descriptors open] ./libtest/libtests lib518 http://127.0.0.1:33363/518 > log/6/stdout518 2> log/6/stderr518 valgrind SKIPPED --pd---e--- OK (494 out of 1725, remaining: 02:46, took 0.674s, duration: 01:07) test 0519...[GET same URL twice with different users] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind519 ./libtest/libtests lib519 http://127.0.0.1:41733/519 > log/5/stdout519 2> log/5/stderr519 519: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? ReturnCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind520 ./libtest/libtests lib520 ftp://127.0.0.1:42977/520 > log/8/stdout520 2> log/8/stderr520 ed: 1 == Contents of files in the log/5/ dir after test 519 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind519 ./libtest/libtests lib519 http://127.0.0.1:41733/519 > log/5/stdout519 2> log/5/stderr519 === End of file commands.log === Start of file http_server.log 10:31:43.395950 ====> Client connect 10:31:43.396283 accept_connection 3 returned 4 10:31:43.396472 accept_connection 3 returned 0 10:31:43.396610 Read 93 bytes 10:31:43.396699 Process 93 bytes request 10:31:43.396788 Got request: GET /verifiedserver HTTP/1.1 10:31:43.396864 Are-we-friendly question received 10:31:43.397098 Wrote request (93 bytes) input to log/5/server.input 10:31:43.397286 Identifying ourselves as friends 10:31:43.398014 Response sent (56 bytes) and written to log/5/server.response 10:31:43.398154 special request received, no persistency 10:31:43.398222 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 39562 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 519 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind519 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind519 test 0520...[FTP RETR with FILETIME] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind520 ./libtest/libtests lib520 ftp://127.0.0.1:42977/520 > log/8/stdout520 2> log/8/stderr520 520: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 520 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind520 ./libtest/libtests lib520 ftp://127.0.0.1:42977/520 > log/8/stdout520 2> log/8/stderr520 === End of file commands.log === Start of file ftp_server.log 10:31:42.766199 ====> Client connect 10:31:42.768310 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:42.774630 < "USER anonymous" 10:31:42.775631 > "331 We are happy you popped in![CR][LF]" 10:31:42.781882 < "PASS ftp@example.com" 10:31:42.782709 > "230 Welcome you silly person[CR][LF]" 10:31:42.786790 < "PWD" 10:31:42.787473 > "257 "/" is current directory[CR][LF]" 10:31:42.795855 < "EPSV" 10:31:42.796430 ====> Passive DATA channel requested by client 10:31:42.796988 DATA sockfilt for passive data channel starting... 10:31:42.817682 DATA sockfilt for passive data channel started (pid 102227) 10:31:42.818830 DATA sockfilt for passive data channel listens on port 44329 10:31:42.819317 > "229 Entering Passive Mode (|||44329|)[LF]" 10:31:42.819678 Client has been notified that DATA conn will be accepted on port 44329 10:31:42.823583 Client connects to port 44329 10:31:42.824055 ====> Client established passive DATA connection on port 44329 10:31:42.825135 < "TYPE I" 10:31:42.825837 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:42.829070 < "SIZE verifiedserver" 10:31:42.831782 > "213 17[CR][LF]" 10:31:42.832777 < "RETR verifiedserver" 10:31:42.833836 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:42.834747 =====> Closing passive DATA connection... 10:31:42.835067 Server disconnects passive DATA connection 10:31:42.838139 Server disconnected passive DATA connection 10:31:42.838569 DATA sockfilt for passive data channel quits (pid 102227) 10:31:42.840309 DATA sockfilt for passive data channel quit (pid 102227) 10:31:42.840648 =====> Closed passive DATA connection 10:31:42.840972 > "226 File transfer complete[CR][LF]" 10:31:42.882366 < "QUIT" 10:31:42.882864 > "221 bye bye baby[CR][LF]" 10:31:42.890341 MAIN sockfilt said DISC 10:31:42.891792 ====> Client disconnected 10:31:42.892758 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:42.434893 ====> Client connect 10:31:42.438626 Received DATA (on stdin) 10:31:42.438967 > 160 bytes data, server => client 10:31:42.439173 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:42.439378 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:42.439529 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:42.443015 < 16 bytes data, client => server 10:31:42.444448 'USER anonymous\r\n' 10:31:42.446783 Received DATA (on stdin) 10:31:42.447190 > 33 bytes data, server => client 10:31:42.447572 '331 We are happy you popped in!\r\n' 10:31:42.450427 < 22 bytes data, client => server 10:31:42.450759 'PASS ftp@example.com\r\n' 10:31:42.453635 Received DATA (on stdin) 10:31:42.454028 > 30 bytes data, server => client 10:31:42.454251 '230 Welcome you silly person\r\n' 10:31:42.455360 < 5 bytes data, client => server 10:31:42.455802 'PWD\r\n' 10:31:42.459277 Received DATA (on stdin) 10:31:42.459631 > 30 bytes data, server => client 10:31:42.460115 '257 "/" is current directory\r\n' 10:31:42.464414 < 6 bytes data, client => server 10:31:42.464746 'EPSV\r\n' 10:31:42.489984 Received DATA (on stdin) 10:31:42.490166 > 38 bytes data, server => client 10:31:42.490286 '229 Entering Passive Mode (|||44329|)\n' 10:31:42.493411 < 8 bytes data, client => server 10:31:42.493651 'TYPE I\r\n' 10:31:42.496813 Received DATA (on stdin) 10:31:42.497109 > 33 bytes data, server => client 10:31:42.497235 '200 I modify TYPE as you wanted\r\n' 10:31:42.498194 < 21 bytes data, client => server 10:31:42.498433 'SIZE verifiedserver\r\n' 10:31:42.500006 Received DATA (on stdin) 10:31:42.500285 > 8 bytes data, server => client 10:31:42.500522 '213 17\r\n' 10:31:42.501304 < 21 bytes data, client => server 10:31:42.501543 'RETR verifiedserver\r\n' 10:31:42.503497 Received DATA (on stdin) 10:31:42.503767 > 29 bytes data, server => client 10:31:42.505579 '150 Binary junk (17 bytes).\r\n' 10:31:42.511713 ReCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind521 ./libtest/libtests lib521 ftp://127.0.0.1/521/ 33831 > log/3/stdout521 2> log/3/stderr521 ceived DATA (on stdin) 10:31:42.511987 > 28 bytes data, server => client 10:31:42.512115 '226 File transfer complete\r\n' 10:31:42.551055 < 6 bytes data, client => server 10:31:42.551264 'QUIT\r\n' 10:31:42.553597 Received DATA (on stdin) 10:31:42.553831 > 18 bytes data, server => client 10:31:42.553951 '221 bye bye baby\r\n' 10:31:42.559980 ====> Client disconnect 10:31:42.561202 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:42.483135 Running IPv4 version 10:31:42.483832 Listening on port 44329 10:31:42.484384 Wrote pid 102227 to log/8/server/ftp_sockdata.pid 10:31:42.484596 Received PING (on stdin) 10:31:42.488439 Received PORT (on stdin) 10:31:42.493383 ====> Client connect 10:31:42.506116 Received DATA (on stdin) 10:31:42.506305 > 17 bytes data, server => client 10:31:42.506401 'WE ROOLZ: 86552\r\n' 10:31:42.506688 Received DISC (on stdin) 10:31:42.506888 ====> Client forcibly disconnected 10:31:42.509198 Received QUIT (on stdin) 10:31:42.509353 quits 10:31:42.509755 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY MDTM 213 20030405060708 Testnum 520 === End of file server.cmd === Start of file valgrind520 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind520 test 0513...[send HTTP POST using read callback that returns CURL_READFUNC_ABORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind513 ./libtest/libtests lib513 http://127.0.0.1:36129/513 > log/1/stdout513 2> log/1/stderr513 libtests returned 1, when expecting 42 513: exit FAILED == Contents of files in the log/1/ dir after test 513 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind513 ./libtest/libtests lib513 http://127.0.0.1:36129/513 > log/1/stdout513 2> log/1/stderr513 === End of file commands.log === Start of file http_server.log 10:31:41.780158 ====> Client connect 10:31:41.780512 accept_connection 3 returned 4 10:31:41.780767 accept_connection 3 returned 0 10:31:41.780954 Read 93 bytes 10:31:41.781060 Process 93 bytes request 10:31:41.781161 Got request: GET /verifiedserver HTTP/1.1 10:31:41.781245 Are-we-friendly question received 10:31:41.781579 Wrote request (93 bytes) input to log/1/server.input 10:31:41.781833 Identifying ourselves as friends 10:31:41.782755 Response sent (56 bytes) and written to log/1/server.response 10:31:41.782933 special request received, no persistency 10:31:41.783013 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 45974 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 513 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind513 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind513 test 0514...[First set options to POST and then to make HEAD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind514 ./libtest/libtests lib514 http://127.0.0.1:43789/514 > log/2/stdout514 2> log/2/stderr514 514: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 514 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind514 ./libtest/libtests lib514 http://127.0.0.1:43789/514 > log/2/stdout514 2> log/2/stderr514 === End of file commands.log === Start of file http_server.log 10:31:41.786417 ====> Client connect 10:31:41.786761 accept_connection 3 returned 4 10:31:41.786967 accept_connection 3 returned 0 10:31:41.787136 Read 93 bytes 10:31:41.787255 Process 93 bytes request 10:31:41.787379 Got request: GET /verifiedserver HTTP/1.1 10:31:41.787486 Are-we-friendly question received 10:31:41.787965 Wrote request (93 bytes) input to log/2/server.input 10:31:41.788283 Identifying ourselves as friends 10:31:41.789331 Response sent (56 bytes) and written to log/2/server.response 10:31:41.789517 special request received, no persistency 10:31:41.789590 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 34986 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind522 ./libtest/libtests lib521 http://127.0.0.1/522 36757 > log/4/stdout522 2> log/4/stderr522 1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 514 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind514 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind514 test 0521...[FTP dir list PASV with CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind521 ./libtest/libtests lib521 ftp://127.0.0.1/521/ 33831 > log/3/stdout521 2> log/3/stderr521 521: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 521 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind521 ./libtest/libtests lib521 ftp://127.0.0.1/521/ 33831 > log/3/stdout521 2> log/3/stderr521 === End of file commands.log === Start of file ftp_server.log 10:31:43.159902 ====> Client connect 10:31:43.161328 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:43.167010 < "USER anonymous" 10:31:43.167533 > "331 We are happy you popped in![CR][LF]" 10:31:43.170447 < "PASS ftp@example.com" 10:31:43.171125 > "230 Welcome you silly person[CR][LF]" 10:31:43.174092 < "PWD" 10:31:43.174679 > "257 "/" is current directory[CR][LF]" 10:31:43.177035 < "EPSV" 10:31:43.177395 ====> Passive DATA channel requested by client 10:31:43.177770 DATA sockfilt for passive data channel starting... 10:31:43.188712 DATA sockfilt for passive data channel started (pid 102370) 10:31:43.190285 DATA sockfilt for passive data channel listens on port 34089 10:31:43.190856 > "229 Entering Passive Mode (|||34089|)[LF]" 10:31:43.191114 Client has been notified that DATA conn will be accepted on port 34089 10:31:43.199767 Client connects to port 34089 10:31:43.200460 ====> Client established passive DATA connection on port 34089 10:31:43.201903 < "TYPE I" 10:31:43.202560 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:43.210664 < "SIZE verifiedserver" 10:31:43.211408 > "213 17[CR][LF]" 10:31:43.214755 < "RETR verifiedserver" 10:31:43.215910 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:43.216930 =====> Closing passive DATA connection... 10:31:43.217247 Server disconnects passive DATA connection 10:31:43.219123 Server disconnected passive DATA connection 10:31:43.219611 DATA sockfilt for passive data channel quits (pid 102370) 10:31:43.222367 DATA sockfilt for passive data channel quit (pid 102370) 10:31:43.222799 =====> Closed passive DATA connection 10:31:43.223137 > "226 File transfer complete[CR][LF]" 10:31:43.263549 < "QUIT" 10:31:43.264074 > "221 bye bye baby[CR][LF]" 10:31:43.266448 MAIN sockfilt said DISC 10:31:43.266926 ====> Client disconnected 10:31:43.267595 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:42.829538 ====> Client connect 10:31:42.832032 Received DATA (on stdin) 10:31:42.832309 > 160 bytes data, server => client 10:31:42.832465 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:42.832573 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:42.832663 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:42.835987 < 16 bytes data, client => server 10:31:42.836250 'USER anonymous\r\n' 10:31:42.837767 Received DATA (on stdin) 10:31:42.837953 > 33 bytes data, server => client 10:31:42.838061 '331 We are happy you popped in!\r\n' 10:31:42.839093 < 22 bytes data, client => server 10:31:42.839340 'PASS ftp@example.com\r\n' 10:31:42.841790 Received DATA (on stdin) 10:31:42.841967 > 30 bytes data, server => client 10:31:42.842061 '230 Welcome you silly person\r\n' 10:31:42.842795 < 5 bytes data, client => server 10:31:42.842991 'PWD\r\n' 10:31:42.845135 Received DATA (on stdin) 10:31:42.845316 > 30 bytes data, server => client 10:31:42.845427 '257 "/" is current directory\r\n' 10:31:42.846192 < 6 bytes data, client => server 10:31:42.846392 'EPSV\r\n' 10:31:42.865716 Received DATA (on stdin) 10:31:42.865915 > 38 bytes data, server => client 10:31:42.866019 '229 Entering Passive Mode (|||34089|)\n' 10:31:42.867883 < 8 bytes data, client => server 10:31:42.868126 'TYPE I\r\n' 10:31:42.873412 Received DATA (on stdin) 10:31:42.873667 > 33 bytes data, server => client 10:31:42.873803 '200 I modify TYPE as you wanted\r\n' 10:31:42.876189 < 21 bytes data, client => server 10:31:42.876441 'SIZE verifiedserver\r\n' 10:31:42.882228 Received DATA (on stdin) 10:31:42.882435 > 8 bytes data, server => client 10:31:42.882549 '213 17\r\n' 10:31:42.883778 < 21 bytes data, client => server 10:31:42.883996 'RETR verifiedserver\r\n' 10:31:42.885588 Received DATA (on stdin) 10:31:42.885809 > 29 bytes data, server => client 10:31:42.887889 '150 Binary junk (17 bytes).\r\n' 10:31:42.895654 Received DATA (on stdin) 10:31:42.896021 > 28 bytes data, server => client 10:31:42.896183 '226 File transfer complete\r\n' 10:31:42.932674 < 6 bytes data, client => server 10:31:42.932896 'QUIT\r\n' 10:31:42.934634 Received DATA (on stdin) 10:31:42.934802 > 18 bytes data, server => client 10:31:42.934887 '221 bye bye baby\r\n' 10:31:42.936187 ====> Client disconnect 10:31:42.937689 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:43.857184 Running IPv4 version 10:31:43.857816 Listening on port 34089 10:31:43.858284 Wrote pid 102370 to log/3/server/ftp_sockdata.pid 10:31:43.858493 Received PING (on stdin) 10:31:43.859731 Received PORT (on stdin) 10:31:43.869079 ====> Client connect 10:31:43.886763 Received DATA (on stdin) 10:31:43.886996 > 17 bytes data, server => client 10:31:43.887165 'WE ROOLZ: 79555\r\n' 10:31:43.888143 Received DISC (on stdin) 10:31:43.888326 ====> Client forcibly disconnected 10:31:43.890558 Received QUIT (on stdin) 10:31:43.890823 quits 10:31:43.891359 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 521 === End of file server.cmd === Start of file valgrind521 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. DetCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind523 ./libtest/libtests lib523 http://www.example.com:999/523 http://127.0.0.1:40129 > log/7/stdout523 2> log/7/stderr523 ails of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind521 test 0522...[HTTP GET with CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind522 ./libtest/libtests lib521 http://127.0.0.1/522 36757 > log/4/stdout522 2> log/4/stderr522 522: stdout FAILED: --- log/4/check-expected 2025-09-11 10:31:43.956133242 +0000 +++ log/4/check-generated 2025-09-11 10:31:43.956133242 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/4/ dir after test 522 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind522 ./libtest/libtests lib521 http://127.0.0.1/522 36757 > log/4/stdout522 2> log/4/stderr522 === End of file commands.log === Start of file http_server.log 10:31:43.938971 ====> Client connect 10:31:43.939236 accept_connection 3 returned 4 10:31:43.939423 accept_connection 3 returned 0 10:31:43.939597 Read 93 bytes 10:31:43.939781 Process 93 bytes request 10:31:43.939878 Got request: GET /verifiedserver HTTP/1.1 10:31:43.939948 Are-we-friendly question received 10:31:43.940227 Wrote request (93 bytes) input to log/4/server.input 10:31:43.940433 Identifying ourselves as friends 10:31:43.941272 Response sent (56 bytes) and written to log/4/server.response 10:31:43.941464 special request received, no persistency 10:31:43.941552 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 39994 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 522 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind522 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind522 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind524 ./libtest/libtests lib524 ftp://127.0.0.1:33323/path/to/ > log/6/stdout524 2> log/6/stderr524 test 0523...[HTTP GET with proxy and CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind523 ./libtest/libtests lib523 http://www.example.com:999/523 http://127.0.0.1:40129 > log/7/stdout523 2> log/7/stderr523 523: stdout FAILED: --- log/7/check-expected 2025-09-11 10:31:44.040134914 +0000 +++ log/7/check-generated 2025-09-11 10:31:44.040134914 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/7/ dir after test 523 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind523 ./libtest/libtests lib523 http://www.example.com:999/523 http://127.0.0.1:40129 > log/7/stdout523 2> log/7/stderr523 === End of file commands.log === Start of file http_server.log 10:31:42.955499 ====> Client connect 10:31:42.955934 accept_connection 3 returned 4 10:31:42.956212 accept_connection 3 returned 0 10:31:42.956358 Read 93 bytes 10:31:42.956445 Process 93 bytes request 10:31:42.956533 Got request: GET /verifiedserver HTTP/1.1 10:31:42.956611 Are-we-friendly question received 10:31:42.956902 Wrote request (93 bytes) input to log/7/server.input 10:31:42.957181 Identifying ourselves as friends 10:31:42.958129 Response sent (56 bytes) and written to log/7/server.response 10:31:42.958292 special request received, no persistency 10:31:42.958365 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60680 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 523 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind523 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind523 test 0524...[FTP upload with target URL ending with slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind524 ./libtest/libtests lib524 ftp://127.0.0.1:33323/path/to/ > log/6/stdout524 2> log/6/stderr524 524: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 524 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind524 ./libtest/libtests lib524 ftp://127.0.0.1:33323/path/to/ > log/6/stdout524 2> log/6/stderr524 === End of file commands.log === Start of file ftp_server.log 10:31:43.360335 ====> Client connect 10:31:43.361962 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:43.365245 < "USER anonymous" 10:31:43.365871 > "331 We are happy you popped in![CR][LF]" 10:31:43.368417 < "PASS ftp@example.com" 10:31:43.369222 > "230 Welcome you silly person[CR][LF]" 10:31:43.371311 < "PWD" 10:31:43.372159 > "257 "/" is current directory[CR][LF]" 10:31:43.374321 < "EPSV" 10:31:43.374610 ====> Passive DATA channel requested by client 10:31:43.374766 DATA sockfilt for passive data channel starting... 10:31:43.385524 DATA sockfilt for passive data channel started (pid 102446) 10:31:43.386519 DATA sockfilt for passive data channel listens on port 43589 10:31:43.386953 > "229 Entering Passive Mode (|||43589|)[LF]" 10:31:43.387217 Client has been notified that DATA conn will be accepted on port 43589 10:31:43.390208 Client connects to port 43589 10:31:43.390605 ====> Client established passive DATA connection on port 43589 10:31:43.391404 < "TYPE I" 10:31:43.391868 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:43.394473 < "SIZE verifiedserver" 10:31:43.395009 > "213 17[CR][LF]" 10:31:43.397449 < "RETR verifiedserver" 10:31:43.398068 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:43.398907 =====> Closing passive DATA connection... 10:31:43.399185 Server disconnects passive DATA connection 10:31:43.400963 Server disconnected passive DATA connection 10:31:43.401379 DATA sockfilt for passive data channel quits (pid 102446) 10:31:43.403533 DATA sockfilt for passive data channel quit (pid 102446) 10:31:43.403992 =====> Closed passive DATA connection 10:31:43.404375 > "226 File transfer complete[CR][LF]" 10:31:43.445418 < "QUIT" 10:31:43.446141 > "221 bye bye baby[CR][LF]" 10:31:43.452133 MAIN sockfilt said DISC 10:31:43.452606 ====> Client disconnected 10:31:43.453299 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:44.029831 ====> Client connect 10:31:44.032166 Received DATA (on stdin) 10:31:44.032465 > 160 bytes data, server => client 10:31:44.032617 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:44.032732 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:44.032832 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:44.034078 < 16 bytes data, client => server 10:31:44.034314 'USER anonymous\r\n' 10:31:44.036579 Received DATA (on stdin) 10:31:44.036764 > 33 bytes data, server => client 10:31:44.036856 '331 We are happy you popped in!\r\n' 10:31:44.037622 < 22 bytes data, client => server 10:31:44.037804 'PASS ftp@example.com\r\n' 10:31:44.039076 Received DATA (on stdin) 10:31:44.039225 > 30 bytes data, server => client 10:31:44.039859 '230 Welcome you silly person\r\n' 10:31:44.040630 < 5 bytes data, client => server 10:31:44.040811 'PWD\r\n' 10:31:44.041980 Received DATA (on stdin) 10:31:44.042149 > 30 bytes data, server => client 10:31:44.042637 '257 "/" is current directory\r\n' 10:31:44.043824 < 6 bytes data, client => server 10:31:44.044059 'EPSV\r\n' 10:31:44.057735 Received DATA (on stdin) 10:31:44.057908 > 38 bytes data, server => client 10:31:44.058002 '229 Entering Passive Mode (|||43589|)\n' 10:31:44.059623 < 8 bytes data, client => serveCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind525 ./libtest/libtests lib525 ftp://127.0.0.1:43393/path/525 log/5/upload525 > log/5/stdout525 2> log/5/stderr525 r 10:31:44.060176 'TYPE I\r\n' 10:31:44.062471 Received DATA (on stdin) 10:31:44.062686 > 33 bytes data, server => client 10:31:44.062785 '200 I modify TYPE as you wanted\r\n' 10:31:44.063572 < 21 bytes data, client => server 10:31:44.063861 'SIZE verifiedserver\r\n' 10:31:44.065596 Received DATA (on stdin) 10:31:44.065777 > 8 bytes data, server => client 10:31:44.065872 '213 17\r\n' 10:31:44.066708 < 21 bytes data, client => server 10:31:44.066894 'RETR verifiedserver\r\n' 10:31:44.069780 Received DATA (on stdin) 10:31:44.069921 > 29 bytes data, server => client 10:31:44.070064 '150 Binary junk (17 bytes).\r\n' 10:31:44.074631 Received DATA (on stdin) 10:31:44.074836 > 28 bytes data, server => client 10:31:44.074929 '226 File transfer complete\r\n' 10:31:44.114550 < 6 bytes data, client => server 10:31:44.114839 'QUIT\r\n' 10:31:44.116369 Received DATA (on stdin) 10:31:44.116579 > 18 bytes data, server => client 10:31:44.116687 '221 bye bye baby\r\n' 10:31:44.121923 ====> Client disconnect 10:31:44.123995 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:43.054362 Running IPv4 version 10:31:43.054955 Listening on port 43589 10:31:43.055292 Wrote pid 102446 to log/6/server/ftp_sockdata.pid 10:31:43.055420 Received PING (on stdin) 10:31:43.056204 Received PORT (on stdin) 10:31:43.059259 ====> Client connect 10:31:43.068781 Received DATA (on stdin) 10:31:43.069003 > 17 bytes data, server => client 10:31:43.069102 'WE ROOLZ: 79480\r\n' 10:31:43.069723 Received DISC (on stdin) 10:31:43.069943 ====> Client forcibly disconnected 10:31:43.072091 Received QUIT (on stdin) 10:31:43.072330 quits 10:31:43.072772 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 524 === End of file server.cmd === Start of file valgrind524 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind524 test 0525...[FTP PORT upload using multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind525 ./libtest/libtests lib525 ftp://127.0.0.1:43393/path/525 log/5/upload525 > log/5/stdout525 2> log/5/stderr525 525: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 525 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind525 ./libtest/libtests lib525 ftp://127.0.0.1:43393/path/525 log/5/upload525 > log/5/stdout525 2> log/5/stderr525 === End of file commands.log === Start of file ftp_server.log 10:31:43.610926 ====> Client connect 10:31:43.612239 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:43.615469 < "USER anonymous" 10:31:43.616039 > "331 We are happy you popped in![CR][LF]" 10:31:43.618785 < "PASS ftp@example.com" 10:31:43.619437 > "230 Welcome you silly person[CR][LF]" 10:31:43.623019 < "PWD" 10:31:43.623718 > "257 "/" is current directory[CR][LF]" 10:31:43.627133 < "EPSV" 10:31:43.627532 ====> Passive DATA channel requested by client 10:31:43.627794 DATA sockfilt for passive data channel starting... 10:31:43.639602 DATA sockfilt for passive data channel started (pid 102565) 10:31:43.640695 DATA sockfilt for passive data channel listens on port 44743 10:31:43.641255 > "229 Entering Passive Mode (|||44743|)[LF]" 10:31:43.641721 Client has been notified that DATA conn will be accepted on port 44743 10:31:43.644950 Client connects to port 44743 10:31:43.645417 ====> Client established passive DATA connection on port 44743 10:31:43.647467 < "TYPE I" 10:31:43.648128 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:43.654462 < "SIZE verifiedserver" 10:31:43.655242 > "213 17[CR][LF]" 10:31:43.657915 < "RETR verifiedserver" 10:31:43.658507 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:43.659239 =====> Closing passive DATA connection... 10:31:43.659446 Server disconnects passive DATA connection 10:31:43.660883 Server disconnected passive DATA connection 10:31:43.661446 DATA sockfilt for passive data channel quits (pid 102565) 10:31:43.663850 DATA sockfilt for passive data channel quit (pid 102565) 10:31:43.664317 =====> Closed passive DATA connection 10:31:43.664781 > "226 File transfer complete[CR][LF]" 10:31:43.707681 < "QUIT" 10:31:43.708123 > "221 bye bye baby[CR][LF]" 10:31:43.711472 MAIN sockfilt said DISC 10:31:43.712624 ====> Client disconnected 10:31:43.713456 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:43.280505 ====> Client connect 10:31:43.283054 Received DATA (on stdin) 10:31:43.283328 > 160 bytes data, server => client 10:31:43.283437 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:43.283513 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:43.283580 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:43.284341 < 16 bytes data, client => server 10:31:43.284553 'USER anonymous\r\n' 10:31:43.286762 Received DATA (on stdin) 10:31:43.286984 > 33 bytes data, server => client 10:31:43.287075 '331 We are happy you popped in!\r\n' 10:31:43.287834 < 22 bytes data, client => server 10:31:43.288050 'PASS ftp@example.com\r\n' 10:31:43.290224 Received DATA (on stdin) 10:31:43.290520 > 30 bytes data, server => client 10:31:43.290663 '230 Welcome you silly person\r\n' 10:31:43.291522 < 5 bytes data, client => server 10:31:43.291955 'PWD\r\n' 10:31:43.294456 Received DATA (on stdin) 10:31:43.294697 > 30 bytes data, server => client 10:31:43.294816 '257 "/" is current directory\r\n' 10:31:43.296235 < 6 bytes data, client => server 10:31:43.296413 'EPSV\r\n' 10:31:43.311490 Received DATA (on stdin) 10:31:43.311847 > 38 bytes data, server => client 10:31:43.312010 '229 Entering Passive Mode (|||44743|)\n' 10:31:43.314813 < 8 bytes data, client => server 10:31:43.314942 'TYPE I\r\n' 10:31:43.319833 Received DATA (on stdin) 10:31:43.320099 > 33 bytes data, server => client 10:31:43.320222 '200 I modify TYPE as you wanted\r\n' 10:31:43.323159 < 21 bytes data, client => server 10:31:43.323421 'SIZE verifiedserver\r\n' 10:31:43.325454 Received DATA (on stdin) 10:31:43.325718 > 8 bytes data, server => client 10:31:43.325836 '213 17\r\n' 10:31:43.327210 < 21 bytes data, client => server 10:31:43.327453 'RETR verifiedserver\r\n' 10:31:43.329315 Received DATA (on stdin) 10:31:43.329443 > 29 byteCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind526 ./libtest/libtests lib526 ftp://127.0.0.1:42977/path/526 > log/8/stdout526 2> log/8/stderr526 s data, server => client 10:31:43.329523 '150 Binary junk (17 bytes).\r\n' 10:31:43.334985 Received DATA (on stdin) 10:31:43.335210 > 28 bytes data, server => client 10:31:43.335337 '226 File transfer complete\r\n' 10:31:43.376895 < 6 bytes data, client => server 10:31:43.377023 'QUIT\r\n' 10:31:43.378376 Received DATA (on stdin) 10:31:43.378552 > 18 bytes data, server => client 10:31:43.378639 '221 bye bye baby\r\n' 10:31:43.381334 ====> Client disconnect 10:31:43.382163 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:43.307471 Running IPv4 version 10:31:43.308108 Listening on port 44743 10:31:43.308466 Wrote pid 102565 to log/5/server/ftp_sockdata.pid 10:31:43.309430 Received PING (on stdin) 10:31:43.310292 Received PORT (on stdin) 10:31:43.314696 ====> Client connect 10:31:43.329158 Received DATA (on stdin) 10:31:43.329372 > 17 bytes data, server => client 10:31:43.329448 'WE ROOLZ: 79602\r\n' 10:31:43.329945 Received DISC (on stdin) 10:31:43.330136 ====> Client forcibly disconnected 10:31:43.332194 Received QUIT (on stdin) 10:31:43.332414 quits 10:31:43.332936 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 525 === End of file server.cmd === Start of file upload525 Moooooooooooo upload this === End of file upload525 === Start of file valgrind525 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind525 test 0526...[FTP RETR same file using different handles but same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind526 ./libtest/libtests lib526 ftp://127.0.0.1:42977/path/526 > log/8/stdout526 2> log/8/stderr526 526: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 526 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind526 ./libtest/libtests lib526 ftp://127.0.0.1:42977/path/526 > log/8/stdout526 2> log/8/stderr526 === End of file commands.log === Start of file ftp_server.log 10:31:43.694631 ====> Client connect 10:31:43.697056 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:43.698604 < "USER anonymous" 10:31:43.699171 > "331 We are happy you popped in![CR][LF]" 10:31:43.702086 < "PASS ftp@example.com" 10:31:43.702770 > "230 Welcome you silly person[CR][LF]" 10:31:43.706948 < "PWD" 10:31:43.707443 > "257 "/" is current directory[CR][LF]" 10:31:43.710252 < "EPSV" 10:31:43.710726 ====> Passive DATA channel requested by client 10:31:43.711027 DATA sockfilt for passive data channel starting... 10:31:43.722522 DATA sockfilt for passive data channel started (pid 102633) 10:31:43.723700 DATA sockfilt for passive data channel listens on port 45705 10:31:43.724308 > "229 Entering Passive Mode (|||45705|)[LF]" 10:31:43.724572 Client has been notified that DATA conn will be accepted on port 45705 10:31:43.727197 Client connects to port 45705 10:31:43.727655 ====> Client established passive DATA connection on port 45705 10:31:43.728611 < "TYPE I" 10:31:43.729084 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:43.731920 < "SIZE verifiedserver" 10:31:43.732427 > "213 17[CR][LF]" 10:31:43.734551 < "RETR verifiedserver" 10:31:43.735069 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:43.735872 =====> Closing passive DATA connection... 10:31:43.736257 Server disconnects passive DATA connection 10:31:43.737198 Server disconnected passive DATA connection 10:31:43.737657 DATA sockfilt for passive data channel quits (pid 102633) 10:31:43.739813 DATA sockfilt for passive data channel quit (pid 102633) 10:31:43.740220 =====> Closed passive DATA connection 10:31:43.740593 > "226 File transfer complete[CR][LF]" 10:31:43.779247 < "QUIT" 10:31:43.779709 > "221 bye bye baby[CR][LF]" 10:31:43.780888 MAIN sockfilt said DISC 10:31:43.781341 ====> Client disconnected 10:31:43.782091 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:43.364043 ====> Client connect 10:31:43.366049 Received DATA (on stdin) 10:31:43.366271 > 160 bytes data, server => client 10:31:43.366476 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:43.366590 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:43.366724 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:43.367379 < 16 bytes data, client => server 10:31:43.367583 'USER anonymous\r\n' 10:31:43.369502 Received DATA (on stdin) 10:31:43.369679 > 33 bytes data, server => client 10:31:43.369775 '331 We are happy you popped in!\r\n' 10:31:43.370762 < 22 bytes data, client => server 10:31:43.371012 'PASS ftp@example.com\r\n' 10:31:43.374793 Received DATA (on stdin) 10:31:43.375058 > 30 bytes data, server => client 10:31:43.375182 '230 Welcome you silly person\r\n' 10:31:43.376323 < 5 bytes data, client => server 10:31:43.376568 'PWD\r\n' 10:31:43.377694 Received DATA (on stdin) 10:31:43.377858 > 30 bytes data, server => client 10:31:43.377952 '257 "/" is current directory\r\n' 10:31:43.379216 < 6 bytes data, client => server 10:31:43.379476 'EPSV\r\n' 10:31:43.395140 Received DATA (on stdin) 10:31:43.395306 > 38 bytes data, server => client 10:31:43.395388 '229 Entering Passive Mode (|||45705|)\n' 10:31:43.396987 < 8 bytes data, client => server 10:31:43.397155 'TYPE I\r\n' 10:31:43.399874 Received DATA (on stdin) 10:31:43.400095 > 33 bytes data, server => client 10:31:43.400185 '200 I modify TYPE as you wanted\r\n' 10:31:43.400942 < 21 bytes data, client => server 10:31:43.401178 'SIZE verifiedserver\r\n' 10:31:43.403078 Received DATA (on stdin) 10:31:43.403258 > 8 bytes data, server => client 10:31:43.403339 '213 17\r\n' 10:31:43.404056 < 21 bytes data, client => server 10:31:43.404283 'RETR verifiedserver\r\n' 10:31:43.405267 Received DATA (on stdin) 10:31:43.405441 > 29 bytes data, server => client 10:31:43.405536 '150 Binary junk (17 bytes).\r\n' 10:31:43.411162 Received DATA (on stdin) 10:31:43.411346 > 28 bytes data, server => client 10:31:43.411435 '226 File transfer complete\r\n' 10:31:43.448586 < 6 bytes data, client => server 10:31:43.448855 'QUIT\r\n' 10:31:43.449936 Received DATA (on stdin) 10:31:43.450103 > 18 bytes data, server => client 10:31:43.450205 '221 bye bye baby\r\n' 10:31:43.450729 ====> Client disconnect 10:31:43.4CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind530 ./libtest/libtests lib530 http://127.0.0.1:36757/file530 > log/4/stdout530 2> log/4/stderr530 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind527 ./libtest/libtests lib526 ftp://127.0.0.1:38733/path/527 > log/1/stdout527 2> log/1/stderr527 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind528 ./libtest/libtests lib526 http://127.0.0.1:43789/path/528 > log/2/stdout528 2> log/2/stderr528 52846 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:43.390718 Running IPv4 version 10:31:43.391244 Listening on port 45705 10:31:43.392186 Wrote pid 102633 to log/8/server/ftp_sockdata.pid 10:31:43.392404 Received PING (on stdin) 10:31:43.393253 Received PORT (on stdin) 10:31:43.396563 ====> Client connect 10:31:43.406460 Received DATA (on stdin) 10:31:43.406657 > 17 bytes data, server => client 10:31:43.406763 'WE ROOLZ: 86552\r\n' 10:31:43.407101 Received DISC (on stdin) 10:31:43.407290 ====> Client forcibly disconnected 10:31:43.408362 Received QUIT (on stdin) 10:31:43.408569 quits 10:31:43.408976 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 526 === End of file server.cmd === Start of file valgrind526 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind526 test 0530...[multi_socket interface transfer with callbacks returning error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind530 ./libtest/libtests lib530 http://127.0.0.1:36757/file530 > log/4/stdout530 2> log/4/stderr530 libtests returned 1, when expecting 0 530: exit FAILED == Contents of files in the log/4/ dir after test 530 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind530 ./libtest/libtests lib530 http://127.0.0.1:36757/file530 > log/4/stdout530 2> log/4/stderr530 === End of file commands.log === Start of file http_server.log 10:31:44.853127 ====> Client connect 10:31:44.853486 accept_connection 3 returned 4 10:31:44.853675 accept_connection 3 returned 0 10:31:44.853821 Read 93 bytes 10:31:44.853915 Process 93 bytes request 10:31:44.854015 Got request: GET /verifiedserver HTTP/1.1 10:31:44.854088 Are-we-friendly question received 10:31:44.854331 Wrote request (93 bytes) input to log/4/server.input 10:31:44.854506 Identifying ourselves as friends 10:31:44.855148 Response sent (56 bytes) and written to log/4/server.response 10:31:44.855256 special request received, no persistency 10:31:44.855320 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40000 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 530 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind530 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind530 test 0527...[FTP RETR same file using different handles but same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind527 ./libtest/libtests lib526 ftp://127.0.0.1:38733/path/527 > log/1/stdout527 2> log/1/stderr527 527: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 527 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind527 ./libtest/libtests lib526 ftp://127.0.0.1:38733/path/527 > log/1/stdout527 2> log/1/stderr527 === End of file commands.log === Start of file ftp_server.log 10:31:44.042725 ====> Client connect 10:31:44.044170 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:44.050346 < "USER anonymous" 10:31:44.051118 > "331 We are happy you popped in![CR][LF]" 10:31:44.054541 < "PASS ftp@example.com" 10:31:44.055591 > "230 Welcome you silly person[CR][LF]" 10:31:44.058436 < "PWD" 10:31:44.059159 > "257 "/" is current directory[CR][LF]" 10:31:44.062428 < "EPSV" 10:31:44.062879 ====> Passive DATA channel requested by client 10:31:44.063148 DATA sockfilt for passive data channel starting... 10:31:44.078158 DATA sockfilt for passive data channel started (pid 102757) 10:31:44.082647 DATA sockfilt for passive data channel listens on port 40501 10:31:44.083222 > "229 Entering Passive Mode (|||40501|)[LF]" 10:31:44.083537 Client has been notified that DATA conn will be accepted on port 40501 10:31:44.085067 Client connects to port 40501 10:31:44.085622 ====> Client established passive DATA connection on port 40501 10:31:44.088875 < "TYPE I" 10:31:44.089446 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:44.094457 < "SIZE verifiedserver" 10:31:44.095154 > "213 17[CR][LF]" 10:31:44.099156 < "RETR verifiedserver" 10:31:44.099845 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:44.100698 =====> Closing passive DATA connection... 10:31:44.101105 Server disconnects passive DATA connection 10:31:44.105170 Server disconnected passive DATA connection 10:31:44.105639 DATA sockfilt for passive data channel quits (pid 102757) 10:31:44.112774 DATA sockfilt for passive data channel quit (pid 102757) 10:31:44.113104 =====> Closed passive DATA connection 10:31:44.113592 > "226 File transfer complete[CR][LF]" 10:31:44.147370 < "QUIT" 10:31:44.147959 > "221 bye bye baby[CR][LF]" 10:31:44.151238 MAIN sockfilt said DISC 10:31:44.151697 ====> Client disconnected 10:31:44.152563 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:43.711157 ====> Client connect 10:31:43.714986 Received DATA (on stdin) 10:31:43.715247 > 160 bytes data, server => client 10:31:43.715380 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:43.715481 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:43.715577 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:43.718759 < 16 bytes data, client => server 10:31:43.719000 'USER anonymous\r\n' 10:31:43.721869 Received DATA (on stdin) 10:31:43.722091 > 33 bytes data, server => client 10:31:43.722223 '331 We are happy you popped in!\r\n' 10:31:43.723293 < 22 bytes data, client => server 10:31:43.723546 'PASS ftp@example.com\r\n' 10:31:43.725294 Received DATA (on stdin) 10:31:43.725500 > 30 bytes data, server => client 10:31:43.726229 '230 Welcome you silly person\r\n' 10:31:43.727288 < 5 bytes data, client => server 10:31:43.727518 'PWD\r\n' 10:31:43.729886 Received DATA (on stdin) 10:31:43.730138 > 30 bytes data, server => client 10:31:43.730261 '257 "/" is current directory\r\n' 10:31:43.731293 < 6 bytes data, client => server 10:31:43.731521 'EPSV\r\n' 10:31:43.753425 Received DATA (on stdin) 10:31:43.753627 > 38 bytes data, server => client 10:31:43.753726 '229 Entering Passive Mode (|||40501|)\n' 10:31:43.756663 < 8 bytes data, client => server 10:31:43.756863 'TYPE I\r\n' 10:31:43.759860 Received DATA (on stdin) 10:31:43.760111 > 33 bytes data, server => client 10:31:43.760270 '200 I modify TYPE as you wanted\r\n' 10:31:43.763422 < 21 bytes data, client => server 10:31:43.763622 'SIZE verifiedserver\r\n' 10:31:43.765374 Received DATA (on stdin) 10:31:43.765571 > 8 bytes data, server => client 10:31:43.765661 '213 17\r\n' 10:31:43.766478 < 21 bytes data, client => server 10:31:43.766723 'RETR verifiedserver\r\n' 10:31:43.771241 Received DATA (on stdin) 10:31:43.771446 > 29 bytes data, server => client 10:31:43.771553 '150 Binary junk (17 bytes).\r\n' 10:31:43.783999 Received DATA (on stdin) 10:31:43.784174 > 28 bytes data, server => client 10:31:43.784267 '226 File transfer complete\r\n' 10:31:43.816781 < 6 bytes data, client => server 10:31:43.816978 'QUIT\r\n' 10:31:43.819750 Received DATA (on stdin) 10:31:43.819988 > 18 bytes data, server => client 10:31:43.820115 '221 bye bye baby\r\n' 10:31:43.820697 ====> Client disconnect 10:31:43.825183 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:44.746710 Running IPv4 version 10:31:44.747235 Listening on port 40501 10:31:44.747717 Wrote pid 102757 to log/1/server/ftp_sockdata.pid 10:31:44.747985 Received PING (on stdin) 10:31:44.750253 Received PORT (on stdin) 10:31:44.754880 ====> Client connect 10:31:44.773182 Received DATA (on stdin) 10:31:44.773397 > 17 bytes data, server => client 10:31:44.773501 'WE ROOLZ: 79585\r\n' 10:31:44.773937 Received DISC (on stdin) 10:31:44.774186 ====> Client forcibly disconnected 10:31:44.780073 Received QUIT (on stdin) 10:31:44.780368 quits 10:31:44.780944 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 527 === End of file server.cmd === Start of file valgrind527 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind527 test 0528...[HTTP GET same file using different handles but same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind528 ./libtest/libtests lib526 http://127.0.0.1:43789/path/528 > log/2/stdout528 2> log/2/stderr528 528: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 528 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind528 ./libtest/libtests lib526 http://127.0.0.1:43789/path/528 > log/2/stdout528 2> log/2/stderr528 === End of file commands.log === Start of file http_server.log 10:31:43.774393 ====> Client connect 10:31:43.774742 accept_connection 3 returned 4 10:31:43.774943 accept_connection 3 returned 0 10:31:43.775120 Read 93 bytes 10:31:43.775249 Process 93 bytes request 10:31:43.775355 Got request: GET /verifiedserver HTTP/1.1 10:31:43.775431 Are-we-friendly question received 10:31:43.775622 Wrote request (93 bytes) input to log/2/server.input 10:31:43.775947 Identifying ourselves as friends 10:31:43.776758 Response sent (56 bytes) and written to log/2/server.response 10:31:43.776929 special request received, no persistency 10:31:43.777061 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 35000 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 528 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind528 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind529 ./libtest/libtests lib525 ftp://127.0.0.1:33831/path/529 log/3/upload529 > log/3/stdout529 2> log/3/stderr529 rind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind528 test 0529...[FTP PORT upload using multi interface (weird cleanup function sequence)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind529 ./libtest/libtests lib525 ftp://127.0.0.1:33831/path/529 log/3/upload529 > log/3/stdout529 2> log/3/stderr529 529: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 529 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind529 ./libtest/libtests lib525 ftp://127.0.0.1:33831/path/529 log/3/upload529 > log/3/stdout529 2> log/3/stderr529 === End of file commands.log === Start of file ftp_server.log 10:31:44.104451 ====> Client connect 10:31:44.105820 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:44.112656 < "USER anonymous" 10:31:44.113239 > "331 We are happy you popped in![CR][LF]" 10:31:44.117904 < "PASS ftp@example.com" 10:31:44.118362 > "230 Welcome you silly person[CR][LF]" 10:31:44.120007 < "PWD" 10:31:44.120447 > "257 "/" is current directory[CR][LF]" 10:31:44.123737 < "EPSV" 10:31:44.124116 ====> Passive DATA channel requested by client 10:31:44.124359 DATA sockfilt for passive data channel starting... 10:31:44.135780 DATA sockfilt for passive data channel started (pid 102785) 10:31:44.137171 DATA sockfilt for passive data channel listens on port 46393 10:31:44.137914 > "229 Entering Passive Mode (|||46393|)[LF]" 10:31:44.138363 Client has been notified that DATA conn will be accepted on port 46393 10:31:44.143831 Client connects to port 46393 10:31:44.144327 ====> Client established passive DATA connection on port 46393 10:31:44.145281 < "TYPE I" 10:31:44.145988 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:44.147986 < "SIZE verifiedserver" 10:31:44.148536 > "213 17[CR][LF]" 10:31:44.151447 < "RETR verifiedserver" 10:31:44.152531 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:44.154798 =====> Closing passive DATA connection... 10:31:44.155297 Server disconnects passive DATA connection 10:31:44.156218 Server disconnected passive DATA connection 10:31:44.156643 DATA sockfilt for passive data channel quits (pid 102785) 10:31:44.158609 DATA sockfilt for passive data channel quit (pid 102785) 10:31:44.159019 =====> Closed passive DATA connection 10:31:44.160360 > "226 File transfer complete[CR][LF]" 10:31:44.203547 < "QUIT" 10:31:44.204154 > "221 bye bye baby[CR][LF]" 10:31:44.211880 MAIN sockfilt said DISC 10:31:44.212381 ====> Client disconnected 10:31:44.213078 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:43.773272 ====> Client connect 10:31:43.777442 Received DATA (on stdin) 10:31:43.777981 > 160 bytes data, server => client 10:31:43.778217 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:43.778328 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:43.778410 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:43.780062 < 16 bytes data, client => server 10:31:43.780374 'USER anonymous\r\n' 10:31:43.783847 Received DATA (on stdin) 10:31:43.784060 > 33 bytes data, server => client 10:31:43.784165 '331 We are happy you popped in!\r\n' 10:31:43.785034 < 22 bytes data, client => server 10:31:43.785244 'PASS ftp@example.com\r\n' 10:31:43.788556 Received DATA (on stdin) 10:31:43.788765 > 30 bytes data, server => client 10:31:43.788851 '230 Welcome you silly person\r\n' 10:31:43.789538 < 5 bytes data, client => server 10:31:43.789766 'PWD\r\n' 10:31:43.790670 Received DATA (on stdin) 10:31:43.790856 > 30 bytes data, server => client 10:31:43.790975 '257 "/" is current directory\r\n' 10:31:43.791951 < 6 bytes data, client => server 10:31:43.792220 'EPSV\r\n' 10:31:43.809404 Received DATA (on stdin) 10:31:43.809654 > 38 bytes data, server => client 10:31:43.809772 '229 Entering Passive Mode (|||46393|)\n' 10:31:43.814301 < 8 bytes data, client => server 10:31:43.814449 'TYPE I\r\n' 10:31:43.816156 Received DATA (on stdin) 10:31:43.816344 > 33 bytes data, server => client 10:31:43.816433 '200 I modify TYPE as you wanted\r\n' 10:31:43.817120 < 21 bytes data, client => server 10:31:43.817285 'SIZE verifiedserver\r\n' 10:31:43.819215 Received DATA (on stdin) 10:31:43.819431 > 8 bytes data, server => client 10:31:43.819525 '213 17\r\n' 10:31:43.820413 < 21 bytes data, client => server 10:31:43.820661 'RETR verifiedserver\r\n' 10:31:43.822204 Received DATA (on stdin) 10:31:43.822426 > 29 bytes data, server => client 10:31:43.823843 '150 Binary junk (17 bytes).\r\n' 10:31:43.829652 Received DATA (on stdin) 10:31:43.829895 > 28 bytes data, server => client 10:31:43.830179 '226 File transfer complete\r\n' 10:31:43.872592 < 6 bytes data, client => server 10:31:43.872804 'QUIT\r\n' 10:31:43.875959 Received DATA (on stdin) 10:31:43.876245 > 18 bytes data, server => client 10:31:43.876379 '221 bye bye baby\r\n' 10:31:43.877442 ====> Client disconnect 10:31:43.883890 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:44.804444 Running IPv4 version 10:31:44.805046 Listening on port 46393 10:31:44.805397 Wrote pid 102785 to log/3/server/ftp_sockdata.pid 10:31:44.805559 Received PING (on stdin) 10:31:44.806593 Received PORT (on stdin) 10:31:44.813579 ====> Client connect 10:31:44.823302 Received DATA (on stdin) 10:31:44.823536 > 17 bytes data, server => client 10:31:44.823767 'WE ROOLZ: 79555\r\n' 10:31:44.826013 Received DISC (on stdin) 10:31:44.826278 ====> Client forcibly disconnected 10:31:44.827191 Received QUIT (on stdin) 10:31:44.827345 quits 10:31:44.827878 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 529 === End of file server.cmd === Start of file upload529 Moooooooooooo upload this === End of file upload529 === Start of file valgrind529 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: tCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind532 ./libtest/libtests lib526 ftp://127.0.0.1:33323/path/532 > log/6/stdout532 2> log/6/stderr532 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind531 ./libtest/libtests lib525 ftp://127.0.0.1:38253/path/531 log/7/upload531 > log/7/stdout531 2> log/7/stderr531 o install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind529 test 0532...[FTP RETR same file using reset handles between each transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind532 ./libtest/libtests lib526 ftp://127.0.0.1:33323/path/532 > log/6/stdout532 2> log/6/stderr532 532: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 532 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind532 ./libtest/libtests lib526 ftp://127.0.0.1:33323/path/532 > log/6/stdout532 2> log/6/stderr532 === End of file commands.log === Start of file ftp_server.log 10:31:44.269599 ====> Client connect 10:31:44.270813 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:44.273097 < "USER anonymous" 10:31:44.273607 > "331 We are happy you popped in![CR][LF]" 10:31:44.277952 < "PASS ftp@example.com" 10:31:44.278344 > "230 Welcome you silly person[CR][LF]" 10:31:44.279864 < "PWD" 10:31:44.280275 > "257 "/" is current directory[CR][LF]" 10:31:44.282337 < "EPSV" 10:31:44.282688 ====> Passive DATA channel requested by client 10:31:44.282868 DATA sockfilt for passive data channel starting... 10:31:44.294277 DATA sockfilt for passive data channel started (pid 102858) 10:31:44.295480 DATA sockfilt for passive data channel listens on port 42295 10:31:44.296069 > "229 Entering Passive Mode (|||42295|)[LF]" 10:31:44.296394 Client has been notified that DATA conn will be accepted on port 42295 10:31:44.299441 Client connects to port 42295 10:31:44.299825 ====> Client established passive DATA connection on port 42295 10:31:44.300673 < "TYPE I" 10:31:44.301110 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:44.303442 < "SIZE verifiedserver" 10:31:44.303952 > "213 17[CR][LF]" 10:31:44.307334 < "RETR verifiedserver" 10:31:44.307880 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:44.308646 =====> Closing passive DATA connection... 10:31:44.308971 Server disconnects passive DATA connection 10:31:44.314591 Server disconnected passive DATA connection 10:31:44.314931 DATA sockfilt for passive data channel quits (pid 102858) 10:31:44.316590 DATA sockfilt for passive data channel quit (pid 102858) 10:31:44.316896 =====> Closed passive DATA connection 10:31:44.317289 > "226 File transfer complete[CR][LF]" 10:31:44.354715 < "QUIT" 10:31:44.355478 > "221 bye bye baby[CR][LF]" 10:31:44.362110 MAIN sockfilt said DISC 10:31:44.362687 ====> Client disconnected 10:31:44.363506 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:44.933365 ====> Client connect 10:31:44.941012 Received DATA (on stdin) 10:31:44.941243 > 160 bytes data, server => client 10:31:44.941354 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:44.941446 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:44.941515 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:44.942413 < 16 bytes data, client => server 10:31:44.942672 'USER anonymous\r\n' 10:31:44.945900 Received DATA (on stdin) 10:31:44.946069 > 33 bytes data, server => client 10:31:44.946171 '331 We are happy you popped in!\r\n' 10:31:44.947083 < 22 bytes data, client => server 10:31:44.947319 'PASS ftp@example.com\r\n' 10:31:44.948563 Received DATA (on stdin) 10:31:44.948680 > 30 bytes data, server => client 10:31:44.948762 '230 Welcome you silly person\r\n' 10:31:44.949458 < 5 bytes data, client => server 10:31:44.949648 'PWD\r\n' 10:31:44.950477 Received DATA (on stdin) 10:31:44.950614 > 30 bytes data, server => client 10:31:44.950703 '257 "/" is current directory\r\n' 10:31:44.951413 < 6 bytes data, client => server 10:31:44.951622 'EPSV\r\n' 10:31:44.967792 Received DATA (on stdin) 10:31:44.967975 > 38 bytes data, server => client 10:31:44.968069 '229 Entering Passive Mode (|||42295|)\n' 10:31:44.969605 < 8 bytes data, client => server 10:31:44.969804 'TYPE I\r\n' 10:31:44.971959 Received DATA (on stdin) 10:31:44.972211 > 33 bytes data, server => client 10:31:44.972310 '200 I modify TYPE as you wanted\r\n' 10:31:44.973033 < 21 bytes data, client => server 10:31:44.973229 'SIZE verifiedserver\r\n' 10:31:44.975756 Received DATA (on stdin) 10:31:44.975998 > 8 bytes data, server => client 10:31:44.976091 '213 17\r\n' 10:31:44.976823 < 21 bytes data, client => server 10:31:44.977039 'RETR verifiedserver\r\n' 10:31:44.978090 Received DATA (on stdin) 10:31:44.978279 > 29 bytes data, server => client 10:31:44.978375 '150 Binary junk (17 bytes).\r\n' 10:31:44.990203 Received DATA (on stdin) 10:31:44.990388 > 28 bytes data, server => client 10:31:44.990494 '226 File transfer complete\r\n' 10:31:45.021356 < 6 bytes data, client => server 10:31:45.021682 'QUIT\r\n' 10:31:45.026826 Received DATA (on stdin) 10:31:45.027129 > 18 bytes data, server => client 10:31:45.027278 '221 bye bye baby\r\n' 10:31:45.031808 ====> Client disconnect 10:31:45.032930 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:44.962785 Running IPv4 version 10:31:44.963317 Listening on port 42295 10:31:44.963896 Wrote pid 102858 to log/6/server/ftp_sockdata.pid 10:31:44.964129 Received PING (on stdin) 10:31:44.965096 Received PORT (on stdin) 10:31:44.969286 ====> Client connect 10:31:44.983767 Received DATA (on stdin) 10:31:44.984036 > 17 bytes data, server => client 10:31:44.984125 'WE ROOLZ: 79480\r\n' 10:31:44.984486 Received DISC (on stdin) 10:31:44.984648 ====> Client forcibly disconnected 10:31:44.985369 Received QUIT (on stdin) 10:31:44.985464 quits 10:31:44.985908 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 532 === End of file server.cmd === Start of file valgrind532 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind532 test 0531...[FTP PORT upload using multi interface and get 425 response] ../libtool --mode=execute /usr/bin/vaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind533 ./libtest/libtests lib533 ftp://127.0.0.1:43393/path/533 ftp://127.0.0.1:43393/path/533 > log/5/stdout533 2> log/5/stderr533 lgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind531 ./libtest/libtests lib525 ftp://127.0.0.1:38253/path/531 log/7/upload531 > log/7/stdout531 2> log/7/stderr531 531: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 531 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind531 ./libtest/libtests lib525 ftp://127.0.0.1:38253/path/531 log/7/upload531 > log/7/stdout531 2> log/7/stderr531 === End of file commands.log === Start of file ftp_server.log 10:31:44.262218 ====> Client connect 10:31:44.263434 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:44.265943 < "USER anonymous" 10:31:44.266368 > "331 We are happy you popped in![CR][LF]" 10:31:44.268857 < "PASS ftp@example.com" 10:31:44.269399 > "230 Welcome you silly person[CR][LF]" 10:31:44.272656 < "PWD" 10:31:44.273134 > "257 "/" is current directory[CR][LF]" 10:31:44.278220 < "EPSV" 10:31:44.278514 ====> Passive DATA channel requested by client 10:31:44.278661 DATA sockfilt for passive data channel starting... 10:31:44.297768 DATA sockfilt for passive data channel started (pid 102857) 10:31:44.301895 DATA sockfilt for passive data channel listens on port 46223 10:31:44.302334 > "229 Entering Passive Mode (|||46223|)[LF]" 10:31:44.302544 Client has been notified that DATA conn will be accepted on port 46223 10:31:44.310752 Client connects to port 46223 10:31:44.311202 ====> Client established passive DATA connection on port 46223 10:31:44.314423 < "TYPE I" 10:31:44.314904 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:44.316575 < "SIZE verifiedserver" 10:31:44.317128 > "213 17[CR][LF]" 10:31:44.318810 < "RETR verifiedserver" 10:31:44.319298 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:44.320082 =====> Closing passive DATA connection... 10:31:44.320342 Server disconnects passive DATA connection 10:31:44.320882 Server disconnected passive DATA connection 10:31:44.321225 DATA sockfilt for passive data channel quits (pid 102857) 10:31:44.323465 DATA sockfilt for passive data channel quit (pid 102857) 10:31:44.323847 =====> Closed passive DATA connection 10:31:44.324195 > "226 File transfer complete[CR][LF]" 10:31:44.370375 < "QUIT" 10:31:44.371260 > "221 bye bye baby[CR][LF]" 10:31:44.377864 MAIN sockfilt said DISC 10:31:44.379323 ====> Client disconnected 10:31:44.380167 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:44.931825 ====> Client connect 10:31:44.933629 Received DATA (on stdin) 10:31:44.934194 > 160 bytes data, server => client 10:31:44.934377 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:44.934461 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:44.934530 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:44.935198 < 16 bytes data, client => server 10:31:44.935414 'USER anonymous\r\n' 10:31:44.936590 Received DATA (on stdin) 10:31:44.936753 > 33 bytes data, server => client 10:31:44.936841 '331 We are happy you popped in!\r\n' 10:31:44.937438 < 22 bytes data, client => server 10:31:44.937653 'PASS ftp@example.com\r\n' 10:31:44.939621 Received DATA (on stdin) 10:31:44.939986 > 30 bytes data, server => client 10:31:44.940090 '230 Welcome you silly person\r\n' 10:31:44.941006 < 5 bytes data, client => server 10:31:44.941197 'PWD\r\n' 10:31:44.943356 Received DATA (on stdin) 10:31:44.943526 > 30 bytes data, server => client 10:31:44.943740 '257 "/" is current directory\r\n' 10:31:44.945593 < 6 bytes data, client => server 10:31:44.945812 'EPSV\r\n' 10:31:44.972560 Received DATA (on stdin) 10:31:44.972700 > 38 bytes data, server => client 10:31:44.972788 '229 Entering Passive Mode (|||46223|)\n' 10:31:44.983825 < 8 bytes data, client => server 10:31:44.984032 'TYPE I\r\n' 10:31:44.985093 Received DATA (on stdin) 10:31:44.985274 > 33 bytes data, server => client 10:31:44.985377 '200 I modify TYPE as you wanted\r\n' 10:31:44.986050 < 21 bytes data, client => server 10:31:44.986171 'SIZE verifiedserver\r\n' 10:31:44.987345 Received DATA (on stdin) 10:31:44.987528 > 8 bytes data, server => client 10:31:44.987621 '213 17\r\n' 10:31:44.988336 < 21 bytes data, client => server 10:31:44.988528 'RETR verifiedserver\r\n' 10:31:44.992123 Received DATA (on stdin) 10:31:44.992280 > 29 bytes data, server => client 10:31:44.992372 '150 Binary junk (17 bytes).\r\n' 10:31:44.994793 Received DATA (on stdin) 10:31:44.994972 > 28 bytes data, server => client 10:31:44.995071 '226 File transfer complete\r\n' 10:31:45.038814 < 6 bytes data, client => server 10:31:45.039125 'QUIT\r\n' 10:31:45.042172 Received DATA (on stdin) 10:31:45.042505 > 18 bytes data, server => client 10:31:45.042678 '221 bye bye baby\r\n' 10:31:45.043421 ====> Client disconnect 10:31:45.048792 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:44.962913 Running IPv4 version 10:31:44.965022 Listening on port 46223 10:31:44.967324 Wrote pid 102857 to log/7/server/ftp_sockdata.pid 10:31:44.967552 Received PING (on stdin) 10:31:44.968499 Received PORT (on stdin) 10:31:44.980508 ====> Client connect 10:31:44.989930 Received DATA (on stdin) 10:31:44.990127 > 17 bytes data, server => client 10:31:44.990233 'WE ROOLZ: 79543\r\n' 10:31:44.990801 Received DISC (on stdin) 10:31:44.990978 ====> Client forcibly disconnected 10:31:44.991768 Received QUIT (on stdin) 10:31:44.991934 quits 10:31:44.992386 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY STOR 425 Permission Denied. File Exists. Testnum 531 === End of file server.cmd === Start of file upload531 Moooooooooooo don't upload this === End of file upload531 === Start of file valgrind531 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind531 test 0533...[FTP RETR a non-existing file twice using the multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind533 ./libtest/libtests lib533 ftp://127.0.0.1:43393/path/533 ftp://127.0.0.1:43393/path/533 > log/5/stdout533 2> log/5/stderr533 533: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? RetCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind534 ./libtest/libtests lib533 ftp://non-existing-host.haxx.se/path/534 ftp://127.0.0.1:42977/path/534 > log/8/stdout534 2> log/8/stderr534 urned: 1 == Contents of files in the log/5/ dir after test 533 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind533 ./libtest/libtests lib533 ftp://127.0.0.1:43393/path/533 ftp://127.0.0.1:43393/path/533 > log/5/stdout533 2> log/5/stderr533 === End of file commands.log === Start of file ftp_server.log 10:31:44.662409 ====> Client connect 10:31:44.663976 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:44.672255 < "USER anonymous" 10:31:44.672832 > "331 We are happy you popped in![CR][LF]" 10:31:44.676831 < "PASS ftp@example.com" 10:31:44.677610 > "230 Welcome you silly person[CR][LF]" 10:31:44.682531 < "PWD" 10:31:44.683176 > "257 "/" is current directory[CR][LF]" 10:31:44.686617 < "EPSV" 10:31:44.687047 ====> Passive DATA channel requested by client 10:31:44.687327 DATA sockfilt for passive data channel starting... 10:31:44.701338 DATA sockfilt for passive data channel started (pid 103098) 10:31:44.702807 DATA sockfilt for passive data channel listens on port 44197 10:31:44.703390 > "229 Entering Passive Mode (|||44197|)[LF]" 10:31:44.703788 Client has been notified that DATA conn will be accepted on port 44197 10:31:44.713806 Client connects to port 44197 10:31:44.714414 ====> Client established passive DATA connection on port 44197 10:31:44.715557 < "TYPE I" 10:31:44.716142 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:44.725369 < "SIZE verifiedserver" 10:31:44.726229 > "213 17[CR][LF]" 10:31:44.728828 < "RETR verifiedserver" 10:31:44.733174 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:44.734804 =====> Closing passive DATA connection... 10:31:44.735313 Server disconnects passive DATA connection 10:31:44.738158 Server disconnected passive DATA connection 10:31:44.738623 DATA sockfilt for passive data channel quits (pid 103098) 10:31:44.741264 DATA sockfilt for passive data channel quit (pid 103098) 10:31:44.741984 =====> Closed passive DATA connection 10:31:44.742614 > "226 File transfer complete[CR][LF]" 10:31:44.778729 < "QUIT" 10:31:44.779489 > "221 bye bye baby[CR][LF]" 10:31:44.784660 MAIN sockfilt said DISC 10:31:44.785261 ====> Client disconnected 10:31:44.786516 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:44.331819 ====> Client connect 10:31:44.337270 Received DATA (on stdin) 10:31:44.337592 > 160 bytes data, server => client 10:31:44.337762 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:44.337892 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:44.337983 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:44.340786 < 16 bytes data, client => server 10:31:44.341024 'USER anonymous\r\n' 10:31:44.343559 Received DATA (on stdin) 10:31:44.343994 > 33 bytes data, server => client 10:31:44.344106 '331 We are happy you popped in!\r\n' 10:31:44.345598 < 22 bytes data, client => server 10:31:44.345845 'PASS ftp@example.com\r\n' 10:31:44.348337 Received DATA (on stdin) 10:31:44.348570 > 30 bytes data, server => client 10:31:44.348677 '230 Welcome you silly person\r\n' 10:31:44.350418 < 5 bytes data, client => server 10:31:44.350685 'PWD\r\n' 10:31:44.353341 Received DATA (on stdin) 10:31:44.353541 > 30 bytes data, server => client 10:31:44.353638 '257 "/" is current directory\r\n' 10:31:44.354445 < 6 bytes data, client => server 10:31:44.354667 'EPSV\r\n' 10:31:44.374871 Received DATA (on stdin) 10:31:44.375178 > 38 bytes data, server => client 10:31:44.375289 '229 Entering Passive Mode (|||44197|)\n' 10:31:44.376865 < 8 bytes data, client => server 10:31:44.377109 'TYPE I\r\n' 10:31:44.391771 Received DATA (on stdin) 10:31:44.392049 > 33 bytes data, server => client 10:31:44.392156 '200 I modify TYPE as you wanted\r\n' 10:31:44.394565 < 21 bytes data, client => server 10:31:44.394830 'SIZE verifiedserver\r\n' 10:31:44.396410 Received DATA (on stdin) 10:31:44.396665 > 8 bytes data, server => client 10:31:44.396775 '213 17\r\n' 10:31:44.398236 < 21 bytes data, client => server 10:31:44.398480 'RETR verifiedserver\r\n' 10:31:44.400773 Received DATA (on stdin) 10:31:44.401134 > 29 bytes data, server => client 10:31:44.401276 '150 Binary junk (17 bytes).\r\n' 10:31:44.415807 Received DATA (on stdin) 10:31:44.416138 > 28 bytes data, server => client 10:31:44.416264 '226 File transfer complete\r\n' 10:31:44.444980 < 6 bytes data, client => server 10:31:44.445357 'QUIT\r\n' 10:31:44.449715 Received DATA (on stdin) 10:31:44.450001 > 18 bytes data, server => client 10:31:44.450179 '221 bye bye baby\r\n' 10:31:44.451188 ====> Client disconnect 10:31:44.456721 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:44.367541 Running IPv4 version 10:31:44.370419 Listening on port 44197 10:31:44.370873 Wrote pid 103098 to log/5/server/ftp_sockdata.pid 10:31:44.371068 Received PING (on stdin) 10:31:44.372152 Received PORT (on stdin) 10:31:44.377246 ====> Client connect 10:31:44.406293 Received DATA (on stdin) 10:31:44.406658 > 17 bytes data, server => client 10:31:44.406831 'WE ROOLZ: 79602\r\n' 10:31:44.407343 Received DISC (on stdin) 10:31:44.407710 ====> Client forcibly disconnected 10:31:44.409402 Received QUIT (on stdin) 10:31:44.409662 quits 10:31:44.410249 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY RETR 550 the file doesn't exist REPLY SIZE 500 Can't check for file existence Testnum 533 === End of file server.cmd === Start of file valgrind533 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind533 test 0534...[FTP RETR twice using multi: non-existing host and non-existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind534 ./libtest/libtests lib533 ftp://non-existing-host.haxx.se/path/534 ftp://127.0.0.1:42977/path/534 > log/8/stdout534 2> log/8/stderr534 534: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 534 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind534 ./libtest/libtests lib533 ftp://non-existing-host.haxx.se/path/534 ftp://127.0.0.1:42977/path/534 > log/8/stdout534 2> lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind535 ./libtest/libtests lib533 http://127.0.0.1:36757/535 http://127.0.0.1:36757/5350001 > log/4/stdout535 2> log/4/stderr535 og/8/stderr534 === End of file commands.log === Start of file ftp_server.log 10:31:44.737709 ====> Client connect 10:31:44.739540 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:44.744015 < "USER anonymous" 10:31:44.744909 > "331 We are happy you popped in![CR][LF]" 10:31:44.748616 < "PASS ftp@example.com" 10:31:44.749381 > "230 Welcome you silly person[CR][LF]" 10:31:44.753990 < "PWD" 10:31:44.754718 > "257 "/" is current directory[CR][LF]" 10:31:44.759672 < "EPSV" 10:31:44.760558 ====> Passive DATA channel requested by client 10:31:44.761341 DATA sockfilt for passive data channel starting... 10:31:44.784116 DATA sockfilt for passive data channel started (pid 103129) 10:31:44.787360 DATA sockfilt for passive data channel listens on port 44365 10:31:44.788375 > "229 Entering Passive Mode (|||44365|)[LF]" 10:31:44.788929 Client has been notified that DATA conn will be accepted on port 44365 10:31:44.793434 Client connects to port 44365 10:31:44.794101 ====> Client established passive DATA connection on port 44365 10:31:44.795341 < "TYPE I" 10:31:44.796043 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:44.803249 < "SIZE verifiedserver" 10:31:44.804421 > "213 17[CR][LF]" 10:31:44.808132 < "RETR verifiedserver" 10:31:44.808756 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:44.809816 =====> Closing passive DATA connection... 10:31:44.810310 Server disconnects passive DATA connection 10:31:44.814295 Server disconnected passive DATA connection 10:31:44.814842 DATA sockfilt for passive data channel quits (pid 103129) 10:31:44.816866 DATA sockfilt for passive data channel quit (pid 103129) 10:31:44.817291 =====> Closed passive DATA connection 10:31:44.818008 > "226 File transfer complete[CR][LF]" 10:31:44.862285 < "QUIT" 10:31:44.862815 > "221 bye bye baby[CR][LF]" 10:31:44.866215 MAIN sockfilt said DISC 10:31:44.866600 ====> Client disconnected 10:31:44.867146 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:44.406990 ====> Client connect 10:31:44.410328 Received DATA (on stdin) 10:31:44.410527 > 160 bytes data, server => client 10:31:44.410671 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:44.410778 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:44.410871 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:44.412080 < 16 bytes data, client => server 10:31:44.412347 'USER anonymous\r\n' 10:31:44.415834 Received DATA (on stdin) 10:31:44.416139 > 33 bytes data, server => client 10:31:44.416265 '331 We are happy you popped in!\r\n' 10:31:44.417192 < 22 bytes data, client => server 10:31:44.417486 'PASS ftp@example.com\r\n' 10:31:44.420383 Received DATA (on stdin) 10:31:44.420731 > 30 bytes data, server => client 10:31:44.420870 '230 Welcome you silly person\r\n' 10:31:44.422705 < 5 bytes data, client => server 10:31:44.422962 'PWD\r\n' 10:31:44.425541 Received DATA (on stdin) 10:31:44.425830 > 30 bytes data, server => client 10:31:44.426050 '257 "/" is current directory\r\n' 10:31:44.427586 < 6 bytes data, client => server 10:31:44.428021 'EPSV\r\n' 10:31:44.459893 Received DATA (on stdin) 10:31:44.460171 > 38 bytes data, server => client 10:31:44.460307 '229 Entering Passive Mode (|||44365|)\n' 10:31:44.462254 < 8 bytes data, client => server 10:31:44.462543 'TYPE I\r\n' 10:31:44.466886 Received DATA (on stdin) 10:31:44.467233 > 33 bytes data, server => client 10:31:44.467528 '200 I modify TYPE as you wanted\r\n' 10:31:44.471177 < 21 bytes data, client => server 10:31:44.471599 'SIZE verifiedserver\r\n' 10:31:44.475427 Received DATA (on stdin) 10:31:44.475788 > 8 bytes data, server => client 10:31:44.475958 '213 17\r\n' 10:31:44.477023 < 21 bytes data, client => server 10:31:44.477287 'RETR verifiedserver\r\n' 10:31:44.481008 Received DATA (on stdin) 10:31:44.481256 > 29 bytes data, server => client 10:31:44.481371 '150 Binary junk (17 bytes).\r\n' 10:31:44.488715 Received DATA (on stdin) 10:31:44.488902 > 28 bytes data, server => client 10:31:44.489003 '226 File transfer complete\r\n' 10:31:44.524664 < 6 bytes data, client => server 10:31:44.524903 'QUIT\r\n' 10:31:44.533438 Received DATA (on stdin) 10:31:44.533681 > 18 bytes data, server => client 10:31:44.533785 '221 bye bye baby\r\n' 10:31:44.535992 ====> Client disconnect 10:31:44.537726 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:44.450945 Running IPv4 version 10:31:44.452510 Listening on port 44365 10:31:44.453317 Wrote pid 103129 to log/8/server/ftp_sockdata.pid 10:31:44.453643 Received PING (on stdin) 10:31:44.456188 Received PORT (on stdin) 10:31:44.463100 ====> Client connect 10:31:44.481876 Received DATA (on stdin) 10:31:44.482119 > 17 bytes data, server => client 10:31:44.482298 'WE ROOLZ: 86552\r\n' 10:31:44.482767 Received DISC (on stdin) 10:31:44.483081 ====> Client forcibly disconnected 10:31:44.485598 Received QUIT (on stdin) 10:31:44.485768 quits 10:31:44.486204 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY RETR 550 the file doesn't exist REPLY SIZE 500 Can't check for file existence Testnum 534 === End of file server.cmd === Start of file valgrind534 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind534 test 0535...[HTTP GET multi two files with FAILONERROR] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind535 ./libtest/libtests lib533 http://127.0.0.1:36757/535 http://127.0.0.1:36757/5350001 > log/4/stdout535 2> log/4/stderr535 535: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 535 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind535 ./libtest/libtests lib533 http://127.0.0.1:36757/535 http://127.0.0.1:36757/5350001 > log/4/stdout535 2> log/4/stderr535 === End of file commands.log === Start of file http_server.log 10:31:45.726798 ====> Client connect 10:31:45.727211 accept_connection 3 returned 4 10:31:45.727411 accept_connection 3 returned 0 10:31:45.727548 Read 93 bytes 10:31:45.727711 Process 93 bytes request 10:31:45.727848 Got request: GET /verifiedserver HTTP/1.1 10:31:45.727934 Are-we-friendly question received 10:31:45.728220 Wrote request (93 bytes) input to CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind536 ./libtest/libtests lib536 http://127.0.0.1:36129 goingdirect.com:36129 goingdirect.com:36129:127.0.0.1 > log/1/stdout536 2> log/1/stderr536 log/4/server.input 10:31:45.728458 Identifying ourselves as friends 10:31:45.729546 Response sent (56 bytes) and written to log/4/server.response 10:31:45.729743 special request received, no persistency 10:31:45.729830 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40014 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 535 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind535 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind535 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind538 ./libtest/libtests lib504 ftp://127.0.0.1:33831/538 > log/3/stdout538 2> log/3/stderr538 test 0536...[CURLINFO_USED_PROXY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind536 ./libtest/libtests lib536 http://127.0.0.1:36129 goingdirect.com:36129 goingdirect.com:36129:127.0.0.1 > log/1/stdout536 2> log/1/stderr536 536: stdout FAILED: --- log/1/check-expected 2025-09-11 10:31:46.000173931 +0000 +++ log/1/check-generated 2025-09-11 10:31:46.000173931 +0000 @@ -1,4 +0,0 @@ -hello[CR][LF] -This used the proxy[CR][LF] -hello[CR][LF] -This DID NOT use the proxy[CR][LF] == Contents of files in the log/1/ dir after test 536 === Start of file check-expected hello[CR][LF] This used the proxy[CR][LF] hello[CR][LF] This DID NOT use the proxy[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind536 ./libtest/libtests lib536 http://127.0.0.1:36129 goingdirect.com:36129 goingdirect.com:36129:127.0.0.1 > log/1/stdout536 2> log/1/stderr536 === End of file commands.log === Start of file http_server.log 10:31:44.766964 ====> Client connect 10:31:44.767246 accept_connection 3 returned 4 10:31:44.767444 accept_connection 3 returned 0 10:31:44.767597 Read 93 bytes 10:31:44.767911 Process 93 bytes request 10:31:44.768025 Got request: GET /verifiedserver HTTP/1.1 10:31:44.768105 Are-we-friendly question received 10:31:44.768368 Wrote request (93 bytes) input to log/1/server.input 10:31:44.769931 Identifying ourselves as friends 10:31:44.770925 Response sent (56 bytes) and written to log/1/server.response 10:31:44.771103 special request received, no persistency 10:31:44.771185 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 45990 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 536 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind536 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind536 test 0538...[FTP multi-interface download, failed login: PASS not valid] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind538 ./libtest/libtests lib504 ftp://127.0.0.1:33831/538 > log/3/stdout538 2> log/3/stderr538 538: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 538 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind538 ./libtest/libtests lib504 ftp://127.0.0.1:33831/538 > log/3/stdout538 2> log/3/stderr538 === End of file commands.log === Start of file ftp_server.log 10:31:45.274125 ====> Client connect 10:31:45.275579 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:45.284895 < "USER anonymous" 10:31:45.285394 > "331 We are happy you popped in![CR][LF]" 10:31:45.295753 < "PASS ftp@example.com" 10:31:45.296524 > "230 Welcome you silly person[CR][LF]" 10:31:45.302541 < "PWD" 10:31:45.303180 > "257 "/" is current directory[CR][LF]" 10:31:45.306731 < "EPSV" 10:31:45.307216 ====> Passive DATA channel requested by client 10:31:45.307522 DATA sockfilt for passive data channel starting... 10:31:45.327633 DATA sockfilt for passive data channel started (pid 103366) 10:31:45.330596 DATA sockfilt for passive data channel listens on port 35801 10:31:45.331247 > "229 Entering Passive Mode (|||35801|)[LF]" 10:31:45.331612 Client has been notified that DATA conn will be accepted on port 35801 10:31:45.334324 Client connects to port 35801 10:31:45.334804 ====> Client established passive DATA connection on port 35801 10:31:45.338207 < "TYPE I" 10:31:45.338691 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:45.342978 < "SIZE verifiedserver" 10:31:45.343725 > "213 17[CR][LF]" 10:31:45.354340 < "RETR verifiedserver" 10:31:45.354974 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:45.355816 =====> Closing passive DATA connection... 10:31:45.356208 Server disconnects passive DATA connection 10:31:45.357240 Server disconnected passive DATA connection 10:31:45.357947 DATA sockfilt for passive data channel quits (pid 103366) 10:31:45.361727 DATA sockfilt for passive data channel quit (pid 103366) 10:31:45.362079 =====> Closed passive DATA connection 10:31:45.362475 > "226 File transfer complete[CR][LF]" 10:31:45.406959 < "QUIT" 10:31:45.407432 > "221 bye bye baby[CR][LF]" 10:31:45.409632 MAIN sockfilt said DISC 10:31:45.410256 ====> Client disconnected 10:31:45.410976 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:44.943172 ====> Client connect 10:31:44.945693 Received DATA (on stdin) 10:31:44.946019 > 160 bytes data, server => client 10:31:44.946191 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:44.946294 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:44.946372 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:44.950345 < 16 bytes data, client => server 10:31:44.950576 'USER anonymous\r\n' 10:31:44.955817 Received DATA (on stdin) 10:31:44.956036 > 33 bytes data, server => client 10:31:44.956179 '331 We are happy you popped in!\r\n' 10:31:44.961857 < 22 bytes data, client => server 10:31:44.962143 'PASS ftp@example.com\r\n' 10:31:44.967825 Received DATA (on stdin) 10:31:44.968142 > 30 bytes data, server => client 10:31:44.968294 '230 Welcome you silly person\r\n' 10:31:44.969164 < 5 bytes data, client => server 10:31:44.969455 'PWD\r\n' 10:31:44.973661 Received DATA (on stdin) 10:31:44.973841 > 30 bytes data, server => client 10:31:44.973968 '257 "/" is current directory\r\n' 10:31:44.975967 < 6 bytes data, client => server 10:31:44.976228 'EPSV\r\CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind540 ./libtest/libtests lib540 http://test.remote.example.com/path/540 http://127.0.0.1:40129 silly:person custom.set.host.name > log/7/stdout540 2> log/7/stderr540 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind539 ./libtest/libtests lib539 ftp://127.0.0.1:33323/path/to/the/file/539 ftp://127.0.0.1:33323/path/to/the/file/5390001 > log/6/stdout539 2> log/6/stderr539 n' 10:31:45.002308 Received DATA (on stdin) 10:31:45.002579 > 38 bytes data, server => client 10:31:45.002686 '229 Entering Passive Mode (|||35801|)\n' 10:31:45.007334 < 8 bytes data, client => server 10:31:45.007533 'TYPE I\r\n' 10:31:45.008920 Received DATA (on stdin) 10:31:45.009129 > 33 bytes data, server => client 10:31:45.009262 '200 I modify TYPE as you wanted\r\n' 10:31:45.012272 < 21 bytes data, client => server 10:31:45.012531 'SIZE verifiedserver\r\n' 10:31:45.014017 Received DATA (on stdin) 10:31:45.014277 > 8 bytes data, server => client 10:31:45.014409 '213 17\r\n' 10:31:45.019859 < 21 bytes data, client => server 10:31:45.020071 'RETR verifiedserver\r\n' 10:31:45.025150 Received DATA (on stdin) 10:31:45.025359 > 29 bytes data, server => client 10:31:45.025451 '150 Binary junk (17 bytes).\r\n' 10:31:45.032659 Received DATA (on stdin) 10:31:45.032845 > 28 bytes data, server => client 10:31:45.032966 '226 File transfer complete\r\n' 10:31:45.076455 < 6 bytes data, client => server 10:31:45.076697 'QUIT\r\n' 10:31:45.077607 Received DATA (on stdin) 10:31:45.077824 > 18 bytes data, server => client 10:31:45.077927 '221 bye bye baby\r\n' 10:31:45.078514 ====> Client disconnect 10:31:45.080771 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:45.992627 Running IPv4 version 10:31:45.993095 Listening on port 35801 10:31:45.993487 Wrote pid 103366 to log/3/server/ftp_sockdata.pid 10:31:45.997298 Received PING (on stdin) 10:31:45.999572 Received PORT (on stdin) 10:31:46.004016 ====> Client connect 10:31:46.026181 Received DATA (on stdin) 10:31:46.026333 > 17 bytes data, server => client 10:31:46.026445 'WE ROOLZ: 79555\r\n' 10:31:46.026955 Received DISC (on stdin) 10:31:46.027272 ====> Client forcibly disconnected 10:31:46.028567 Received QUIT (on stdin) 10:31:46.028706 quits 10:31:46.029097 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 314 bluah you f00l Testnum 538 === End of file server.cmd === Start of file valgrind538 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind538 test 0540...[HTTP proxy auth Digest multi API reusing connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind540 ./libtest/libtests lib540 http://test.remote.example.com/path/540 http://127.0.0.1:40129 silly:person custom.set.host.name > log/7/stdout540 2> log/7/stderr540 540: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 540 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind540 ./libtest/libtests lib540 http://test.remote.example.com/path/540 http://127.0.0.1:40129 silly:person custom.set.host.name > log/7/stdout540 2> log/7/stderr540 === End of file commands.log === Start of file http_server.log 10:31:45.028557 ====> Client connect 10:31:45.028871 accept_connection 3 returned 4 10:31:45.029056 accept_connection 3 returned 0 10:31:45.029207 Read 93 bytes 10:31:45.029307 Process 93 bytes request 10:31:45.029397 Got request: GET /verifiedserver HTTP/1.1 10:31:45.029478 Are-we-friendly question received 10:31:45.029747 Wrote request (93 bytes) input to log/7/server.input 10:31:45.029928 Identifying ourselves as friends 10:31:45.030679 Response sent (56 bytes) and written to log/7/server.response 10:31:45.030773 special request received, no persistency 10:31:45.030841 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60684 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 540 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind540 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind540 test 0539...[Two FTP fetches using different CURLOPT_FTP_FILEMETHOD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind539 ./libtest/libtests lib539 ftp://127.0.0.1:33323/path/to/the/file/539 ftp://127.0.0.1:33323/path/to/the/file/5390001 > log/6/stdout539 2> log/6/stderr539 539: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 539 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind543 ./libtest/libtests lib543 - > log/4/stdout543 2> log/4/stderr543 log-file=log/6/valgrind539 ./libtest/libtests lib539 ftp://127.0.0.1:33323/path/to/the/file/539 ftp://127.0.0.1:33323/path/to/the/file/5390001 > log/6/stdout539 2> log/6/stderr539 === End of file commands.log === Start of file ftp_server.log 10:31:45.315208 ====> Client connect 10:31:45.316766 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:45.324652 < "USER anonymous" 10:31:45.325263 > "331 We are happy you popped in![CR][LF]" 10:31:45.328327 < "PASS ftp@example.com" 10:31:45.328934 > "230 Welcome you silly person[CR][LF]" 10:31:45.333454 < "PWD" 10:31:45.334188 > "257 "/" is current directory[CR][LF]" 10:31:45.337200 < "EPSV" 10:31:45.337582 ====> Passive DATA channel requested by client 10:31:45.337827 DATA sockfilt for passive data channel starting... 10:31:45.349870 DATA sockfilt for passive data channel started (pid 103384) 10:31:45.350952 DATA sockfilt for passive data channel listens on port 45429 10:31:45.352012 > "229 Entering Passive Mode (|||45429|)[LF]" 10:31:45.352406 Client has been notified that DATA conn will be accepted on port 45429 10:31:45.354993 Client connects to port 45429 10:31:45.355330 ====> Client established passive DATA connection on port 45429 10:31:45.356299 < "TYPE I" 10:31:45.356843 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:45.359368 < "SIZE verifiedserver" 10:31:45.360347 > "213 17[CR][LF]" 10:31:45.362766 < "RETR verifiedserver" 10:31:45.363286 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:45.364183 =====> Closing passive DATA connection... 10:31:45.364479 Server disconnects passive DATA connection 10:31:45.366601 Server disconnected passive DATA connection 10:31:45.367105 DATA sockfilt for passive data channel quits (pid 103384) 10:31:45.369871 DATA sockfilt for passive data channel quit (pid 103384) 10:31:45.370332 =====> Closed passive DATA connection 10:31:45.370806 > "226 File transfer complete[CR][LF]" 10:31:45.412955 < "QUIT" 10:31:45.413381 > "221 bye bye baby[CR][LF]" 10:31:45.421708 MAIN sockfilt said DISC 10:31:45.422235 ====> Client disconnected 10:31:45.422777 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:45.984038 ====> Client connect 10:31:45.986908 Received DATA (on stdin) 10:31:45.987223 > 160 bytes data, server => client 10:31:45.987384 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:45.987534 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:45.987711 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:45.992413 < 16 bytes data, client => server 10:31:45.992610 'USER anonymous\r\n' 10:31:45.995457 Received DATA (on stdin) 10:31:45.995749 > 33 bytes data, server => client 10:31:45.995892 '331 We are happy you popped in!\r\n' 10:31:45.996752 < 22 bytes data, client => server 10:31:45.996982 'PASS ftp@example.com\r\n' 10:31:46.000978 Received DATA (on stdin) 10:31:46.001183 > 30 bytes data, server => client 10:31:46.001298 '230 Welcome you silly person\r\n' 10:31:46.002375 < 5 bytes data, client => server 10:31:46.002567 'PWD\r\n' 10:31:46.004915 Received DATA (on stdin) 10:31:46.005129 > 30 bytes data, server => client 10:31:46.005267 '257 "/" is current directory\r\n' 10:31:46.006273 < 6 bytes data, client => server 10:31:46.006488 'EPSV\r\n' 10:31:46.021635 Received DATA (on stdin) 10:31:46.021840 > 38 bytes data, server => client 10:31:46.023001 '229 Entering Passive Mode (|||45429|)\n' 10:31:46.024795 < 8 bytes data, client => server 10:31:46.024934 'TYPE I\r\n' 10:31:46.027501 Received DATA (on stdin) 10:31:46.027775 > 33 bytes data, server => client 10:31:46.027923 '200 I modify TYPE as you wanted\r\n' 10:31:46.028574 < 21 bytes data, client => server 10:31:46.028712 'SIZE verifiedserver\r\n' 10:31:46.030094 Received DATA (on stdin) 10:31:46.030252 > 8 bytes data, server => client 10:31:46.030901 '213 17\r\n' 10:31:46.031483 < 21 bytes data, client => server 10:31:46.032069 'RETR verifiedserver\r\n' 10:31:46.035269 Received DATA (on stdin) 10:31:46.035452 > 29 bytes data, server => client 10:31:46.035562 '150 Binary junk (17 bytes).\r\n' 10:31:46.040998 Received DATA (on stdin) 10:31:46.041224 > 28 bytes data, server => client 10:31:46.041334 '226 File transfer complete\r\n' 10:31:46.081835 < 6 bytes data, client => server 10:31:46.082118 'QUIT\r\n' 10:31:46.083580 Received DATA (on stdin) 10:31:46.083882 > 18 bytes data, server => client 10:31:46.083988 '221 bye bye baby\r\n' 10:31:46.090372 ====> Client disconnect 10:31:46.092450 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:45.018401 Running IPv4 version 10:31:45.018975 Listening on port 45429 10:31:45.019368 Wrote pid 103384 to log/6/server/ftp_sockdata.pid 10:31:45.019529 Received PING (on stdin) 10:31:45.020520 Received PORT (on stdin) 10:31:45.024328 ====> Client connect 10:31:45.033950 Received DATA (on stdin) 10:31:45.034171 > 17 bytes data, server => client 10:31:45.034273 'WE ROOLZ: 79480\r\n' 10:31:45.034960 Received DISC (on stdin) 10:31:45.035187 ====> Client forcibly disconnected 10:31:45.038206 Received QUIT (on stdin) 10:31:45.038439 quits 10:31:45.038944 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 539 === End of file server.cmd === Start of file valgrind539 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind539 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind542 ./libtest/libtests lib542 ftp://127.0.0.1:42977/542 > log/8/stdout542 2> log/8/stderr542 test 0543...[curl_easy_escape] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind543 ./libtest/libtests lib543 - > log/4/stdout543 2> log/4/stderr543 543: stdout FAILED: --- log/4/check-expected 2025-09-11 10:31:46.684187546 +0000 +++ log/4/check-generated 2025-09-11 10:31:46.684187546 +0000 @@ -1,3 +0,0 @@ -%9C%26K%3DI%04%A1%01%E0%D8%7C%20%B7%EFS%29%FA%1DW%E1[LF] -IN: '' OUT: ''[LF] -IN: ' 12' OUT: '%2012'[LF] == Contents of files in the log/4/ dir after test 543 === Start of file check-expected %9C%26K%3DI%04%A1%01%E0%D8%7C%20%B7%EFS%29%FA%1DW%E1[LF] IN: '' OUT: ''[LF] IN: ' 12' OUT: '%2012'[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind543 ./libtest/libtests lib543 - > log/4/stdout543 2> log/4/stderr543 === End of file commands.log === Start of file server.cmd Testnum 543 === End of file server.cmd === Start of file valgrind543 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind543 test 0542...[FTP a file with NOBODY yes and HEADER no] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind542 ./libtest/libtests lib542 ftp://127.0.0.1:42977/542 > log/8/stdout542 2> log/8/stderr542 542: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 542 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind542 ./libtest/libtests lib542 ftp://127.0.0.1:42977/542 > log/8/stdout542 2> log/8/stderr542 === End of file commands.log === Start of file ftp_server.log 10:31:45.759536 ====> Client connect 10:31:45.761007 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:45.770565 < "USER anonymous" 10:31:45.770937 > "331 We are happy you popped in![CR][LF]" 10:31:45.774498 < "PASS ftp@example.com" 10:31:45.775001 > "230 Welcome you silly person[CR][LF]" 10:31:45.777282 < "PWD" 10:31:45.778088 > "257 "/" is current directory[CR][LF]" 10:31:45.783470 < "EPSV" 10:31:45.784106 ====> Passive DATA channel requested by client 10:31:45.784483 DATA sockfilt for passive data channel starting... 10:31:45.798731 DATA sockfilt for passive data channel started (pid 103567) 10:31:45.800166 DATA sockfilt for passive data channel listens on port 42311 10:31:45.800718 > "229 Entering Passive Mode (|||42311|)[LF]" 10:31:45.801064 Client has been notified that DATA conn will be accepted on port 42311 10:31:45.803657 Client connects to port 42311 10:31:45.804187 ====> Client established passive DATA connection on port 42311 10:31:45.808195 < "TYPE I" 10:31:45.808797 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:45.813873 < "SIZE verifiedserver" 10:31:45.814385 > "213 17[CR][LF]" 10:31:45.822382 < "RETR verifiedserver" 10:31:45.822903 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:45.823642 =====> Closing passive DATA connection... 10:31:45.823907 Server disconnects passive DATA connection 10:31:45.825279 Server disconnected passive DATA connection 10:31:45.825777 DATA sockfilt for passive data channel quits (pid 103567) 10:31:45.828034 DATA sockfilt for passive data channel quit (pid 103567) 10:31:45.828379 =====> Closed passive DATA connection 10:31:45.828703 > "226 File transfer complete[CR][LF]" 10:31:45.882975 < "QUIT" 10:31:45.883656 > "221 bye bye baby[CR][LF]" 10:31:45.890442 MAIN sockfilt said DISC 10:31:45.891588 ====> Client disconnected 10:31:45.892221 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:45.429000 ====> Client connect 10:31:45.431782 Received DATA (on stdin) 10:31:45.431991 > 160 bytes data, server => client 10:31:45.432097 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:45.432200 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:45.432293 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:45.434372 < 16 bytes data, client => server 10:31:45.434669 'USER anonymous\r\n' 10:31:45.441411 Received DATA (on stdin) 10:31:45.441560 > 33 bytes data, server => client 10:31:45.441650 '331 We are happy you popped in!\r\n' 10:31:45.443847 < 22 bytes data, client => server 10:31:45.444075 'PASS ftp@example.com\r\n' 10:31:45.445167 Received DATA (on stdin) 10:31:45.445337 > 30 bytes data, server => client 10:31:45.445430 '230 Welcome you silly person\r\n' 10:31:45.446220 < 5 bytes data, client => server 10:31:45.446510 'PWD\r\n' 10:31:45.450289 Received DATA (on stdin) 10:31:45.450524 > 30 bytes data, server => client 10:31:45.450680 '257 "/" is current directory\r\n' 10:31:45.452449 < 6 bytes data, client => server 10:31:45.452764 'EPSV\r\n' 10:31:45.471954 Received DATA (on stdin) 10:31:45.472198 > 38 bytes data, server => client 10:31:45.472283 '229 Entering Passive Mode (|||42311|)\n' 10:31:45.475871 < 8 bytes data, client => server 10:31:45.476138 'TYPE I\r\n' 10:31:45.478920 Received DATA (on stdin) 10:31:45.479133 > 33 bytes data, server => client 10:31:45.479229 '200 I modify TYPE as you wanted\r\n' 10:31:45.480853 < 21 bytes data, client => server 10:31:45.481079 'SIZE verifiedserver\r\n' 10:31:45.486049 Received DATA (on stdin) 10:31:45.486359 > 8 bytes data, server => client 10:31:45.486488 '213 17\r\n' 10:31:45.489869 < 21 bytes data, client => server 10:31:45.490053 'RETR verifiedserver\r\n' 10:31:45.499276 Received DATA (on stdin) 10:31:45.499494 > 29 bytes data, server => client 10:31:45.499601 '150 Binary junk (17 bytes).\r\n' 10:31:45.500059 Received DATA (on stdin) 10:31:45.500239 > 28 bytes data, server => client 10:31:45.500328 '226 File transfer complete\r\n' 10:31:45.550710 < 6 bytes data, client => server 10:31:45.550935 'QUIT\r\n' 10:31:45.554200 Received DATA (on stdin) 10:31:45.554433 > 18 bytes data, server => client 10:31:45.554541 '221 bye bye baby\r\n' 10:31:45.560205 ====> Client disconnect 10:31:45.561072 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:45.466336 Running IPv4 version 10:31:45.466906 Listening on port 42311 10:31:45.467371 Wrote pid 103567 to log/8/server/ftp_sockdata.pid 1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind541 ./libtest/libtests lib541 ftp://127.0.0.1:43393/541 log/5/upload541 > log/5/stdout541 2> log/5/stderr541 0:31:45.468459 Received PING (on stdin) 10:31:45.469455 Received PORT (on stdin) 10:31:45.473322 ====> Client connect 10:31:45.494333 Received DATA (on stdin) 10:31:45.494496 > 17 bytes data, server => client 10:31:45.494576 'WE ROOLZ: 86552\r\n' 10:31:45.494896 Received DISC (on stdin) 10:31:45.495086 ====> Client forcibly disconnected 10:31:45.496234 Received QUIT (on stdin) 10:31:45.496350 quits 10:31:45.496826 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 542 === End of file server.cmd === Start of file valgrind542 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind542 test 0541...[FTP upload and upload same file again without rewind] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind541 ./libtest/libtests lib541 ftp://127.0.0.1:43393/541 log/5/upload541 > log/5/stdout541 2> log/5/stderr541 541: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 541 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind541 ./libtest/libtests lib541 ftp://127.0.0.1:43393/541 log/5/upload541 > log/5/stdout541 2> log/5/stderr541 === End of file commands.log === Start of file ftp_server.log 10:31:45.761294 ====> Client connect 10:31:45.762733 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:45.770445 < "USER anonymous" 10:31:45.772032 > "331 We are happy you popped in![CR][LF]" 10:31:45.778271 < "PASS ftp@example.com" 10:31:45.778768 > "230 Welcome you silly person[CR][LF]" 10:31:45.784523 < "PWD" 10:31:45.785934 > "257 "/" is current directory[CR][LF]" 10:31:45.792851 < "EPSV" 10:31:45.793363 ====> Passive DATA channel requested by client 10:31:45.793830 DATA sockfilt for passive data channel starting... 10:31:45.809148 DATA sockfilt for passive data channel started (pid 103569) 10:31:45.811237 DATA sockfilt for passive data channel listens on port 46879 10:31:45.811868 > "229 Entering Passive Mode (|||46879|)[LF]" 10:31:45.812225 Client has been notified that DATA conn will be accepted on port 46879 10:31:45.818968 Client connects to port 46879 10:31:45.819541 ====> Client established passive DATA connection on port 46879 10:31:45.820473 < "TYPE I" 10:31:45.820982 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:45.834477 < "SIZE verifiedserver" 10:31:45.835163 > "213 17[CR][LF]" 10:31:45.838815 < "RETR verifiedserver" 10:31:45.839433 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:45.840294 =====> Closing passive DATA connection... 10:31:45.840587 Server disconnects passive DATA connection 10:31:45.845779 Server disconnected passive DATA connection 10:31:45.846353 DATA sockfilt for passive data channel quits (pid 103569) 10:31:45.851557 DATA sockfilt for passive data channel quit (pid 103569) 10:31:45.852026 =====> Closed passive DATA connection 10:31:45.852442 > "226 File transfer complete[CR][LF]" 10:31:45.886422 < "QUIT" 10:31:45.887005 > "221 bye bye baby[CR][LF]" 10:31:45.890438 MAIN sockfilt said DISC 10:31:45.890919 ====> Client disconnected 10:31:45.891499 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:45.430492 ====> Client connect 10:31:45.435750 Received DATA (on stdin) 10:31:45.436124 > 160 bytes data, server => client 10:31:45.436259 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:45.436348 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:45.436417 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:45.437914 < 16 bytes data, client => server 10:31:45.438221 'USER anonymous\r\n' 10:31:45.441106 Received DATA (on stdin) 10:31:45.441274 > 33 bytes data, server => client 10:31:45.443215 '331 We are happy you popped in!\r\n' 10:31:45.446982 < 22 bytes data, client => server 10:31:45.447242 'PASS ftp@example.com\r\n' 10:31:45.449475 Received DATA (on stdin) 10:31:45.449700 > 30 bytes data, server => client 10:31:45.449815 '230 Welcome you silly person\r\n' 10:31:45.453236 < 5 bytes data, client => server 10:31:45.453427 'PWD\r\n' 10:31:45.455338 Received DATA (on stdin) 10:31:45.455698 > 30 bytes data, server => client 10:31:45.456714 '257 "/" is current directory\r\n' 10:31:45.461783 < 6 bytes data, client => server 10:31:45.462008 'EPSV\r\n' 10:31:45.482871 Received DATA (on stdin) 10:31:45.483094 > 38 bytes data, server => client 10:31:45.483201 '229 Entering Passive Mode (|||46879|)\n' 10:31:45.488331 < 8 bytes data, client => server 10:31:45.488513 'TYPE I\r\n' 10:31:45.495926 Received DATA (on stdin) 10:31:45.496141 > 33 bytes data, server => client 10:31:45.496240 '200 I modify TYPE as you wanted\r\n' 10:31:45.497986 < 21 bytes data, client => server 10:31:45.498217 'SIZE verifiedserver\r\n' 10:31:45.505366 Received DATA (on stdin) 10:31:45.505659 > 8 bytes data, server => client 10:31:45.505784 '213 17\r\n' 10:31:45.508126 < 21 bytes data, client => server 10:31:45.508409 'RETR verifiedserver\r\n' 10:31:45.509595 Received DATA (on stdin) 10:31:45.509824 > 29 bytes data, server => client 10:31:45.509913 '150 Binary junk (17 bytes).\r\n' 10:31:45.523907 Received DATA (on stdin) 10:31:45.524189 > 28 bytes data, server => client 10:31:45.524296 '226 File transfer complete\r\n' 10:31:45.555301 < 6 bytes data, client => server 10:31:45.555522 'QUIT\r\n' 10:31:45.557742 Received DATA (on stdin) 10:31:45.557971 > 18 bytes data, server => client 10:31:45.558099 '221 bye bye baby\r\n' 10:31:45.560227 ====> Client disconnect 10:31:45.562110 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:45.476823 Running IPv4 version 10:31:45.477412 Listening on port 46879 10:31:45.477865 Wrote pid 103569 to log/5/server/ftp_sockdata.pid 10:31:45.478866 Received PING (on stdin) 10:31:45.480402 Received PORT (on stdin) 10:31:45.487875 ====> Client connect 10:31:45.510058 Received DATA (on stdin) 10:31:45.510277 > 17 bytes data, server => client 10:31:45.510424 'WE ROOLZ: 79602\r\n' 10:31:45.511092 Received DISC (on stdin) 10:31:45.511295 ====> Client forcibly disconnected 10:31:45.519787 Received QUIT (on stdin) 10:31:45.520122 quits 10:31:45.520696 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 541 === End of file serveCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind537 ./libtest/libtests lib537 http://127.0.0.1:43789/537 > log/2/stdout537 2> log/2/stderr537 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind544 ./libtest/libtests lib544 http://127.0.0.1:36129/544 > log/1/stdout544 2> log/1/stderr544 r.cmd === Start of file upload541 Contents of a file to verify ftp upload works? === End of file upload541 === Start of file valgrind541 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind541 prechecked ./libtest/libtests lib537 check test 0537...[HTTP GET with a HUGE number of file descriptors open] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind537 ./libtest/libtests lib537 http://127.0.0.1:43789/537 > log/2/stdout537 2> log/2/stderr537 537: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 537 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind537 ./libtest/libtests lib537 http://127.0.0.1:43789/537 > log/2/stdout537 2> log/2/stderr537 === End of file commands.log === Start of file http_server.log 10:31:44.780360 ====> Client connect 10:31:44.780714 accept_connection 3 returned 4 10:31:44.781110 accept_connection 3 returned 0 10:31:44.781340 Read 93 bytes 10:31:44.781458 Process 93 bytes request 10:31:44.781547 Got request: GET /verifiedserver HTTP/1.1 10:31:44.781625 Are-we-friendly question received 10:31:44.781859 Wrote request (93 bytes) input to log/2/server.input 10:31:44.782078 Identifying ourselves as friends 10:31:44.782899 Response sent (56 bytes) and written to log/2/server.response 10:31:44.783084 special request received, no persistency 10:31:44.783181 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 35012 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file precheck-537 URL: check initial soft limit: 1024 initial hard limit: 524288 raising soft limit up to hard limit current soft limit: 524288 current hard limit: 524288 allocating memchunk 1048576 byte array initializing memchunk array allocating array for 524277 file descriptors initializing testfd array trying to open 524277 file descriptors 524277 file descriptors open Test ended with result 0 === End of file precheck-537 === Start of file server.cmd Testnum 537 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind537 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind537 test 0544...[HTTP POST text data using CURLOPT_COPYPOSTFIELDS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind544 ./libtest/libtests lib544 http://127.0.0.1:36129/544 > log/1/stdout544 2> log/1/stderr544 544: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 544 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind544 ./libtest/libtests lib544 http://127.0.0.1:36129/544 > log/1/stdout544 2> log/1/stderr544 === End of file commands.log === Start of file http_server.log 10:31:45.916436 ====> Client connect 10:31:45.916811 accept_connection 3 returned 4 10:31:45.917040 accept_connection 3 returned 0 10:31:45.917189 Read 93 bytes 10:31:45.917298 Process 93 bytes request 10:31:45.917405 Got request: GET /verifiedserver HTTP/1.1 10:31:45.917497 Are-we-friendly question received 10:31:45.917785 Wrote request (93 bytes) input to log/1/server.input 10:31:45.917998 Identifying ourselves as friends 10:31:45.918877 Response sent (56 bytes) and written to log/1/server.response 10:31:45.919063 special request received, no persistency 10:31:45.919150 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 45992 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 544 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind544 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind545 ./libtest/libtests lib544 http://127.0.0.1:36933/545 > log/3/stdout545 2> log/3/stderr545 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind546 ./libtest/libtests lib533 ftp://127.0.0.1:38253/path/546 ftp://127.0.0.1:38253/path/546 > log/7/stdout546 2> log/7/stderr546 tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind544 test 0545...[HTTP POST binary with embedded zero and no trailing zero] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind545 ./libtest/libtests lib544 http://127.0.0.1:36933/545 > log/3/stdout545 2> log/3/stderr545 545: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 545 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind545 ./libtest/libtests lib544 http://127.0.0.1:36933/545 > log/3/stdout545 2> log/3/stderr545 === End of file commands.log === Start of file http_server.log 10:31:46.087529 ====> Client connect 10:31:46.088007 accept_connection 3 returned 4 10:31:46.088222 accept_connection 3 returned 0 10:31:46.088367 Read 93 bytes 10:31:46.088459 Process 93 bytes request 10:31:46.088552 Got request: GET /verifiedserver HTTP/1.1 10:31:46.088625 Are-we-friendly question received 10:31:46.088856 Wrote request (93 bytes) input to log/3/server.input 10:31:46.089051 Identifying ourselves as friends 10:31:46.089913 Response sent (56 bytes) and written to log/3/server.response 10:31:46.090098 special request received, no persistency 10:31:46.090189 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 33770 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 545 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind545 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind545 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind547 ./libtest/libtests lib547 http://test.remote.example.com/path/547 http://127.0.0.1:33363 testuser:testpass > log/6/stdout547 2> log/6/stderr547 test 0546...[FTP RETR a non-existing file then a found one using the multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind546 ./libtest/libtests lib533 ftp://127.0.0.1:38253/path/546 ftp://127.0.0.1:38253/path/546 > log/7/stdout546 2> log/7/stderr546 546: stdout FAILED: --- log/7/check-expected 2025-09-11 10:31:47.404201879 +0000 +++ log/7/check-generated 2025-09-11 10:31:47.404201879 +0000 @@ -1,6 +0,0 @@ -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] == Contents of files in the log/7/ dir after test 546 === Start of file check-expected data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind546 ./libtest/libtests lib533 ftp://127.0.0.1:38253/path/546 ftp://127.0.0.1:38253/path/546 > log/7/stdout546 2> log/7/stderr546 === End of file commands.log === Start of file ftp_server.log 10:31:46.481729 ====> Client connect 10:31:46.483188 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:46.486562 < "USER anonymous" 10:31:46.487108 > "331 We are happy you popped in![CR][LF]" 10:31:46.494488 < "PASS ftp@example.com" 10:31:46.495013 > "230 Welcome you silly person[CR][LF]" 10:31:46.502307 < "PWD" 10:31:46.502810 > "257 "/" is current directory[CR][LF]" 10:31:46.508960 < "EPSV" 10:31:46.509726 ====> Passive DATA channel requested by client 10:31:46.510143 DATA sockfilt for passive data channel starting... 10:31:46.526071 DATA sockfilt for passive data channel started (pid 103887) 10:31:46.527246 DATA sockfilt for passive data channel listens on port 46047 10:31:46.527802 > "229 Entering Passive Mode (|||46047|)[LF]" 10:31:46.528088 Client has been notified that DATA conn will be accepted on port 46047 10:31:46.533616 Client connects to port 46047 10:31:46.534105 ====> Client established passive DATA connection on port 46047 10:31:46.534956 < "TYPE I" 10:31:46.535414 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:46.545203 < "SIZE verifiedserver" 10:31:46.546070 > "213 17[CR][LF]" 10:31:46.548754 < "RETR verifiedserver" 10:31:46.549437 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:46.550667 =====> Closing passive DATA connection... 10:31:46.550987 Server disconnects passive DATA connection 10:31:46.554317 Server disconnected passive DATA connection 10:31:46.554885 DATA sockfilt for passive data channel quits (pid 103887) 10:31:46.560406 DATA sockfilt for passive data channel quit (pid 103887) 10:31:46.560858 =====> Closed passive DATA connection 10:31:46.561267 > "226 File transfer complete[CR][LF]" 10:31:46.595911 < "QUIT" 10:31:46.596605 > "221 bye bye baby[CR][LF]" 10:31:46.602766 MAIN sockfilt said DISC 10:31:46.603383 ====> Client disconnected 10:31:46.604180 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:47.148156 ====> Client connect 10:31:47.153322 Received DATA (on stdin) 10:31:47.153588 > 160 bytes data, server => client 10:31:47.153709 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:47.153815 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:47.153903 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:47.155447 < 16 bytes data, client => server 10:31:47.155864 'USER anonymous\r\n' 10:31:47.157274 Received DATA (on stdin) 10:31:47.157499 > 33 bytes data, server => client 10:31:47.157620 '331 We are happy you popped in!\r\n' 10:31:47.161237 < 22 bytes data, client => server 10:31:47.161462 'PASS ftp@example.com\r\n' 10:31:47.165166 Received DATA (on stdin) 10:31:47.165372 > 30 bytes data, server => client 10:31:47.165473 '230 Welcome you silly person\r\n' 10:31:47.166197 < 5 bytes data, client => server 10:31:47.166378 'PWD\r\n' 10:31:47.172981 Received DATA (on stdin) 10:31:47.173172 > 30 bytes data, server => client 10:31:47.173309 '257 "/" is current directory\r\n' 10:31:47.178282 < 6 bytes data, client => server 10:31:47.178541 'EPSV\r\n' 10:31:47.197976 Received DATA (on stdin) 10:31:47.198191 > 38 bytes data, server => client 10:31:47.198284 '229 Entering Passive Mode (|||46047|)\n' 10:31:47.200032 < 8 bytes data, client => server 10:31:47.200294 'TYPE I\r\n' 10:31:47.208730 Received DATA (on stdin) 10:31:47.208884 > 33 bytes data, server => client 10:31:47.208970 '200 I modify TYPE as you wanted\r\n' 10:31:47.214362 < 21 bytes data, client => server 10:31:47.214683 'SIZE verifiedserver\r\n' 10:31:47.216233 Received DATA (on stdin) 10:31:47.216526 > 8 bytes data, server => client 10:31:47.216647 '213 17\r\n' 10:31:47.217570 < 21 bytes data, client => server 10:31:47.217867 'RETR verifiedserver\r\n' 10:31:47.219684 Received DATA (on stdin) 10:31:47.220025 > 29 bytes data, server => client 10:31:47.220171 '150 Binary junk (17 bytes).\r\n' 10:31:47.235847 Received DATA (on stdin) 10:31:47.236195 > 28 bytes data, server => client 10:31:47.236344 '226 File transfer complete\r\n' 10:31:47.264952 < 6 bytes data, client => server 10:31:47.265261 'QUIT\r\n' 10:31:47.266803 Received DATA (on stdin) 10:31:47.267061 > 18 bytes data, server => client 10:31:47.267188 '221 bye bye baby\r\n' 10:31:47.272198 ====> Client disconnect 10:31:47.273592 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:46.194642 Running IPv4 version 10:31:46.195201 Listening on port 46047 10:31:46.195553 Wrote pid 103887 to log/7/server/ftp_sockdata.pid 10:31:46.195846 Received PING (on stdin) 10:31:46.196755 Received PORT (on stdin) 10:31:46.200122 ====> Client connect 10:31:46.220625 Received DATA (on stdin) 10:31:46.220876 > 17 bytes data, server => client 10:31:46.220979 'WE ROOLZ: 79543\r\n' 10:31:46.222240 Received DISC (on stdin) 10:31:46.222574 ====> Client forcibly disconnected 10:31:46.226629 Received QUIT (on stdin) 10:31:46.226936 quits 10:31:46.227488 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY RETR 550 the file doesn't exist COUNT RETR 1 REPLY SIZE 500 Can't check for file existence COUNT SIZE 1 Testnum 546 === End of file server.cmd === Start of file valgrind546 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind546 test 0547...[HTTP proxy auth NTLM with POST data from read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind549 ./libtest/libtests lib549 ftp://www.example.com/moo/549 http://127.0.0.1:36007 > log/8/stdout549 2> log/8/stderr549 ck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind547 ./libtest/libtests lib547 http://test.remote.example.com/path/547 http://127.0.0.1:33363 testuser:testpass > log/6/stdout547 2> log/6/stderr547 547: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 547 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind547 ./libtest/libtests lib547 http://test.remote.example.com/path/547 http://127.0.0.1:33363 testuser:testpass > log/6/stdout547 2> log/6/stderr547 === End of file commands.log === Start of file http_server.log 10:31:46.207263 ====> Client connect 10:31:46.207533 accept_connection 3 returned 4 10:31:46.207771 accept_connection 3 returned 0 10:31:46.207923 Read 93 bytes 10:31:46.207998 Process 93 bytes request 10:31:46.208074 Got request: GET /verifiedserver HTTP/1.1 10:31:46.208141 Are-we-friendly question received 10:31:46.208362 Wrote request (93 bytes) input to log/6/server.input 10:31:46.208521 Identifying ourselves as friends 10:31:46.209146 Response sent (56 bytes) and written to log/6/server.response 10:31:46.209259 special request received, no persistency 10:31:46.209326 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47010 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 547 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind547 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind547 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind550 ./libtest/libtests lib549 ftp://www.example.com/moo/550 http://127.0.0.1:41733 ascii > log/5/stdout550 2> log/5/stderr550 test 0549...[FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind549 ./libtest/libtests lib549 ftp://www.example.com/moo/549 http://127.0.0.1:36007 > log/8/stdout549 2> log/8/stderr549 549: stdout FAILED: --- log/8/check-expected 2025-09-11 10:31:47.688207532 +0000 +++ log/8/check-generated 2025-09-11 10:31:47.684207453 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/8/ dir after test 549 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind549 ./libtest/libtests lib549 ftp://www.example.com/moo/549 http://127.0.0.1:36007 > log/8/stdout549 2> log/8/stderr549 === End of file commands.log === Start of file http_server.log 10:31:46.584856 ====> Client connect 10:31:46.585243 accept_connection 3 returned 4 10:31:46.585455 accept_connection 3 returned 0 10:31:46.585606 Read 93 bytes 10:31:46.585686 Process 93 bytes request 10:31:46.585768 Got request: GET /verifiedserver HTTP/1.1 10:31:46.585843 Are-we-friendly question received 10:31:46.586088 Wrote request (93 bytes) input to log/8/server.input 10:31:46.586296 Identifying ourselves as friends 10:31:46.587226 Response sent (56 bytes) and written to log/8/server.response 10:31:46.587429 special request received, no persistency 10:31:46.587532 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 36136 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 549 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind549 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind549 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind548 ./libtest/libtests lib547 http://test.remote.example.com/path/548 http://127.0.0.1:36757 testuser:testpass > log/4/stdout548 2> log/4/stderr548 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind551 ./libtest/libtests lib547 http://test.remote.example.com/path/551 http://127.0.0.1:43789 s1lly:pers0n > log/2/stdout551 2> log/2/stderr551 test 0550...[FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE and ASCII transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind550 ./libtest/libtests lib549 ftp://www.example.com/moo/550 http://127.0.0.1:41733 ascii > log/5/stdout550 2> log/5/stderr550 550: stdout FAILED: --- log/5/check-expected 2025-09-11 10:31:47.800209762 +0000 +++ log/5/check-generated 2025-09-11 10:31:47.800209762 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/5/ dir after test 550 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind550 ./libtest/libtests lib549 ftp://www.example.com/moo/550 http://127.0.0.1:41733 ascii > log/5/stdout550 2> log/5/stderr550 === End of file commands.log === Start of file http_server.log 10:31:47.640089 ====> Client connect 10:31:47.640415 accept_connection 3 returned 4 10:31:47.640586 accept_connection 3 returned 0 10:31:47.640723 Read 93 bytes 10:31:47.640816 Process 93 bytes request 10:31:47.640906 Got request: GET /verifiedserver HTTP/1.1 10:31:47.640980 Are-we-friendly question received 10:31:47.641206 Wrote request (93 bytes) input to log/5/server.input 10:31:47.641363 Identifying ourselves as friends 10:31:47.642008 Response sent (56 bytes) and written to log/5/server.response 10:31:47.642118 special request received, no persistency 10:31:47.642185 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 39576 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 550 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind550 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind550 test 0548...[HTTP proxy auth NTLM with POST data from CURLOPT_POSTFIELDS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind548 ./libtest/libtests lib547 http://test.remote.example.com/path/548 http://127.0.0.1:36757 testuser:testpass > log/4/stdout548 2> log/4/stderr548 548: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 548 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind548 ./libtest/libtests lib547 http://test.remote.example.com/path/548 http://127.0.0.1:36757 testuser:testpass > log/4/stdout548 2> log/4/stderr548 === End of file commands.log === Start of file http_server.log 10:31:47.569574 ====> Client connect 10:31:47.569971 accept_connection 3 returned 4 10:31:47.570201 accept_connection 3 returned 0 10:31:47.570370 Read 93 bytes 10:31:47.570472 Process 93 bytes request 10:31:47.570571 Got request: GET /verifiedserver HTTP/1.1 10:31:47.570649 Are-we-friendly question received 10:31:47.571099 Wrote request (93 bytes) input to log/4/server.input 10:31:47.571437 Identifying ourselves as friends 10:31:47.572533 Response sent (56 bytes) and written to log/4/server.response 10:31:47.572762 special request received, no persistency 10:31:47.572848 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40016 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 548 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind548 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind548 test 0551...[HTTP proxy auth Digest with POST data from read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind551 ./libtest/libtests lib547 http://test.remote.example.com/path/551 http://127.0.0.1:43789 s1lly:pers0n > log/2/stdout551 2> log/2/stderr551 551: protocol FAILED! There was no conCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind553 ./libtest/libtests lib553 http://127.0.0.1:36933/path/553 > log/3/stdout553 2> log/3/stderr553 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind552 ./libtest/libtests lib552 http://test.remote.example.com/path/552 http://s1lly:pers0n@127.0.0.1:36129/ > log/1/stdout552 2> log/1/stderr552 tent at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 551 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind551 ./libtest/libtests lib547 http://test.remote.example.com/path/551 http://127.0.0.1:43789 s1lly:pers0n > log/2/stdout551 2> log/2/stderr551 === End of file commands.log === Start of file http_server.log 10:31:46.728432 ====> Client connect 10:31:46.728873 accept_connection 3 returned 4 10:31:46.729158 accept_connection 3 returned 0 10:31:46.732570 Read 93 bytes 10:31:46.732775 Process 93 bytes request 10:31:46.732897 Got request: GET /verifiedserver HTTP/1.1 10:31:46.733006 Are-we-friendly question received 10:31:46.733324 Wrote request (93 bytes) input to log/2/server.input 10:31:46.733556 Identifying ourselves as friends 10:31:46.734149 Response sent (56 bytes) and written to log/2/server.response 10:31:46.734302 special request received, no persistency 10:31:46.734383 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 35020 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 551 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind551 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind551 test 0553...[HTTP post with huge request headers and post data from callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind553 ./libtest/libtests lib553 http://127.0.0.1:36933/path/553 > log/3/stdout553 2> log/3/stderr553 553: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 553 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind553 ./libtest/libtests lib553 http://127.0.0.1:36933/path/553 > log/3/stdout553 2> log/3/stderr553 === End of file commands.log === Start of file http_server.log 10:31:47.012092 ====> Client connect 10:31:47.012536 accept_connection 3 returned 4 10:31:47.012827 accept_connection 3 returned 0 10:31:47.013012 Read 93 bytes 10:31:47.013106 Process 93 bytes request 10:31:47.013196 Got request: GET /verifiedserver HTTP/1.1 10:31:47.013276 Are-we-friendly question received 10:31:47.013522 Wrote request (93 bytes) input to log/3/server.input 10:31:47.013744 Identifying ourselves as friends 10:31:47.014803 Response sent (56 bytes) and written to log/3/server.response 10:31:47.014962 special request received, no persistency 10:31:47.015055 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 33776 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 553 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind553 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind553 test 0552...[HTTP proxy auth Digest with 70K POST data from read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind552 ./libtest/libtests lib552 http://test.remote.example.com/path/552 http://s1lly:pers0n@127.0.0.1:36129/ > log/1/stdout552 2> log/1/stderr552 552: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 552 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind552 ./libtest/libtests lib552 http://test.remote.example.com/path/552 http://s1lly:pers0n@127.0.0.1:36129/ > log/1/stdout552 2> log/1/stderr552 === End of file commands.log === Start of file http_server.log 10:31:46.873267 ====> Client connect 10:31:46.873633 accept_connection 3 returnedCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind557 ./libtest/libtests lib557 - > log/5/stdout557 2> log/5/stderr557 4 10:31:46.873846 accept_connection 3 returned 0 10:31:46.874049 Read 93 bytes 10:31:46.874162 Process 93 bytes request 10:31:46.874260 Got request: GET /verifiedserver HTTP/1.1 10:31:46.874343 Are-we-friendly question received 10:31:46.874592 Wrote request (93 bytes) input to log/1/server.input 10:31:46.874775 Identifying ourselves as friends 10:31:46.875685 Response sent (56 bytes) and written to log/1/server.response 10:31:46.875907 special request received, no persistency 10:31:46.875989 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46006 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 552 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind552 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind552 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind554 ./libtest/libtests lib554 http://127.0.0.1:40129/554 > log/7/stdout554 2> log/7/stderr554 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind556 ./libtest/libtests lib556 http://127.0.0.1:36007 > log/8/stdout556 2> log/8/stderr556 test 0557...[curl_mprintf() testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind557 ./libtest/libtests lib557 - > log/5/stdout557 2> log/5/stderr557 557: stdout FAILED: --- log/5/check-expected 2025-09-11 10:31:48.560224891 +0000 +++ log/5/check-generated 2025-09-11 10:31:48.560224891 +0000 @@ -1,10 +0,0 @@ -All curl_mprintf() unsigned short tests OK![LF] -All curl_mprintf() signed short tests OK![LF] -All curl_mprintf() unsigned int tests OK![LF] -All curl_mprintf() signed int tests OK![LF] -All curl_mprintf() unsigned long tests OK![LF] -All curl_mprintf() signed long tests OK![LF] -All curl_mprintf() curl_off_t tests OK![LF] -All curl_mprintf() strings tests OK![LF] -All float strings tests OK![LF] -All curl_mprintf() octal & hexadecimal tests OK![LF] == Contents of files in the log/5/ dir after test 557 === Start of file check-expected All curl_mprintf() unsigned short tests OK![LF] All curl_mprintf() signed short tests OK![LF] All curl_mprintf() unsigned int tests OK![LF] All curl_mprintf() signed int tests OK![LF] All curl_mprintf() unsigned long tests OK![LF] All curl_mprintf() signed long tests OK![LF] All curl_mprintf() curl_off_t tests OK![LF] All curl_mprintf() strings tests OK![LF] All float strings tests OK![LF] All curl_mprintf() octal & hexadecimal tests OK![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind557 ./libtest/libtests lib557 - > log/5/stdout557 2> log/5/stderr557 === End of file commands.log === Start of file server.cmd Testnum 557 === End of file server.cmd === Start of file valgrind557 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind557 test 0554...[HTTP multi-part formpost using read callback for the file part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind554 ./libtest/libtests lib554 http://127.0.0.1:40129/554 > log/7/stdout554 2> log/7/stderr554 554: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 554 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind554 ./libtest/libtests lib554 http://127.0.0.1:40129/554 > log/7/stdout554 2> log/7/stderr554 === End of file commands.log === Start of file http_server.log 10:31:47.349811 ====> Client connect 10:31:47.350713 accept_connection 3 returned 4 10:31:47.350985 accept_connection 3 returned 0 10:31:47.351175 Read 93 bytes 10:31:47.351291 Process 93 bytes request 10:31:47.351385 Got request: GET /verifiedserver HTTP/1.1 10:31:47.351465 Are-we-friendly question received 10:31:47.351924 Wrote request (93 bytes) input to log/7/server.input 10:31:47.353790 Identifying ourselves as friends 10:31:47.354757 Response sent (56 bytes) and written to log/7/server.response 10:31:47.354976 special request received, no persistency 10:31:47.355072 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60688 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 554 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind554 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind554 test 0556...[send and recv HTTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind556 ./libtest/libtests lib556 http://127.0.0.1:36007 > log/8/stdout556 2> log/8/stderr556 556: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 556 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind556 ./libtest/libtests lib556 http://127.0.0.1:36007 > log/8/stdout556 2> log/8/stderr556 === End of file commands.log === Start of file http_server.log 10:31:47.551836 ====> Client connect 10:31:47.552180 accept_connection 3 returned 4 10:31:47.555030 accept_connection 3 returned 0 10:31:47.555336 Read 93 bytes 10:31:47.555549 Process 93 bytes request 10:31:47.555891 Got request: GET /verifiedserver HTTP/1.1 10:31:47.556089 Are-we-friCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind555 ./libtest/libtests lib555 http://test.remote.example.com/path/555 http://127.0.0.1:33363 testuser:testpass > log/6/stdout555 2> log/6/stderr555 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind559 ./libtest/libtests lib559 http://127.0.0.1:36757/559 > log/4/stdout559 2> log/4/stderr559 endly question received 10:31:47.556518 Wrote request (93 bytes) input to log/8/server.input 10:31:47.556865 Identifying ourselves as friends 10:31:47.558403 Response sent (56 bytes) and written to log/8/server.response 10:31:47.558635 special request received, no persistency 10:31:47.558815 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 36140 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 556 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind556 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind556 test 0555...[HTTP proxy auth NTLM with POST data from read callback multi-if] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind555 ./libtest/libtests lib555 http://test.remote.example.com/path/555 http://127.0.0.1:33363 testuser:testpass > log/6/stdout555 2> log/6/stderr555 555: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 555 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind555 ./libtest/libtests lib555 http://test.remote.example.com/path/555 http://127.0.0.1:33363 testuser:testpass > log/6/stdout555 2> log/6/stderr555 === End of file commands.log === Start of file http_server.log 10:31:47.392055 ====> Client connect 10:31:47.392585 accept_connection 3 returned 4 10:31:47.392824 accept_connection 3 returned 0 10:31:47.392959 Read 93 bytes 10:31:47.393043 Process 93 bytes request 10:31:47.393124 Got request: GET /verifiedserver HTTP/1.1 10:31:47.393199 Are-we-friendly question received 10:31:47.393447 Wrote request (93 bytes) input to log/6/server.input 10:31:47.393655 Identifying ourselves as friends 10:31:47.394523 Response sent (56 bytes) and written to log/6/server.response 10:31:47.394690 special request received, no persistency 10:31:47.394774 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47018 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 555 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind555 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind555 test 0559...[use tiny CURLOPT_BUFFERSIZE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind559 ./libtest/libtests lib559 http://127.0.0.1:36757/559 > log/4/stdout559 2> log/4/stderr559 559: data FAILED: --- log/4/check-expected 2025-09-11 10:31:48.820230066 +0000 +++ log/4/check-generated 2025-09-11 10:31:48.820230066 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[LF] -ETag: "21025-dc7-39462498"[LF] -Accept-Ranges: bytes[LF] -Content-Length: 2049[LF] -Connection: close[LF] -Content-Type: text/html[LF] -Silly-header: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[LF] -[LF] -ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[LF] == Contents of files in the log/4/ dir after test 559 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[LF] ETag: "21025-dc7-39462498"[LF] Accept-Ranges: bytes[LF] Content-Length: 2049[LF] Connection: close[LF] Content-Type: text/html[LF] Silly-header: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[LF] [LF] ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind559 ./libtest/libtests lib559 http://127.0.0.1:36757/559 > log/4/stdout559 2> log/4/stderr559 === End of file commands.log === Start of file http_server.log 10:31:48.725795 ====> Client connect 10:31:48.726115 accept_connection 3 returned 4 10:31:48.726299 accept_connection 3 returned 0 10:31:48.726433 Read 93 bytes 10:31:48.726534 Process 93 bytes request 10:31:48.726624 Got request: GET /verifiedserver HTTP/1.1 10:31:48.726704 Are-we-friendly question received 10:31:48.726994 Wrote request (93 bytes) input to log/4/server.input 10:31:48.727209 Identifying ourselves as friends 10:31:48.728097 Response sent (56 bytes) and written to log/4/server.response 10:31:48.728295 special request received, no persistency 10:31:48.728374 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40030 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 559 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind559 valgrind: Fatal error at startup: a function redirection valgrind: which isCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind561 ./libtest/libtests lib549 "ftp://www.example.com/moo/561;type=i" http://127.0.0.1:43789 ascii > log/2/stdout561 2> log/2/stderr561 mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind559 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind562 ./libtest/libtests lib562 'ftp://127.0.0.1:23456/562;type=A' 33831 > log/3/stdout562 2> log/3/stderr562 test 0561...[FTP RETR with CURLOPT_PROXY_TRANSFER_MODE, ASCII transfer and type=i] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind561 ./libtest/libtests lib549 "ftp://www.example.com/moo/561;type=i" http://127.0.0.1:43789 ascii > log/2/stdout561 2> log/2/stderr561 561: stdout FAILED: --- log/2/check-expected 2025-09-11 10:31:49.032234286 +0000 +++ log/2/check-generated 2025-09-11 10:31:49.032234286 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/2/ dir after test 561 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind561 ./libtest/libtests lib549 "ftp://www.example.com/moo/561;type=i" http://127.0.0.1:43789 ascii > log/2/stdout561 2> log/2/stderr561 === End of file commands.log === Start of file http_server.log 10:31:47.848073 ====> Client connect 10:31:47.848472 accept_connection 3 returned 4 10:31:47.848692 accept_connection 3 returned 0 10:31:47.848863 Read 93 bytes 10:31:47.848972 Process 93 bytes request 10:31:47.849066 Got request: GET /verifiedserver HTTP/1.1 10:31:47.849153 Are-we-friendly question received 10:31:47.849426 Wrote request (93 bytes) input to log/2/server.input 10:31:47.849657 Identifying ourselves as friends 10:31:47.850538 Response sent (56 bytes) and written to log/2/server.response 10:31:47.850735 special request received, no persistency 10:31:47.850820 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 35026 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 561 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind561 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind561 test 0562...[FTP a type=A URL and CURLOPT_PORT set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind562 ./libtest/libtests lib562 'ftp://127.0.0.1:23456/562;type=A' 33831 > log/3/stdout562 2> log/3/stderr562 562: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 562 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind562 ./libtest/libtests lib562 'ftp://127.0.0.1:23456/562;type=A' 33831 > log/3/stdout562 2> log/3/stderr562 === End of file commands.log === Start of file ftp_server.log 10:31:48.289117 ====> Client connect 10:31:48.290984 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:48.295676 < "USER anonymous" 10:31:48.296650 > "331 We are happy you popped in![CR][LF]" 10:31:48.299301 < "PASS ftp@example.com" 10:31:48.299876 > "230 Welcome you silly person[CR][LF]" 10:31:48.306022 < "PWD" 10:31:48.306684 > "257 "/" is current directory[CR][LF]" 10:31:48.313383 < "EPSV" 10:31:48.313909 ====> Passive DATA channel requested by client 10:31:48.314210 DATA sockfilt for passive data channel starting... 10:31:48.327907 DATA sockfilt for passive data channel started (pid 104738) 10:31:48.332572 DATA sockfilt for passive data channel listens on port 35111 10:31:48.333983 > "229 Entering Passive Mode (|||35111|)[LF]" 10:31:48.334420 Client has been notified that DATA conn will be accepted on port 35111 10:31:48.341773 Client connects to port 35111 10:31:48.342230 ====> Client established passive DATA connection on port 35111 10:31:48.343291 < "TYPE I" 10:31:48.343973 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:48.351195 < "SIZE verifiedserver" 10:31:48.351941 > "213 17[CR][LF]" 10:31:48.357725 < "RETR verifiedserver" 10:31:48.358467 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:48.359362 =====> Closing passive DATA connection... 10:31:48.359800 Server disconnects passive DATA connection 10:31:48.361630 Server disconnected passive DATA connection 10:31:48.362082 DATA sockfilt for passive data channel quits (pid 104738) 10:31:48.364401 DATA sockfilt for passive data channel quit (pid 104738) 10:31:48.364983 =====> Closed passive DATA connection 10:31:48.365764 > "226 File transfer complete[CR][LF]" 10:31:48.410109 < "QUIT" 10:31:48.410657 > "221 bye bye baby[CR][LF]" 10:31:48.414599 MAIN sockfilt said DISC 10:31:48.415229 ====> Client disconnected 10:31:48.416013 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:47.958510 ====> Client connect 10:31:47.961688 Received DATA (on stdin) 10:31:47.961904 > 160 bytes data, server => client 10:31:47.962027 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:47.962130 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:47.962228 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:47.964341 < 16 bytes data, client => server 10:31:47.964572 'USER anonymous\r\n' 10:31:47.966318 Received DATA (on stdin) 10:31:47.966504 > 33 bytes data, server => client 10:31:47.967189 '331 We are happy you popped in!\r\n' 10:31:47.968407 < 22 bytes data, client => server 10:31:47.968664 'PASS ftp@example.com\r\n' 10:31:47.970647 Received DATA (on stdin) 10:31:47.970904 > 30 bytes data, server => client 10:31:47.971041 '230 Welcome you silly person\r\n' 10:31:47.974912 < 5 bytes data, client => server 10:31:47.975126 'PWD\r\n' 10:31:47.977390 Received DATA (on stdin) 10:31:47.977598 > 30 bytes data, server => client 10:31:47.977713 '257 "/" is current directory\r\n' 10:31:47.982295 < 6 bytes data, client => server 10:31:47.982534 'EPSV\r\n' 10:31:48.003354 Received DATA (on stdin) 10:31:48.003695 > 38 bytes data, server => client 10:31:48.008372 '229 Entering PasCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind563 ./libtest/libtests lib562 "ftp://127.0.0.1:23456/563;type=A" 38733 > log/1/stdout563 2> log/1/stderr563 sive Mode (|||35111|)\n' 10:31:48.011421 < 8 bytes data, client => server 10:31:48.011650 'TYPE I\r\n' 10:31:48.014074 Received DATA (on stdin) 10:31:48.014326 > 33 bytes data, server => client 10:31:48.014438 '200 I modify TYPE as you wanted\r\n' 10:31:48.020418 < 21 bytes data, client => server 10:31:48.020653 'SIZE verifiedserver\r\n' 10:31:48.025876 Received DATA (on stdin) 10:31:48.026121 > 8 bytes data, server => client 10:31:48.026238 '213 17\r\n' 10:31:48.026967 < 21 bytes data, client => server 10:31:48.027211 'RETR verifiedserver\r\n' 10:31:48.028598 Received DATA (on stdin) 10:31:48.028816 > 29 bytes data, server => client 10:31:48.028954 '150 Binary junk (17 bytes).\r\n' 10:31:48.036471 Received DATA (on stdin) 10:31:48.036736 > 28 bytes data, server => client 10:31:48.036855 '226 File transfer complete\r\n' 10:31:48.076368 < 6 bytes data, client => server 10:31:48.076594 'QUIT\r\n' 10:31:48.081259 Received DATA (on stdin) 10:31:48.081486 > 18 bytes data, server => client 10:31:48.081591 '221 bye bye baby\r\n' 10:31:48.082160 ====> Client disconnect 10:31:48.086791 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:48.996382 Running IPv4 version 10:31:48.996988 Listening on port 35111 10:31:48.997409 Wrote pid 104738 to log/3/server/ftp_sockdata.pid 10:31:48.997615 Received PING (on stdin) 10:31:49.001628 Received PORT (on stdin) 10:31:49.011399 ====> Client connect 10:31:49.030408 Received DATA (on stdin) 10:31:49.030624 > 17 bytes data, server => client 10:31:49.030712 'WE ROOLZ: 79555\r\n' 10:31:49.031059 Received DISC (on stdin) 10:31:49.031301 ====> Client forcibly disconnected 10:31:49.032575 Received QUIT (on stdin) 10:31:49.032784 quits 10:31:49.033429 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 562 === End of file server.cmd === Start of file valgrind562 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind562 setenv ftp_proxy = http://127.0.0.1:36129/ test 0563...[FTP type=A URL and CURLOPT_PORT set and proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind563 ./libtest/libtests lib562 "ftp://127.0.0.1:23456/563;type=A" 38733 > log/1/stdout563 2> log/1/stderr563 563: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 563 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind563 ./libtest/libtests lib562 "ftp://127.0.0.1:23456/563;type=A" 38733 > log/1/stdout563 2> log/1/stderr563 === End of file commands.log === Start of file ftp_server.log 10:31:48.472050 ====> Client connect 10:31:48.474337 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:48.486832 < "USER anonymous" 10:31:48.487647 > "331 We are happy you popped in![CR][LF]" 10:31:48.494665 < "PASS ftp@example.com" 10:31:48.495420 > "230 Welcome you silly person[CR][LF]" 10:31:48.497993 < "PWD" 10:31:48.498703 > "257 "/" is current directory[CR][LF]" 10:31:48.507244 < "EPSV" 10:31:48.507711 ====> Passive DATA channel requested by client 10:31:48.507957 DATA sockfilt for passive data channel starting... 10:31:48.528372 DATA sockfilt for passive data channel started (pid 104824) 10:31:48.529861 DATA sockfilt for passive data channel listens on port 33461 10:31:48.530520 > "229 Entering Passive Mode (|||33461|)[LF]" 10:31:48.530789 Client has been notified that DATA conn will be accepted on port 33461 10:31:48.532342 Client connects to port 33461 10:31:48.532858 ====> Client established passive DATA connection on port 33461 10:31:48.534521 < "TYPE I" 10:31:48.535025 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:48.540128 < "SIZE verifiedserver" 10:31:48.540836 > "213 17[CR][LF]" 10:31:48.543753 < "RETR verifiedserver" 10:31:48.544481 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:48.545415 =====> Closing passive DATA connection... 10:31:48.546136 Server disconnects passive DATA connection 10:31:48.553563 Server disconnected passive DATA connection 10:31:48.554107 DATA sockfilt for passive data channel quits (pid 104824) 10:31:48.556990 DATA sockfilt for passive data channel quit (pid 104824) 10:31:48.557367 =====> Closed passive DATA connection 10:31:48.557967 > "226 File transfer complete[CR][LF]" 10:31:48.594576 < "QUIT" 10:31:48.595167 > "221 bye bye baby[CR][LF]" 10:31:48.597411 MAIN sockfilt said DISC 10:31:48.598718 ====> Client disconnected 10:31:48.599403 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:48.140538 ====> Client connect 10:31:48.144445 Received DATA (on stdin) 10:31:48.144786 > 160 bytes data, server => client 10:31:48.144956 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:48.145080 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:48.145195 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:48.151755 < 16 bytes data, client => server 10:31:48.151988 'USER anonymous\r\n' 10:31:48.157785 Received DATA (on stdin) 10:31:48.158065 > 33 bytes data, server => client 10:31:48.158185 '331 We are happy you popped in!\r\n' 10:31:48.159237 < 22 bytes data, client => server 10:31:48.159498 'PASS ftp@example.com\r\n' 10:31:48.165583 Received DATA (on stdin) 10:31:48.165870 > 30 bytes data, server => client 10:31:48.166007 '230 Welcome you silly person\r\n' 10:31:48.167076 < 5 bytes data, client => server 10:31:48.167304 'PWD\r\n' 10:31:48.168854 Received DATA (on stdin) 10:31:48.169119 > 30 bytes data, server => client 10:31:48.169256 '257 "/" is current directory\r\n' 10:31:48.172311 < 6 bytes data, client => server 10:31:48.172574 'EPSV\r\n' 10:31:48.200654 Received DATA (on stdin) 10:31:48.200848 > 38 bytes data, server => client 10:31:48.200955 '229 Entering Passive Mode (|||33461|)\n' 10:31:48.205541 < 8 bytes data, client => server 10:31:48.205737 'TYPE I\r\n' 10:31:48.205871 Received DATA (on stdin) 10:31:48.205956 > 33 bytes data, server => client 10:31:48.206038 '200 I modify TYPE as you wanted\r\n' 10:31:48.209246 < 21 bytes data, client => server 10:31:48.209487 'SIZE verifiedserver\r\n' 10:31:48.211456 Received DATA (on stdin) 10:31:48.211745 > 8 bytes data, server => client 10:31:48.211864 '213 17\r\n' 10:31:48.212693 < 21 bytes data, client => serverCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind566 ./libtest/libtests lib566 http://127.0.0.1:36007/566 log/8/ip566 > log/8/stdout566 2> log/8/stderr566 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind565 ./libtest/libtests lib510 http://127.0.0.1:40129/565 > log/7/stdout565 2> log/7/stderr565 10:31:48.212917 'RETR verifiedserver\r\n' 10:31:48.216697 Received DATA (on stdin) 10:31:48.216973 > 29 bytes data, server => client 10:31:48.217157 '150 Binary junk (17 bytes).\r\n' 10:31:48.228613 Received DATA (on stdin) 10:31:48.228822 > 28 bytes data, server => client 10:31:48.228943 '226 File transfer complete\r\n' 10:31:48.265773 < 6 bytes data, client => server 10:31:48.266020 'QUIT\r\n' 10:31:48.266187 Received DATA (on stdin) 10:31:48.266304 > 18 bytes data, server => client 10:31:48.266392 '221 bye bye baby\r\n' 10:31:48.267112 ====> Client disconnect 10:31:48.268255 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:48.193532 Running IPv4 version 10:31:48.194241 Listening on port 33461 10:31:48.194779 Wrote pid 104824 to log/1/server/ftp_sockdata.pid 10:31:48.198016 Received PING (on stdin) 10:31:48.199103 Received PORT (on stdin) 10:31:48.202116 ====> Client connect 10:31:48.221899 Received DATA (on stdin) 10:31:48.222154 > 17 bytes data, server => client 10:31:48.222268 'WE ROOLZ: 79585\r\n' 10:31:48.222685 Received DISC (on stdin) 10:31:48.222930 ====> Client forcibly disconnected 10:31:48.224628 Received QUIT (on stdin) 10:31:48.224836 quits 10:31:48.225327 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:31:47.979206 ====> Client connect 10:31:47.979838 accept_connection 3 returned 4 10:31:47.980071 accept_connection 3 returned 0 10:31:47.980182 Read 93 bytes 10:31:47.980249 Process 93 bytes request 10:31:47.980333 Got request: GET /verifiedserver HTTP/1.1 10:31:47.980397 Are-we-friendly question received 10:31:47.980620 Wrote request (93 bytes) input to log/1/server.input 10:31:47.980770 Identifying ourselves as friends 10:31:47.981454 Response sent (56 bytes) and written to log/1/server.response 10:31:47.981610 special request received, no persistency 10:31:47.981675 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46012 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 563 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind563 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind563 test 0566...[HTTP GET with CURLINFO_CONTENT_LENGTH_DOWNLOAD and 0 bytes transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind566 ./libtest/libtests lib566 http://127.0.0.1:36007/566 log/8/ip566 > log/8/stdout566 2> log/8/stderr566 566: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 566 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind566 ./libtest/libtests lib566 http://127.0.0.1:36007/566 log/8/ip566 > log/8/stdout566 2> log/8/stderr566 === End of file commands.log === Start of file http_server.log 10:31:48.473711 ====> Client connect 10:31:48.473967 accept_connection 3 returned 4 10:31:48.474096 accept_connection 3 returned 0 10:31:48.474213 Read 93 bytes 10:31:48.474280 Process 93 bytes request 10:31:48.474361 Got request: GET /verifiedserver HTTP/1.1 10:31:48.474429 Are-we-friendly question received 10:31:48.474608 Wrote request (93 bytes) input to log/8/server.input 10:31:48.474783 Identifying ourselves as friends 10:31:48.475465 Response sent (56 bytes) and written to log/8/server.response 10:31:48.475888 special request received, no persistency 10:31:48.476050 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 36150 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 566 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind566 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind566 test 0565...[send HTTP POST using read callback, chunked transfer-encoding and Digest] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind573 ./libtest/libtests lib573 http://127.0.0.1:40129/573 > log/7/stdout573 2> log/7/stderr573 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind567 ./libtest/libtests lib567 rtsp://127.0.0.1:38449/567 > log/6/stdout567 2> log/6/stderr567 log-file=log/7/valgrind565 ./libtest/libtests lib510 http://127.0.0.1:40129/565 > log/7/stdout565 2> log/7/stderr565 565: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 565 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind565 ./libtest/libtests lib510 http://127.0.0.1:40129/565 > log/7/stdout565 2> log/7/stderr565 === End of file commands.log === Start of file http_server.log 10:31:48.472983 ====> Client connect 10:31:48.473320 accept_connection 3 returned 4 10:31:48.473531 accept_connection 3 returned 0 10:31:48.473679 Read 93 bytes 10:31:48.473778 Process 93 bytes request 10:31:48.473868 Got request: GET /verifiedserver HTTP/1.1 10:31:48.473944 Are-we-friendly question received 10:31:48.474142 Wrote request (93 bytes) input to log/7/server.input 10:31:48.474290 Identifying ourselves as friends 10:31:48.475014 Response sent (56 bytes) and written to log/7/server.response 10:31:48.475149 special request received, no persistency 10:31:48.475225 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60698 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 565 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind565 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind565 test 0573...[verify connect time with multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind573 ./libtest/libtests lib573 http://127.0.0.1:40129/573 > log/7/stdout573 2> log/7/stderr573 573: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 573 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind573 ./libtest/libtests lib573 http://127.0.0.1:40129/573 > log/7/stdout573 2> log/7/stderr573 === End of file commands.log === Start of file http_server.log 10:31:49.318045 ====> Client connect 10:31:49.318275 accept_connection 3 returned 4 10:31:49.318408 accept_connection 3 returned 0 10:31:49.318509 Read 93 bytes 10:31:49.318575 Process 93 bytes request 10:31:49.318652 Got request: GET /verifiedserver HTTP/1.1 10:31:49.318716 Are-we-friendly question received 10:31:49.318869 Wrote request (93 bytes) input to log/7/server.input 10:31:49.318992 Identifying ourselves as friends 10:31:49.319435 Response sent (56 bytes) and written to log/7/server.response 10:31:49.319522 special request received, no persistency 10:31:49.319648 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60702 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 573 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind573 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind573 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/6/server/rtsp_server.pid" --portfile "log/6/server/rtsp_server.port" --logfile "log/6/rtsp_server.log" --logdir "log/6" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 104917 port 38449 * pid rtsp => 104917 104917 test 0567...[simple RTSP OPTIONS command] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind567 ./libtest/libtests lib567 rtsp://127.0.0.1:38449/567 > log/6/stdout567 2> log/6/stderr567 567: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 567 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind564 ./libtest/libtests lib564 ftp://127.0.0.1:43393/path/564 127.0.0.1:39829 > log/5/stdout564 2> log/5/stderr564 ons=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind567 ./libtest/libtests lib567 rtsp://127.0.0.1:38449/567 > log/6/stdout567 2> log/6/stderr567 === End of file commands.log === Start of file rtsp_server.log 10:31:48.656027 Running IPv4 version on port 38449 10:31:48.656910 Wrote pid 104917 to log/6/server/rtsp_server.pid 10:31:48.657224 Wrote port 38449 to log/6/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 567 === End of file server.cmd === Start of file valgrind567 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind567 startnew: ./server/servers socksd --port 0 --pidfile log/5/server/socks_server.pid --portfile log/5/server/socks_server.port --reqfile log/5/socksd-request.log --logfile log/5/socks_server.log --backend 127.0.0.1 --config log/5/server.cmd RUN: SOCKS server is now running PID 104967 * pid socks => 104967 104967 test 0564...[FTP RETR a file over a SOCKS proxy using the multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind564 ./libtest/libtests lib564 ftp://127.0.0.1:43393/path/564 127.0.0.1:39829 > log/5/stdout564 2> log/5/stderr564 564: stdout FAILED: --- log/5/check-expected 2025-09-11 10:31:50.552264544 +0000 +++ log/5/check-generated 2025-09-11 10:31:50.552264544 +0000 @@ -1,6 +0,0 @@ -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] == Contents of files in the log/5/ dir after test 564 === Start of file check-expected data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind564 ./libtest/libtests lib564 ftp://127.0.0.1:43393/path/564 127.0.0.1:39829 > log/5/stdout564 2> log/5/stderr564 === End of file commands.log === Start of file ftp_server.log 10:31:48.769669 ====> Client connect 10:31:48.771668 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:48.775949 < "USER anonymous" 10:31:48.777949 > "331 We are happy you popped in![CR][LF]" 10:31:48.779880 < "PASS ftp@example.com" 10:31:48.780472 > "230 Welcome you silly person[CR][LF]" 10:31:48.787656 < "PWD" 10:31:48.788566 > "257 "/" is current directory[CR][LF]" 10:31:48.791685 < "EPSV" 10:31:48.792093 ====> Passive DATA channel requested by client 10:31:48.792344 DATA sockfilt for passive data channel starting... 10:31:48.804628 DATA sockfilt for passive data channel started (pid 104939) 10:31:48.805953 DATA sockfilt for passive data channel listens on port 33911 10:31:48.806523 > "229 Entering Passive Mode (|||33911|)[LF]" 10:31:48.806842 Client has been notified that DATA conn will be accepted on port 33911 10:31:48.809671 Client connects to port 33911 10:31:48.810191 ====> Client established passive DATA connection on port 33911 10:31:48.811303 < "TYPE I" 10:31:48.812168 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:48.814359 < "SIZE verifiedserver" 10:31:48.814830 > "213 17[CR][LF]" 10:31:48.819148 < "RETR verifiedserver" 10:31:48.819824 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:48.823580 =====> Closing passive DATA connection... 10:31:48.823878 Server disconnects passive DATA connection 10:31:48.824924 Server disconnected passive DATA connection 10:31:48.825353 DATA sockfilt for passive data channel quits (pid 104939) 10:31:48.832120 DATA sockfilt for passive data channel quit (pid 104939) 10:31:48.832596 =====> Closed passive DATA connection 10:31:48.833027 > "226 File transfer complete[CR][LF]" 10:31:48.869287 < "QUIT" 10:31:48.869787 > "221 bye bye baby[CR][LF]" 10:31:48.871138 MAIN sockfilt said DISC 10:31:48.871589 ====> Client disconnected 10:31:48.872236 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:48.435757 ====> Client connect 10:31:48.441144 Received DATA (on stdin) 10:31:48.441389 > 160 bytes data, server => client 10:31:48.442325 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:48.442528 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:48.442619 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:48.444336 < 16 bytes data, client => server 10:31:48.444569 'USER anonymous\r\n' 10:31:48.446803 Received DATA (on stdin) 10:31:48.447076 > 33 bytes data, server => client 10:31:48.447341 '331 We are happy you popped in!\r\n' 10:31:48.448757 < 22 bytes data, client => server 10:31:48.448996 'PASS ftp@example.com\r\n' 10:31:48.451116 Received DATA (on stdin) 10:31:48.451356 > 30 bytes data, server => client 10:31:48.451460 '230 Welcome you silly person\r\n' 10:31:48.456105 < 5 bytes data, client => server 10:31:48.456375 'PWD\r\n' 10:31:48.459356 Received DATA (on stdin) 10:31:48.459721 > 30 bytes data, server => client 10:31:48.459873 '257 "/" is current directory\r\n' 10:31:48.460693 < 6 bytes data, client => server 10:31:48.460882 'EPSV\r\n' 10:31:48.477335 Received DATA (on stdin) 10:31:48.477529 > 38 bytes data, server => client 10:31:48.477634 '229 Entering Passive Mode (|||33911|)\n' 10:31:48.479235 < 8 bytes data, client => server 10:31:48.479451 'TYPE I\r\n' 10:31:48.481891 Received DATA (on stdin) 10:31:48.482058 > 33 bytes data, server => client 10:31:48.482576 '200 I modify TYPE as you wanted\r\n' 10:31:48.483277 < 21 bytes data, client => server 10:31:48.483477 'SIZE verifiedserver\r\n' 10:31:48.485408 Received DATA (on stdin) 10:31:48.485628 > 8 bytes data, server => client 10:31:48.485720 '213 17\r\n' 10:31:48.488184 < 21 bytes data, client => server 10:31:48.488408 'RETR verifiedserver\r\n' 10:31:48.490134 Received DATA (on stdin) 10:31:48.492057 > 29 bytes data, server => client 10:31:48.492195 '150 Binary junk (17 bytes).\r\n' 10:31:48.503624 Received DATA (on stdin) 10:31:48.503879 > 28 bytes data, server => client 10:31:48.503992 '226 File transfer complete\r\n' 10:31:48.536678 < 6 bytes data, client => server 10:31:48.536943 'QUIT\r\n' 10:31:48.539885 Received DATA (on stdin) 10:31:48.540094 > 18 bytes data, server => client 10:31:48.540203 '221 bye bye baby\r\n' 10:31:48.540828 ====> Client disconnect 10:31:48.542765 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:48.473652 Running IPv4 version 10:31:48.473984 Listening on port 33911 10:31:48.474221 Wrote pid 104939 to log/5/server/ftp_sockdata.pid 10:31:48.474336 Received PING (on stdin) 10:31:48.475262 Received PORT (on stdin) 10:31:48.478809 ====> Client connect 10:31:48.491541 Received DATA (on stdin) 10:31:48.491861 > 17 bytes data, server => client 10:31:48.492663 'WE ROOLZ: 79602\r\n' 10:31:48.494327 Received DISC (on stdin) 10:31:48.494534 ====> Client forcibly disconnected 10:31:48.497949 Received QUIT (on stdin) 10:31:48.498492 quits 10:31:48.499053 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 564 === End of file server.cmd === Start of file socks_server.log 10:31:48.581472 Running IPv4 version 10:31:48.582218 Listening on port 39829 10:31:48.582726 Wrote pid 104967 to log/5/server/socks_server.pid 10:31:48.583262 Wrote port 39829 to log/5/server/socks_server.port === End of file socks_server.log === Start of file valgrind564 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora,CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind568 ./libtest/libtests lib568 rtsp://127.0.0.1:42113/568 log/4/file568.txt > log/4/stdout568 2> log/4/stderr568 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind569 ./libtest/libtests lib569 rtsp://127.0.0.1:41361/569 log/2/idfile569.txt > log/2/stdout569 2> log/2/stderr569 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind570 ./libtest/libtests lib570 rtsp://127.0.0.1:37575/570 > log/3/stdout570 2> log/3/stderr570 RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind564 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/4/server/rtsp_server.pid" --portfile "log/4/server/rtsp_server.port" --logfile "log/4/rtsp_server.log" --logdir "log/4" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 104961 port 42113 * pid rtsp => 104961 104961 test 0568...[RTSP Announce (PUT and POST style) test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind568 ./libtest/libtests lib568 rtsp://127.0.0.1:42113/568 log/4/file568.txt > log/4/stdout568 2> log/4/stderr568 568: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 568 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind568 ./libtest/libtests lib568 rtsp://127.0.0.1:42113/568 log/4/file568.txt > log/4/stdout568 2> log/4/stderr568 === End of file commands.log === Start of file file568.txt v=0 o=mhandley 2890844526 2890845468 IN IP4 126.16.64.4 s=SDP Seminar i=A Seminar on the session description protocol u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps e=mjh@isi.edu (Mark Handley) c=IN IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly m=audio 3456 RTP/AVP 0 m=video 2232 RTP/AVP 31 === End of file file568.txt === Start of file rtsp_server.log 10:31:49.766911 Running IPv4 version on port 42113 10:31:49.768135 Wrote pid 104961 to log/4/server/rtsp_server.pid 10:31:49.768652 Wrote port 42113 to log/4/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 568 === End of file server.cmd === Start of file valgrind568 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind568 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/2/server/rtsp_server.pid" --portfile "log/2/server/rtsp_server.port" --logfile "log/2/rtsp_server.log" --logdir "log/2" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 105033 port 41361 * pid rtsp => 105033 105033 test 0569...[RTSP Session ID parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind569 ./libtest/libtests lib569 rtsp://127.0.0.1:41361/569 log/2/idfile569.txt > log/2/stdout569 2> log/2/stderr569 569: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 569 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind569 ./libtest/libtests lib569 rtsp://127.0.0.1:41361/569 log/2/idfile569.txt > log/2/stdout569 2> log/2/stderr569 === End of file commands.log === Start of file rtsp_server.log 10:31:49.972160 Running IPv4 version on port 41361 10:31:49.973021 Wrote pid 105033 to log/2/server/rtsp_server.pid 10:31:49.973359 Wrote port 41361 to log/2/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 569 === End of file server.cmd === Start of file valgrind569 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind569 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/3/server/rtsp_server.pid" --portfile "log/3/server/rtsp_server.port" --logfile "log/3/rtsp_server.log" --logdir "log/3" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 105083 port 37575 * pid rtsp => 105083 105083 test 0570...[RTSP CSeq and Session Mismatch checks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind570 ./libtest/libtests lib570 rtsp://127.0.0.1:37575/570 > log/3/stdout570 2> log/3/stderr570 570: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 570 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind570 ./libtest/libtests lib570 rtsp://127.0.0.1:37575/570 > log/3/stdout570 2> log/3/stderr570 === End of file commands.log === Start of file rtsp_server.log 10:31:49.101978 Running IPv4 version on port 37575 10:31:49.102914 Wrote pid 105083 to log/3/server/rtsp_server.pid 10:31:49.103295 Wrote port 37575 to log/3/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 5CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind571 ./libtest/libtests lib571 rtsp://127.0.0.1:46211/571 log/1/protofile571.txt > log/1/stdout571 2> log/1/stderr571 70 === End of file server.cmd === Start of file valgrind570 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind570 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind574 ./libtest/libtests lib574 ftp://127.0.0.1:38253/fully_simulated/UNIX/*.txt > log/7/stdout574 2> log/7/stderr574 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/1/server/rtsp_server.pid" --portfile "log/1/server/rtsp_server.port" --logfile "log/1/rtsp_server.log" --logdir "log/1" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 105110 port 46211 * pid rtsp => 105110 105110 test 0571...[RTSP RTP Interleaving Test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind571 ./libtest/libtests lib571 rtsp://127.0.0.1:46211/571 log/1/protofile571.txt > log/1/stdout571 2> log/1/stderr571 571: stdout FAILED: --- log/1/check-expected 2025-09-11 10:31:51.272278876 +0000 +++ log/1/check-generated 2025-09-11 10:31:51.272278876 +0000 @@ -1,20 +0,0 @@ -RTP: message size 10, channel 1[LF] -RTP: message size 500, channel 0[LF] -RTP: message size 196, channel 0[LF] -RTP: message size 124, channel 0[LF] -RTP: message size 824, channel 0[LF] -RTP: message size 12, channel 0[LF] -RTP: message size 10, channel 1[LF] -RTP: message size 50, channel 0[LF] -RTP: message size 798, channel 0[LF] -RTP: message size 42, channel 0[LF] -RTP: message size 30, channel 1[LF] -RTP: message size 2048, channel 0[LF] -RTP: message size 85, channel 0[LF] -RTP: message size 24, channel 1[LF] -RTP: message size 13, channel 0[LF] -RTP: message size 33, channel 0[LF] -RTP: message size 127, channel 0[LF] -RTP: message size 35, channel 1[LF] -RTP PAYLOAD END CORRUPTED (11), [$][LF] -RTP: message size 63, channel 0[LF] == Contents of files in the log/1/ dir after test 571 === Start of file check-expected RTP: message size 10, channel 1[LF] RTP: message size 500, channel 0[LF] RTP: message size 196, channel 0[LF] RTP: message size 124, channel 0[LF] RTP: message size 824, channel 0[LF] RTP: message size 12, channel 0[LF] RTP: message size 10, channel 1[LF] RTP: message size 50, channel 0[LF] RTP: message size 798, channel 0[LF] RTP: message size 42, channel 0[LF] RTP: message size 30, channel 1[LF] RTP: message size 2048, channel 0[LF] RTP: message size 85, channel 0[LF] RTP: message size 24, channel 1[LF] RTP: message size 13, channel 0[LF] RTP: message size 33, channel 0[LF] RTP: message size 127, channel 0[LF] RTP: message size 35, channel 1[LF] RTP PAYLOAD END CORRUPTED (11), [$][LF] RTP: message size 63, channel 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind571 ./libtest/libtests lib571 rtsp://127.0.0.1:46211/571 log/1/protofile571.txt > log/1/stdout571 2> log/1/stderr571 === End of file commands.log === Start of file rtsp_server.log 10:31:49.238757 Running IPv4 version on port 46211 10:31:49.239505 Wrote pid 105110 to log/1/server/rtsp_server.pid 10:31:49.239884 Wrote port 46211 to log/1/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd rtp: part 2 channel 1 size 10 rtp: part 2 channel 0 size 500 rtp: part 2 channel 0 size 196 rtp: part 2 channel 0 size 124 rtp: part 2 channel 0 size 824 rtp: part 2 channel 0 size 18 size_err -6 rtp: part 3 channel 1 size 10 rtp: part 3 channel 0 size 50 rtp: part 4 channel 0 size 798 rtp: part 4 channel 0 size 42 rtp: part 4 channel 1 size 30 rtp: part 4 channel 0 size 2048 rtp: part 4 channel 0 size 85 rtp: part 4 channel 1 size 24 rtp: part 4 channel 0 size 17 size_err -4 rtp: part 4 channel 0 size 33 rtp: part 4 channel 0 size 127 rtp: part 4 channel 1 size 24 size_err 11 rtp: part 4 channel 0 size 37 rtp: part 4 channel 0 size 63 Testnum 571 === End of file server.cmd === Start of file valgrind571 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind571 test 0574...[FTP wildcard download - changed fnmatch, 2x perform (Unix LIST response)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind574 ./libtest/libtests lib574 ftp://127.0.0.1:38253/fully_simulated/UNIX/*.txt > log/7/stdout574 2> log/7/stderr574 574: stdout FAILED: --- log/7/check-expected 2025-09-11 10:31:51.340280230 +0000 +++ log/7/check-generated 2025-09-11 10:31:51.340280230 +0000 @@ -1,10 +0,0 @@ -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] == Contents of files in the log/7/ dir after test 574 === Start of file check-expected This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind574 ./libtest/libtests lib574 ftp://127.0.0.1:38253/fully_simulated/UNIX/*.txt > log/7/stdout574 2> log/7/stderr574 === End of file commands.log === Start of file ftp_server.log 10:31:50.327311 ====> Client connect 10:31:50.328643 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:50.332357 < "USER anonymous" 10:31:50.333214 > "331 We are happy you popped in![CR][LF]" 10:31:50.336023 < "PASS ftp@example.com" 10:31:50.336577 > "230 Welcome you silly person[CR][LF]" 10:31:50.339526 < "PWD" 10:31:50.339998 > "257 "/" is current directory[CR][LF]" 10:31:50.342528 < "EPSV" 10:31:50.342847 ====> Passive DATA channel requested by client 10:31:50.343016 DATA sockfilt for passive data channel starting... 10:31:50.353762 DATA sockfilt for passive data channel started (pid 105329) 10:31:50.355281 DATA sockfilt for passive data channel listens on port 40859 10:31:50.355860 > "229 Entering Passive Mode (|||40859|)[LF]" 10:31:50.356147 Client has been notified that DATA conn will be accepted on port 40859 10:31:50.359648 Client connects to port 40859 10:31:50.360042 ====> Client established passive DATA connection on port 40859 10:31:50.360921 < "TYPE I" 10:31:50.361447 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:50.363636 < "SIZE verifiedserver" 10:31:50.364169 > "213 17[CR][LF]" 10:31:50.366371 < "RETR verifiedserver" 10:31:50.366963 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:50.367796 =====> Closing passive DATA connection... 10:31:50.368090 Server disconnects passive DATA connection 10:31:50.369617 Server disconnected passive DATA connection 10:31:50.369977 DATA sockfilt for passive data channel quits (pid 105329) 10:31:50.372250 DATA sockfilt for passive data channel quit (pid 105329) 10:31:50.372594 =====> Closed passive DATA connection 10:31:50.372915 > "226 File transfer complete[CR][LF]" 10:31:50.414711 < "QUIT" 10:31:50.415536 > "221 bye bye baby[CR][LF]" 10:31:50.418757 MAIN sockfilt said DISC 10:31:50.419312 ====> Client disconnected 10:31:50.420057 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:50.996620 ====> Client connect 10:31:50.999243 Received DATA (on stdin) 10:31:50.999454 > 160 bytes data, server => client 10:31:51.000161 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:51.000302 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:51.000395 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:51.001217 < 16 bytes data, client => server 10:31:51.001408 'USER anonymous\r\n' 10:31:51.002920 Received DATA (on stdin) 10:31:51.003071 > 33 bytes data, server => client 10:31:51.003783 '331 We are happy you popped in!\r\n' 10:31:51.004954 < 22 bytes data, client => server 10:31:51.005135 'PASS ftp@example.com\r\n' 10:31:51.007177 Received DATA (on stdin) 10:31:51.007390 > 30 bytes data, server => client 10:31:51.007568 '230 Welcome you silly person\r\n' 10:31:51.008385 < 5 bytes data, client => server 10:31:51.008601 'PWD\r\n' 10:31:51.010379 Received DATA (on stdin) 10:31:51.010516 > 30 bytes data, server => client 10:31:51.010588 '257 "/" is current directory\r\n' 10:31:51.011762 < 6 bytes data, client => server 10:31:51.012018 'EPSV\r\n' 10:31:51.025933 Received DATA (on stdin) 10:31:51.026177 > 38 bytes data, server => client 10:31:51.026281 '229 Entering Passive Mode (|||40859|)\n' 10:31:51.029022 < 8 bytes data, client => server 10:31:51.029201 'TYPE I\r\n' 10:31:51.031633 Received DATA (on stdin) 10:31:51.031857 > 33 bytes data, server => client 10:31:51.031953 '200 I modify TYPE as you wanted\r\n' 10:31:51.032635 < 21 bytes data, client => server 10:31:51.032864 'SIZE verifiedserver\r\n' 10:31:51.034260 Received DATA (on stdin) 10:31:51.034481 > 8 bytes data, server => client 10:31:51.034588 '213 17\r\n' 10:31:51.035355 < 21 bytes data, client => server 10:31:51.035744 'RETR verifiedserver\r\n' 10:31:51.038163 Received DATA (on stdin) 10:31:51.038328 > 29 bytes data, server => client 10:31:51.038424 '150 Binary junk (17 bytes).\r\n' 10:31:51.047184 Received DATA (on stdin) 10:31:51.047430 > 28 bytes data, server => client 10:31:51.047611 '226 File transfer complete\r\n' 10:31:51.081011 < 6 bytes data, client => server 10:31:51.081244 'QUIT\r\n' 10:31:51.085667 Received DATA (on stdin) 10:31:51.086020 > 18 bytes data, server => client 10:31:51.086221 '221 bye bye baby\r\n' 10:31:51.088205 ====> Client disconnect 10:31:51.089418 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:50.022263 Running IPv4 version 10:31:50.022832 Listening on port 40859 10:31:50.023189 Wrote pid 105329 to log/7/server/ftp_sockdata.pid 10:31:50.023404 Received PING (on stdin) 10:31:50.024357 Received PORT (on stdin) 10:31:50.029439 ====> Client connect 10:31:50.038804 Received DATA (on stdin) 10:31:50.038973 > 17 bytes data, server => client 10:31:50.039097 'WE ROOLZ: 79543\r\n' 10:31:50.039348 Received DISC (on stdin) 10:31:50.039510 ====> Client forcibly disconnected 10:31:50.040883 Received QUIT (on stdin) 10:31:50.041095 quits 10:31:50.041483 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 574 === End of file server.cmd === Start of file valgrind574 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind572 ./libtest/libtests lib572 rtsp://127.0.0.1:41117/572 log/8/file572.txt > log/8/stdout572 2> log/8/stderr572 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind575 ./libtest/libtests lib575 ftp://127.0.0.1:33323/fully_simulated/UNIX/* > log/6/stdout575 2> log/6/stderr575 to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind574 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/rtspserver.pl --pidfile "log/8/server/rtsp_server.pid" --portfile "log/8/server/rtsp_server.port" --logfile "log/8/rtsp_server.log" --logdir "log/8" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: RTSP server PID 105113 port 41117 * pid rtsp => 105113 105113 test 0572...[RTSP GET_PARAMETER (Put/Heartbeat/Post)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind572 ./libtest/libtests lib572 rtsp://127.0.0.1:41117/572 log/8/file572.txt > log/8/stdout572 2> log/8/stderr572 572: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 572 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind572 ./libtest/libtests lib572 rtsp://127.0.0.1:41117/572 log/8/file572.txt > log/8/stdout572 2> log/8/stderr572 === End of file commands.log === Start of file file572.txt scale speed === End of file file572.txt === Start of file rtsp_server.log 10:31:49.360383 Running IPv4 version on port 41117 10:31:49.361092 Wrote pid 105113 to log/8/server/rtsp_server.pid 10:31:49.361365 Wrote port 41117 to log/8/server/rtsp_server.port === End of file rtsp_server.log === Start of file server.cmd Testnum 572 === End of file server.cmd === Start of file valgrind572 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind572 test 0575...[FTP wildcard download - dup_handle and multi interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind575 ./libtest/libtests lib575 ftp://127.0.0.1:33323/fully_simulated/UNIX/* > log/6/stdout575 2> log/6/stderr575 575: stdout FAILED: --- log/6/check-expected 2025-09-11 10:31:51.456282539 +0000 +++ log/6/check-generated 2025-09-11 10:31:51.456282539 +0000 @@ -1,15 +0,0 @@ -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] == Contents of files in the log/6/ dir after test 575 === Start of file check-expected This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind575 ./libtest/libtests lib575 ftp://127.0.0.1:33323/fully_simulated/UNIX/* > log/6/stdout575 2> log/6/stderr575 === End of file commands.log === Start of file ftp_server.log 10:31:50.437825 ====> Client connect 10:31:50.439591 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:50.442353 < "USER anonymous" 10:31:50.442978 > "331 We are happy you popped in![CR][LF]" 10:31:50.454435 < "PASS ftp@example.com" 10:31:50.454945 > "230 Welcome you silly person[CR][LF]" 10:31:50.459845 < "PWD" 10:31:50.460395 > "257 "/" is current directory[CR][LF]" 10:31:50.466393 < "EPSV" 10:31:50.466854 ====> Passive DATA channel requested by client 10:31:50.467128 DATA sockfilt for passive data channel starting... 10:31:50.482655 DATA sockfilt for passive data channel started (pid 105375) 10:31:50.486444 DATA sockfilt for passive data channel listens on port 36005 10:31:50.487022 > "229 Entering Passive Mode (|||36005|)[LF]" 10:31:50.487327 Client has been notified that DATA conn will be accepted on port 36005 10:31:50.490525 Client connects to port 36005 10:31:50.490925 ====> Client established passive DATA connection on port 36005 10:31:50.491821 < "TYPE I" 10:31:50.492390 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:50.495324 < "SIZE verifiedserver" 10:31:50.495995 > "213 17[CR][LF]" 10:31:50.499414 < "RETR verifiedserver" 10:31:50.500019 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:50.500848 =====> Closing passive DATA connection... 10:31:50.501179 Server disconnects passive DATA connection 10:31:50.507312 Server disconnected passive DATA connection 10:31:50.507849 DATA sockfilt for passive data channel quits (pid 105375) 10:31:50.510296 DATA sockfilt for passive data channel quit (pid 105375) 10:31:50.510756 =====> Closed passive DATA connection 10:31:50.511268 > "226 File transfer complete[CR][LF]" 10:31:50.547949 < "QUIT" 10:31:50.548943 > "221 bye bye baby[CR][LF]" 10:31:50.553655 MAIN sockfilt said DISC 10:31:50.554156 ====> Client disconnected 10:31:50.554675 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:51.103814 ====> Client connect 10:31:51.109644 Received DATA (on stdin) 10:31:51.109953 > 160 bytes data, server => client 10:31:51.110110 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:51.110239 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:51.110345 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:51.111265 < 16 bytes data, client => server 10:31:51.111491 'USER anonymous\r\n' 10:31:51.114794 Received DATA (on stdin) 10:31:51.115055 > 33 bytes data, server => client 10:31:51.115200 '331 We are happy you popped in!\r\n' 10:31:51.120961 < 22 bytes data, client => server 10:31:51.121186 'PASS ftp@example.com\r\n' 10:31:51.125056 Received DATA (on stdin) 10:31:51.125275 > 30 bytes data, server => client 10:31:51.125390 '230 Welcome you silly person\r\n' 10:31:51.127751 < 5 bytes data, client => server 10:31:51.127986 'PWD\r\n' 10:31:51.130482 Received DATA (on stdin) 10:31:51.130687 > 30 bytes data, server => client 10:31:51.130804 '257 "/" is current directory\r\n' 10:31:51.132090 < 6 bytes data, client => server 10:31:51.132319 'EPSV\r\n' 10:31:51.157873 Received DATA (on stdin) 10:31:51.158094 > 38 bytes data, server => client 10:31:51.158264 '229 Entering Passive Mode (|||36005|)\n' 10:31:51.160128 < 8 bytes data, client => server 10:31:51.160350 'TYPE I\r\n' 10:31:51.162919 Received DATA (on stdin) 10:31:51.163128 > 33 bytes data, server => client 10:31:51.163243 '200 I modify TYPE as you wanted\r\n' 10:31:51.164231 < 21 bytes data, client => server 10:31:51.164488 'SIZE verifiedserver\r\n' 10:31:51.166676 Received DATA (on stdin) 10:31:51.166951 > 8 bytes data, server => client 10:31:51.167103 '213 17\r\n' 10:31:51.168245 < 21 bytes data, client => server 10:31:51.168522 'RETR verifiedserver\r\n' 10:31:51.171625 Received DATA (on stdin) 10:31:51.171841 > 29 bytes data, server => client 10:31:51.171954 '150 Binary junk (17 bytes).\r\n' 10:31:51.181826 Received DATA (on stdin) 10:31:51.182030 > 28 bytes data, server => client 10:31:51.182141 '226 File transfer complete\r\n' 10:31:51.216799 < 6 bytes data, client => server 10:31:51.217067 'QUIT\r\n' 10:31:51.218512 Received DATA (on stdin) 10:31:51.218725 > 18 bytes data, server => client 10:31:51.219403 '221 bye bye baby\r\n' 10:31:51.220338 ====> Client disconnect 10:31:51.226159 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:50.149768 Running IPv4 version 10:31:50.150335 Listening on port 36005 10:31:50.150778 Wrote pid 105375 to log/6/server/ftp_sockdata.pid 10:31:50.150959 Received PING (on stdin) 10:31:50.155483 Received PORT (on stdin) 10:31:50.159739 ====> Client connect 10:31:50.175684 Received DATA (on stdin) 10:31:50.175956 > 17 bytes data, server => client 10:31:50.176087 'WE ROOLZ: 79480\r\n' 10:31:50.176516 Received DISC (on stdin) 10:31:50.176760 ====> Client forcibly disconnected 10:31:50.178395 Received QUIT (on stdin) 10:31:50.178608 quits 10:31:50.179131 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 575 === End of file server.cmd === Start of file valgrind575 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind577 ./libtest/libtests lib567 rtsp://127.0.0.1:42113/577 > log/4/stdout577 2> log/4/stderr577 cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind578 ./libtest/libtests lib578 http://127.0.0.1:43789/578 log/2/ip578 > log/2/stdout578 2> log/2/stderr578 1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind575 test 0577...[Funny RTSP version in response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind577 ./libtest/libtests lib567 rtsp://127.0.0.1:42113/577 > log/4/stdout577 2> log/4/stderr577 577: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 577 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind577 ./libtest/libtests lib567 rtsp://127.0.0.1:42113/577 > log/4/stdout577 2> log/4/stderr577 === End of file commands.log === Start of file rtsp_server.log 10:31:51.498913 ====> Client connect 10:31:51.499314 Read 93 bytes 10:31:51.499477 rtspd_ProcessRequest() called with testno -7 and line [GET /verifiedserver HTTP/1.1 Host: 127.0.0.1:42113 User-Agent: curl/8.16.0 Accept: */* ] 10:31:51.499721 Got request: GET /verifiedserver HTTP/1.1 10:31:51.499818 Are-we-friendly question received 10:31:51.500090 Wrote request (93 bytes) input to log/4/server.input 10:31:51.500357 Send response number -2 part 0 10:31:51.500453 Identifying ourselves as friends 10:31:51.500957 Sent off 69 bytes 10:31:51.501234 Response sent (69 bytes) and written to log/4/server.response 10:31:51.501328 special request received, no persistency 10:31:51.501389 ====> Client disconnect === End of file rtsp_server.log === Start of file rtsp_verify.log * Trying 127.0.0.1:42113... * Established connection to 127.0.0.1 (127.0.0.1 port 42113) from 127.0.0.1 port 43934 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42113 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 30 < { [30 bytes data] * Connection #0 to host 127.0.0.1:42113 left intact === End of file rtsp_verify.log === Start of file rtsp_verify.out RTSP_SERVER WE ROOLZ: 104961 === End of file rtsp_verify.out === Start of file server.cmd Testnum 577 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 30 RTSP_SERVER WE ROOLZ: 104961 === End of file server.response === Start of file valgrind577 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind577 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind576 ./libtest/libtests lib576 ftp://127.0.0.1:43393/fully_simulated/UNIX/* > log/5/stdout576 2> log/5/stderr576 test 0578...[HTTP POST lower than MAX_INITIAL_POST_SIZE with progress callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind578 ./libtest/libtests lib578 http://127.0.0.1:43789/578 log/2/ip578 > log/2/stdout578 2> log/2/stderr578 578: data FAILED: --- log/2/check-expected 2025-09-11 10:31:51.896291298 +0000 +++ log/2/check-generated 2025-09-11 10:31:51.896291298 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -ETag: "21025-dc7-39462498"[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] --foo-[LF] == Contents of files in the log/2/ dir after test 578 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] ETag: "21025-dc7-39462498"[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind578 ./libtest/libtests lib578 http://127.0.0.1:43789/578 log/2/ip578 > log/2/stdout578 2> log/2/stderr578 === End of file commands.log === Start of file http_server.log 10:31:50.768789 ====> Client connect 10:31:50.769117 accept_connection 3 returned 4 10:31:50.769326 accept_connection 3 returned 0 10:31:50.770169 Read 93 bytes 10:31:50.770362 Process 93 bytes request 10:31:50.770473 Got request: GET /verifiedserver HTTP/1.1 10:31:50.770551 Are-we-friendly question received 10:31:50.770837 Wrote request (93 bytes) input to log/2/server.input 10:31:50.771063 Identifying ourselves as friends 10:31:50.771725 Response sent (56 bytes) and written to log/2/server.response 10:31:50.771908 special request received, no persistency 10:31:50.771990 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 32934 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 578 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind578 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind578 test 0576...[FTP wildcard - skip/parser_correctness/CURLOPT_FNMATCH_FUNCTION (Unix)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind576 ./libtest/libtests lib576 ftp://127.0.0.1:43393/fully_simulated/UNIX/* > log/5/stdout576 2> log/5/stderr576 576: stdout FAILED: --- log/5/check-expected 2025-09-11 10:31:52.012293607 +0000 +++ log/5/check-generated 2025-09-11 10:31:52.012293607 +0000 @@ -1,152 +0,0 @@ -=============================================================[LF] -Remains: 14[LF] -Filename: .[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 20480B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 27 5:12[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 13[LF] -Filename: ..[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 20480B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 23 3:12[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 12[LF] -Filename: chmod1[LF] -Permissions: r--r--r-- (parsed => 444)[LF] -Size: 38B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Jan 11 10:00[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 444[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 11[LF] -Filename: chmod2[LF] -Permissions: rw-rw-rw- (parsed => 666)[LF] -Size: 38B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Feb 1 8:00[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 666[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 10[LF] -Filename: chmod3[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 38B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Feb 1 8:00[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 777[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 9[LF] -Filename: chmod4[LF] -Permissions: --S--S--t (parsed => 7001)[LF] -Size: 4096B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: May 4 4:31[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 8[LF] -Filename: chmod5[LF] -Permissions: --s--s--T (parsed => 7110)[LF] -Size: 4096B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: May 4 4:31[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 7[LF] -Filename: empty_file.dat[LF] -Permissions: rw-r--r-- (parsed => 644)[LF] -Size: 0B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 27 11:01[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 6[LF] -Filename: file.txt[LF] -Permissions: rw-r--r-- (parsed => 644)[LF] -Size: 35B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 27 11:01[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This is content of file "file.txt"[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 5[LF] -Filename: link[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 0B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Jan 6 4:42[LF] -Filetype: symlink[LF] -Target: file.txt[LF] -=============================================================[LF] -Remains: 4[LF] -Filename: link_absolute[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 0B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Jan 6 4:45[LF] -Filetype: symlink[LF] -Target: /data/ftp/file.txt[LF] -=============================================================[LF] -Remains: 3[LF] -Filename: .NeXT[LF] -Permissions: rwxrwxrwx (parsed => 777)[LF] -Size: 4096B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Jan 23 2:05[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 2[LF] -Filename: someothertext.txt[LF] -Permissions: rw-r--r-- (parsed => 644)[LF] -Size: 47B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 27 11:01[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -# THIS CONTENT WAS SKIPPED IN CHUNK_BGN CALLBACK #[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 1[LF] -Filename: weirddir.txt[LF] -Permissions: rwxr-xrwx (parsed => 757)[LF] -Size: 4096B[LF] -User: ftp-default[LF] -Group: ftp-default[LF] -Time: Apr 23 3:12[LF] -Filetype: directory[LF] -=============================================================[LF] == Contents of files in the log/5/ dir after test 576 === Start of file check-expected =============================================================[LF] Remains: 14[LF] Filename: .[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 20480B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 27 5:12[LF] Filetype: directory[LF] =============================================================[LF] Remains: 13[LF] Filename: ..[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 20480B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 23 3:12[LF] Filetype: directory[LF] =============================================================[LF] Remains: 12[LF] Filename: chmod1[LF] Permissions: r--r--r-- (parsed => 444)[LF] Size: 38B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Jan 11 10:00[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 444[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 11[LF] Filename: chmod2[LF] Permissions: rw-rw-rw- (parsed => 666)[LF] Size: 38B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Feb 1 8:00[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 666[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 10[LF] Filename: chmod3[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 38B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Feb 1 8:00[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 777[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 9[LF] Filename: chmod4[LF] Permissions: --S--S--t (parsed => 7001)[LF] Size: 4096B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: May 4 4:31[LF] Filetype: directory[LF] =============================================================[LF] Remains: 8[LF] Filename: chmod5[LF] Permissions: --s--s--T (parsed => 7110)[LF] Size: 4096B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: May 4 4:31[LF] Filetype: directory[LF] =============================================================[LF] Remains: 7[LF] Filename: empty_file.dat[LF] Permissions: rw-r--r-- (parsed => 644)[LF] Size: 0B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 27 11:01[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 6[LF] Filename: file.txt[LF] Permissions: rw-r--r-- (parsed => 644)[LF] Size: 35B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 27 11:01[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This is content of file "file.txt"[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 5[LF] Filename: link[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 0B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Jan 6 4:42[LF] Filetype: symlink[LF] Target: file.txt[LF] =============================================================[LF] Remains: 4[LF] Filename: link_absolute[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 0B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Jan 6 4:45[LF] Filetype: symlink[LF] Target: /data/ftp/file.txt[LF] =============================================================[LF] Remains: 3[LF] Filename: .NeXT[LF] Permissions: rwxrwxrwx (parsed => 777)[LF] Size: 4096B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Jan 23 2:05[LF] Filetype: directory[LF] =============================================================[LF] Remains: 2[LF] Filename: someothertext.txt[LF] Permissions: rw-r--r-- (parsed => 644)[LF] Size: 47B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 27 11:01[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] # THIS CONTENT WAS SKIPPED IN CHUNK_BGN CALLBACK #[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 1[LF] Filename: weirddir.txt[LF] Permissions: rwxr-xrwx (parsed => 757)[LF] Size: 4096B[LF] User: ftp-default[LF] Group: ftp-default[LF] Time: Apr 23 3:12[LF] Filetype: directory[LF] =============================================================[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind576 ./libtest/libtests lib576 ftp://127.0.0.1:43393/fully_simulated/UNIX/* > log/5/stdout576 2> log/5/stderr576 === End of file commands.log === Start of file ftp_server.log 10:31:50.742642 ====> Client connect 10:31:50.744199 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:50.752168 < "USER anonymous" 10:31:50.752708 > "331 We are happy you popped in![CR][LF]" 10:31:50.759813 < "PASS ftp@example.com" 10:31:50.761268 > "230 Welcome you silly person[CR][LF]" 10:31:50.765329 < "PWD" 10:31:50.766632 > "257 "/" is current directory[CR][LF]" 10:31:50.769938 < "EPSV" 10:31:50.770519 ====> Passive DATA channel requested by client 10:31:50.770951 DATA sockfilt for passive data channel starting... 10:31:50.784537 DATA sockfilt for passive data channel started (pid 105502) 10:31:50.787990 DATA sockfilt for passive data channel listens on port 46161 10:31:50.788721 > "229 Entering Passive Mode (|||46161|)[LF]" 10:31:50.789170 Client has been notified that DATA conn will be accepted on port 46161 10:31:50.798123 Client connects to port 46161 10:31:50.798657 ====> Client established passive DATA connection on port 46161 10:31:50.799749 < "TYPE I" 10:31:50.800344 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:50.802473 < "SIZE verifiedserver" 10:31:50.803033 > "213 17[CR][LF]" 10:31:50.804791 < "RETR verifiedserver" 10:31:50.805378 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:50.806465 =====> Closing passive DATA connection... 10:31:50.806835 Server disconnects passive DATA connection 10:31:50.809418 Server disconnected passive DATA connection 10:31:50.810178 DATA sockfilt for passive data channel quits (pid 105502) 10:31:50.812357 DATA sockfilt for passive data channel quit (pid 105502) 10:31:50.812818 =====> Closed passive DATA connection 10:31:50.813357 > "226 File transfer complete[CR][LF]" 10:31:50.852768 < "QUIT" 10:31:50.853596 > "221 bye bye baby[CR][LF]" 10:31:50.862244 MAIN sockfilt said DISC 10:31:50.863673 ====> Client disconnected 10:31:50.864606 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:50.410835 ====> Client connect 10:31:50.414789 Received DATA (on stdin) 10:31:50.415016 > 160 bytes data, server => client 10:31:50.415116 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:50.415200 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:50.415272 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:50.419588 < 16 bytes data, client => server 10:31:50.419855 'USER anonymous\r\n' 10:31:50.423440 Received DATA (on stdin) 10:31:50.423792 > 33 bytes data, server => client 10:31:50.423991 '331 We are happy you popped in!\r\n' 10:31:50.426468 < 22 bytes data, client => server 10:31:50.426710 'PASS ftp@example.com\r\n' 10:31:50.430530 Received DATA (on stdin) 10:31:50.430856 > 30 bytes data, server => client 10:31:50.432152 '230 Welcome you silly person\r\n' 10:31:50.434082 < 5 bytes data, client => server 10:31:50.434336 'PWD\r\n' 10:31:50.436119 Received DATA (on stdin) 10:31:50.436378 > 30 bytes data, server => client 10:31:50.437230 '257 "/" is current directory\r\n' 10:31:50.438512 < 6 bytes data, client => server 10:31:50.438819 'EPSV\r\n' 10:31:50.463661 Received DATA (on stdin) 10:31:50.463977 > 38 bytes data, server => client 10:31:50.464205 '229 Entering Passive Mode (|||46161|)\n' 10:31:50.465955 < 8 bytes data, client => server 10:31:50.466177 'TYPE I\r\n' 10:31:50.470454 Received DATA (on stdin) 10:31:50.470698 > 33 bytes data, server => client 10:31:50.470819 '200 I modify TYPE as you wanted\r\n' 10:31:50.471796 < 21 bytes data, client => server 10:31:50.472053 'SIZE verifiedserver\r\n' 10:31:50.473113 Received DATA (on stdin) 10:31:50.473304 > 8 bytes data, server => client 10:31:50.473389 '213 17\r\n' 10:31:50.474107 < 21 bytes data, client => server 10:31:50.474393 'RETR verifiedserver\r\n' 10:31:50.475457 Received DATA (on stdin) 10:31:50.475752 > 29 bytes data, server => client 10:31:50.475862 '150 Binary junk (17 bytes).\r\n' 10:31:50.484297 Received DATA (on stdin) 10:31:50.484537 > 28 bytes data, server => client 10:31:50.484632 '226 File transfer complete\r\n'CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind579 ./libtest/libtests lib579 http://127.0.0.1:36933/579 log/3/ip579 > log/3/stdout579 2> log/3/stderr579 10:31:50.521347 < 6 bytes data, client => server 10:31:50.521605 'QUIT\r\n' 10:31:50.524287 Received DATA (on stdin) 10:31:50.524599 > 18 bytes data, server => client 10:31:50.524734 '221 bye bye baby\r\n' 10:31:50.531735 ====> Client disconnect 10:31:50.532940 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:50.452078 Running IPv4 version 10:31:50.452787 Listening on port 46161 10:31:50.453321 Wrote pid 105502 to log/5/server/ftp_sockdata.pid 10:31:50.454090 Received PING (on stdin) 10:31:50.456340 Received PORT (on stdin) 10:31:50.467719 ====> Client connect 10:31:50.476065 Received DATA (on stdin) 10:31:50.476293 > 17 bytes data, server => client 10:31:50.476444 'WE ROOLZ: 79602\r\n' 10:31:50.477296 Received DISC (on stdin) 10:31:50.477522 ====> Client forcibly disconnected 10:31:50.480677 Received QUIT (on stdin) 10:31:50.480879 quits 10:31:50.481315 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 576 === End of file server.cmd === Start of file valgrind576 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind576 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind580 ./libtest/libtests lib507 http://127.0.0.1:36129/580 > log/1/stdout580 2> log/1/stderr580 test 0579...[small chunked HTTP POSTs with digest auth. and progress callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind579 ./libtest/libtests lib579 http://127.0.0.1:36933/579 log/3/ip579 > log/3/stdout579 2> log/3/stderr579 579: data FAILED: --- log/3/check-expected 2025-09-11 10:31:52.080294961 +0000 +++ log/3/check-generated 2025-09-11 10:31:52.080294961 +0000 @@ -1,17 +0,0 @@ -HTTP/1.1 100 Continue[CR][LF] -Server: Microsoft-IIS/5.0[CR][LF] -Date: Sun, 03 Apr 2005 14:57:45 GMT[CR][LF] -X-Powered-By: ASP.NET[CR][LF] -[CR][LF] -HTTP/1.1 401 authentication please swsbounce[CR][LF] -Server: Microsoft-IIS/6.0[CR][LF] -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 0[CR][LF] -[CR][LF] -HTTP/1.1 200 A OK[CR][LF] -Server: Microsoft-IIS/6.0[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 3[CR][LF] -[CR][LF] -ok[LF] == Contents of files in the log/3/ dir after test 579 === Start of file check-expected HTTP/1.1 100 Continue[CR][LF] Server: Microsoft-IIS/5.0[CR][LF] Date: Sun, 03 Apr 2005 14:57:45 GMT[CR][LF] X-Powered-By: ASP.NET[CR][LF] [CR][LF] HTTP/1.1 401 authentication please swsbounce[CR][LF] Server: Microsoft-IIS/6.0[CR][LF] WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 0[CR][LF] [CR][LF] HTTP/1.1 200 A OK[CR][LF] Server: Microsoft-IIS/6.0[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 3[CR][LF] [CR][LF] ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind579 ./libtest/libtests lib579 http://127.0.0.1:36933/579 log/3/ip579 > log/3/stdout579 2> log/3/stderr579 === End of file commands.log === Start of file http_server.log 10:31:50.875828 ====> Client connect 10:31:50.876215 accept_connection 3 returned 4 10:31:50.876450 accept_connection 3 returned 0 10:31:50.887754 Read 93 bytes 10:31:50.888029 Process 93 bytes request 10:31:50.888143 Got request: GET /verifiedserver HTTP/1.1 10:31:50.888226 Are-we-friendly question received 10:31:50.888489 Wrote request (93 bytes) input to log/3/server.input 10:31:50.888690 Identifying ourselves as friends 10:31:50.889477 Response sent (56 bytes) and written to log/3/server.response 10:31:50.889649 special request received, no persistency 10:31:50.889786 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 39482 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 579 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind579 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind579 test 0580...[multi interface, multiple Location: headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind580 ./libtest/libtests lib507 http://127.0.0.1:36129/580 > log/1/stdout580 2> log/1/stderr580 580: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 580 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind580 ./libtest/libtests lib507 http://127.0.0.1:36129/580 > log/1/stdout580 2> log/1/stderr580 === End of file commands.log === Start of file http_server.log 10:31:51.160002 ====> Client connect 10:31:51.160354 accept_connection 3 returned 4 10:31:51.160534 accept_connection 3 returned 0 10:31:51.160660 Read 93 bytes 10:31:51.160738 Process 93 bytes request 10:31:51.160827 Got request: GET /verifiedserver HTTP/1.1 10:31:51.160896 Are-we-friendly question received 10:31:51.161119 Wrote request (93 bytes) input to log/1/server.input 10:31:51.161303 Identifying ourselves as friends 10:31:51.162075 Response sent (56 bytes) and written to log/1/server.response 10:31:51.162219 special request received, no persistency 10:31:51.162295 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 47576 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 580 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind580 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platfoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind581 ./libtest/libtests lib507 http://127.0.0.1:40129/581 > log/7/stdout581 2> log/7/stderr581 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind584 ./libtest/libtests lib589 http://127.0.0.1:36757/584 > log/4/stdout584 2> log/4/stderr584 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind585 ./libtest/libtests lib500 http://127.0.0.1:43789/585 > log/2/stdout585 2> log/2/stderr585 rm. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind580 test 0581...[multi interface, multiple Content-Type: headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind581 ./libtest/libtests lib507 http://127.0.0.1:40129/581 > log/7/stdout581 2> log/7/stderr581 581: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 581 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind581 ./libtest/libtests lib507 http://127.0.0.1:40129/581 > log/7/stdout581 2> log/7/stderr581 === End of file commands.log === Start of file http_server.log 10:31:51.255031 ====> Client connect 10:31:51.255386 accept_connection 3 returned 4 10:31:51.255655 accept_connection 3 returned 0 10:31:51.256549 Read 93 bytes 10:31:51.256818 Process 93 bytes request 10:31:51.257009 Got request: GET /verifiedserver HTTP/1.1 10:31:51.257144 Are-we-friendly question received 10:31:51.257483 Wrote request (93 bytes) input to log/7/server.input 10:31:51.257775 Identifying ourselves as friends 10:31:51.258791 Response sent (56 bytes) and written to log/7/server.response 10:31:51.258978 special request received, no persistency 10:31:51.259058 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 47788 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 581 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind581 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind581 test 0584...[CURLOPT_MIMEPOST first set then set to NULL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind584 ./libtest/libtests lib589 http://127.0.0.1:36757/584 > log/4/stdout584 2> log/4/stderr584 584: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 584 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind584 ./libtest/libtests lib589 http://127.0.0.1:36757/584 > log/4/stdout584 2> log/4/stderr584 === End of file commands.log === Start of file http_server.log 10:31:52.471058 ====> Client connect 10:31:52.471641 accept_connection 3 returned 4 10:31:52.471950 accept_connection 3 returned 0 10:31:52.472192 Read 93 bytes 10:31:52.472351 Process 93 bytes request 10:31:52.472501 Got request: GET /verifiedserver HTTP/1.1 10:31:52.474233 Are-we-friendly question received 10:31:52.474554 Wrote request (93 bytes) input to log/4/server.input 10:31:52.474885 Identifying ourselves as friends 10:31:52.476092 Response sent (56 bytes) and written to log/4/server.response 10:31:52.476309 special request received, no persistency 10:31:52.476427 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 43000 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 584 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind584 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind584 test 0585...[socket open/close callbacks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind585 ./libtest/libtests lib500 http://127.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind587 ./libtest/libtests lib554 http://127.0.0.1:36933/587 > log/3/stdout587 2> log/3/stderr587 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind586 ./libtest/libtests lib500 ftp://127.0.0.1:43393/586 > log/5/stdout586 2> log/5/stderr586 0.0.1:43789/585 > log/2/stdout585 2> log/2/stderr585 585: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 585 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind585 ./libtest/libtests lib500 http://127.0.0.1:43789/585 > log/2/stdout585 2> log/2/stderr585 === End of file commands.log === Start of file http_server.log 10:31:51.751757 ====> Client connect 10:31:51.752116 accept_connection 3 returned 4 10:31:51.752419 accept_connection 3 returned 0 10:31:51.752634 Read 93 bytes 10:31:51.752745 Process 93 bytes request 10:31:51.752839 Got request: GET /verifiedserver HTTP/1.1 10:31:51.752920 Are-we-friendly question received 10:31:51.753156 Wrote request (93 bytes) input to log/2/server.input 10:31:51.753407 Identifying ourselves as friends 10:31:51.754245 Response sent (56 bytes) and written to log/2/server.response 10:31:51.754421 special request received, no persistency 10:31:51.754490 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 32950 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 585 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind585 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind585 test 0586...[FTP and open/close socket callbacks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind586 ./libtest/libtests lib500 ftp://127.0.0.1:43393/586 > log/5/stdout586 2> log/5/stderr586 586: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 586 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind586 ./libtest/libtests lib500 ftp://127.0.0.1:43393/586 > log/5/stdout586 2> log/5/stderr586 === End of file commands.log === Start of file ftp_server.log 10:31:52.209770 ====> Client connect 10:31:52.211492 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:52.215570 < "USER anonymous" 10:31:52.216076 > "331 We are happy you popped in![CR][LF]" 10:31:52.219976 < "PASS ftp@example.com" 10:31:52.220606 > "230 Welcome you silly person[CR][LF]" 10:31:52.227447 < "PWD" 10:31:52.228705 > "257 "/" is current directory[CR][LF]" 10:31:52.231500 < "EPSV" 10:31:52.231785 ====> Passive DATA channel requested by client 10:31:52.231947 DATA sockfilt for passive data channel starting... 10:31:52.242451 DATA sockfilt for passive data channel started (pid 106104) 10:31:52.243698 DATA sockfilt for passive data channel listens on port 34867 10:31:52.244195 > "229 Entering Passive Mode (|||34867|)[LF]" 10:31:52.244402 Client has been notified that DATA conn will be accepted on port 34867 10:31:52.248246 Client connects to port 34867 10:31:52.248689 ====> Client established passive DATA connection on port 34867 10:31:52.252355 < "TYPE I" 10:31:52.252928 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:52.256047 < "SIZE verifiedserver" 10:31:52.256550 > "213 17[CR][LF]" 10:31:52.258184 < "RETR verifiedserver" 10:31:52.258684 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:52.259371 =====> Closing passive DATA connection... 10:31:52.259684 Server disconnects passive DATA connection 10:31:52.260204 Fancy that; client wants to DISC, too 10:31:52.260584 Server disconnected passive DATA connection 10:31:52.260826 DATA sockfilt for passive data channel quits (pid 106104) 10:31:52.263879 DATA sockfilt for passive data channel quit (pid 106104) 10:31:52.264307 =====> Closed passive DATA connection 10:31:52.264656 > "226 File transfer complete[CR][LF]" 10:31:52.303749 < "QUIT" 10:31:52.304291 > "221 bye bye baby[CR][LF]" 10:31:52.312107 MAIN sockfilt said DISC 10:31:52.312698 ====> Client disconnected 10:31:52.313326 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:51.879125 ====> Client connect 10:31:51.881012 Received DATA (on stdin) 10:31:51.881254 > 160 bytes data, server => client 10:31:51.881969 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:51.882150 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:51.882231 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:51.882998 < 16 bytes data, client => server 10:31:51.883178 'USER anonymous\r\n' 10:31:51.886411 Received DATA (on stdin) 10:31:51.886567 > 33 bytes data, server => client 10:31:51.886657 '331 We are happy you popped in!\r\n' 10:31:51.888877 < 22 bytes data, client => server 10:31:51.889161 'PASS ftp@example.com\r\n' 10:31:51.891243 Received DATA (on stdin) 10:31:51.891637 > 30 bytes data, server => client 10:31:51.891791 '230 Welcome you silly person\r\n' 10:31:51.896234 < 5 bytes data, client => server 10:31:51.896454 'PWD\r\n' 10:31:51.897938 Received DATA (on stdin) 10:31:51.898117 > 30 bytes data, server => client 10:31:51.898272 '257 "/" is current directory\r\n' 10:31:51.898998 < 6 bytes data, client => server 10:31:51.899175 'EPSV\r\n' 10:31:51.914758 Received DATA (on stdin) 10:31:51.914947 > 38 bytes data, server => client 10:31:51.915032 '229 Entering Passive Mode (|||34867|)\n' 10:31:51.919695 < 8 bytes data, client => server 10:31:51.919938 'TYPE I\r\n' 10:31:51.922965 Received DATA (on stdin) 10:31:51.923243 > 33 bytes data, server => client 10:31:51.923366 '200 I modify TYPE as you wanted\r\n' 10:31:51.925426 < 21 bytes data, client => server 10:31:51.925575 'SIZE verifiedserver\r\n' 10:31:51.926600 Received DATA (on stdin) 10:31:51.926773 > 8 bytes data, server => client 10:31:51.926858 '213 17\r\n' 10:31:51CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind589 ./libtest/libtests lib589 http://127.0.0.1:40129/589 > log/7/stdout589 2> log/7/stderr589 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind588 ./libtest/libtests lib525 ftp://127.0.0.1:38733/path/588 log/1/upload588 > log/1/stdout588 2> log/1/stderr588 .927539 < 21 bytes data, client => server 10:31:51.927752 'RETR verifiedserver\r\n' 10:31:51.928703 Received DATA (on stdin) 10:31:51.928873 > 29 bytes data, server => client 10:31:51.928962 '150 Binary junk (17 bytes).\r\n' 10:31:51.934730 Received DATA (on stdin) 10:31:51.934899 > 28 bytes data, server => client 10:31:51.935004 '226 File transfer complete\r\n' 10:31:51.972577 < 6 bytes data, client => server 10:31:51.972780 'QUIT\r\n' 10:31:51.975109 Received DATA (on stdin) 10:31:51.975308 > 18 bytes data, server => client 10:31:51.975398 '221 bye bye baby\r\n' 10:31:51.979642 ====> Client disconnect 10:31:51.982788 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:52.910820 Running IPv4 version 10:31:52.911412 Listening on port 34867 10:31:52.911838 Wrote pid 106104 to log/5/server/ftp_sockdata.pid 10:31:52.912002 Received PING (on stdin) 10:31:52.913032 Received PORT (on stdin) 10:31:52.916185 ====> Client connect 10:31:52.929061 Received DATA (on stdin) 10:31:52.929217 > 17 bytes data, server => client 10:31:52.929326 'WE ROOLZ: 79602\r\n' 10:31:52.929915 ====> Client disconnect 10:31:52.930160 Received DISC (on stdin) 10:31:52.930272 Crikey! Client also wants to disconnect 10:31:52.930595 Received ACKD (on stdin) 10:31:52.931056 Received QUIT (on stdin) 10:31:52.931200 quits 10:31:52.931766 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 586 === End of file server.cmd === Start of file valgrind586 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind586 test 0589...[make an HTTP MIME POST set to NULL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind589 ./libtest/libtests lib589 http://127.0.0.1:40129/589 > log/7/stdout589 2> log/7/stderr589 589: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 589 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind589 ./libtest/libtests lib589 http://127.0.0.1:40129/589 > log/7/stdout589 2> log/7/stderr589 === End of file commands.log === Start of file http_server.log 10:31:52.076141 ====> Client connect 10:31:52.076449 accept_connection 3 returned 4 10:31:52.076686 accept_connection 3 returned 0 10:31:52.077550 Read 93 bytes 10:31:52.077774 Process 93 bytes request 10:31:52.077903 Got request: GET /verifiedserver HTTP/1.1 10:31:52.077988 Are-we-friendly question received 10:31:52.078290 Wrote request (93 bytes) input to log/7/server.input 10:31:52.078509 Identifying ourselves as friends 10:31:52.079129 Response sent (56 bytes) and written to log/7/server.response 10:31:52.079254 special request received, no persistency 10:31:52.079326 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 47802 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 589 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind589 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind589 test 0588...[FTP PORT upload using multi interface, EPRT doesn't work] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind588 ./libtest/libtests lib525 ftp://127.0.0.1:38733/path/588 log/1/upload588 > log/1/stdout588 2> log/1/stderr588 588: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 588 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind588 ./libtest/libtests lib525 ftp://127.0.0.1:38733/path/588 log/1/upload588 > log/1/stdout588 2> log/1/stderr588 === End of file commands.log === Start of file ftp_server.log 10:31:52.369953 ====> Client connect 10:31:52.371071 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:52.377082 < "USER anonymous" 10:31:52.377741 > "331 We are happy you popped in![CR][LF]" 10:31:52.380177 < "PASS ftp@example.com" 10:31:52.381043 > "230 Welcome you silly person[CR][LF]" 10:31:52.383346 < "PWD" 10:31:52.383883 > "257 "/" is current directory[CR][LF]" 10:31:52.386519 < "EPSV" 10:31:52.386961 ====> Passive DATA channel rCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind590 ./libtest/libtests lib590 http://test.remote.example.com/path/590 http://127.0.0.1:36757 > log/4/stdout590 2> log/4/stderr590 equested by client 10:31:52.387216 DATA sockfilt for passive data channel starting... 10:31:52.398313 DATA sockfilt for passive data channel started (pid 106172) 10:31:52.399329 DATA sockfilt for passive data channel listens on port 36003 10:31:52.399847 > "229 Entering Passive Mode (|||36003|)[LF]" 10:31:52.400090 Client has been notified that DATA conn will be accepted on port 36003 10:31:52.403343 Client connects to port 36003 10:31:52.403764 ====> Client established passive DATA connection on port 36003 10:31:52.404609 < "TYPE I" 10:31:52.405635 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:52.408119 < "SIZE verifiedserver" 10:31:52.409129 > "213 17[CR][LF]" 10:31:52.411267 < "RETR verifiedserver" 10:31:52.411807 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:52.412573 =====> Closing passive DATA connection... 10:31:52.412826 Server disconnects passive DATA connection 10:31:52.413814 Server disconnected passive DATA connection 10:31:52.414209 DATA sockfilt for passive data channel quits (pid 106172) 10:31:52.415730 DATA sockfilt for passive data channel quit (pid 106172) 10:31:52.416090 =====> Closed passive DATA connection 10:31:52.417055 > "226 File transfer complete[CR][LF]" 10:31:52.469396 < "QUIT" 10:31:52.470059 > "221 bye bye baby[CR][LF]" 10:31:52.474505 MAIN sockfilt said DISC 10:31:52.474928 ====> Client disconnected 10:31:52.475520 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:52.039304 ====> Client connect 10:31:52.042692 Received DATA (on stdin) 10:31:52.043448 > 160 bytes data, server => client 10:31:52.043721 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:52.043843 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:52.043926 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:52.045800 < 16 bytes data, client => server 10:31:52.045994 'USER anonymous\r\n' 10:31:52.048232 Received DATA (on stdin) 10:31:52.048424 > 33 bytes data, server => client 10:31:52.048526 '331 We are happy you popped in!\r\n' 10:31:52.049233 < 22 bytes data, client => server 10:31:52.049407 'PASS ftp@example.com\r\n' 10:31:52.050652 Received DATA (on stdin) 10:31:52.050831 > 30 bytes data, server => client 10:31:52.051571 '230 Welcome you silly person\r\n' 10:31:52.052392 < 5 bytes data, client => server 10:31:52.052578 'PWD\r\n' 10:31:52.054310 Received DATA (on stdin) 10:31:52.054518 > 30 bytes data, server => client 10:31:52.054617 '257 "/" is current directory\r\n' 10:31:52.055363 < 6 bytes data, client => server 10:31:52.055659 'EPSV\r\n' 10:31:52.070426 Received DATA (on stdin) 10:31:52.070624 > 38 bytes data, server => client 10:31:52.070722 '229 Entering Passive Mode (|||36003|)\n' 10:31:52.073019 < 8 bytes data, client => server 10:31:52.073155 'TYPE I\r\n' 10:31:52.075103 Received DATA (on stdin) 10:31:52.075313 > 33 bytes data, server => client 10:31:52.076206 '200 I modify TYPE as you wanted\r\n' 10:31:52.077094 < 21 bytes data, client => server 10:31:52.077270 'SIZE verifiedserver\r\n' 10:31:52.078707 Received DATA (on stdin) 10:31:52.078863 > 8 bytes data, server => client 10:31:52.079562 '213 17\r\n' 10:31:52.080369 < 21 bytes data, client => server 10:31:52.080511 'RETR verifiedserver\r\n' 10:31:52.083195 Received DATA (on stdin) 10:31:52.083313 > 29 bytes data, server => client 10:31:52.083421 '150 Binary junk (17 bytes).\r\n' 10:31:52.086468 Received DATA (on stdin) 10:31:52.086642 > 28 bytes data, server => client 10:31:52.086815 '226 File transfer complete\r\n' 10:31:52.138246 < 6 bytes data, client => server 10:31:52.138460 'QUIT\r\n' 10:31:52.141019 Received DATA (on stdin) 10:31:52.141261 > 18 bytes data, server => client 10:31:52.141355 '221 bye bye baby\r\n' 10:31:52.143613 ====> Client disconnect 10:31:52.144992 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:52.066700 Running IPv4 version 10:31:52.067290 Listening on port 36003 10:31:52.067795 Wrote pid 106172 to log/1/server/ftp_sockdata.pid 10:31:52.068019 Received PING (on stdin) 10:31:52.068828 Received PORT (on stdin) 10:31:52.072723 ====> Client connect 10:31:52.082293 Received DATA (on stdin) 10:31:52.082491 > 17 bytes data, server => client 10:31:52.082600 'WE ROOLZ: 79585\r\n' 10:31:52.083158 Received DISC (on stdin) 10:31:52.083324 ====> Client forcibly disconnected 10:31:52.084549 Received QUIT (on stdin) 10:31:52.084703 quits 10:31:52.085082 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPRT 500 we don't like EPRT now Testnum 588 === End of file server.cmd === Start of file upload588 Moooooooooooo upload this === End of file upload588 === Start of file valgrind588 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind588 test 0590...[HTTP proxy offers Negotiate+NTLM, use only NTLM] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind590 ./libtest/libtests lib590 http://test.remote.example.com/path/590 http://127.0.0.1:36757 > log/4/stdout590 2> log/4/stderr590 590: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 590 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind590 ./libtest/libtests lib590 http://test.remote.example.com/path/590 http://127.0.0.1:36757 > log/4/stdout590 2> log/4/stderr590 === End of file commands.log === Start of file http_server.log 10:31:53.374585 ====> Client connect 10:31:53.374881 accept_connection 3 returned 4 10:31:53.375025 accept_connection 3 returned 0 10:31:53.375129 Read 93 bytes 10:31:53.375200 Process 93 bytes request 10:31:53.375279 Got request: GET /verifiedserver HTTP/1.1 10:31:53.375342 Are-we-friendly question received 10:31:53.375642 Wrote request (93 bytes) input to log/4/server.input 10:31:53.375828 Identifying ourselves as friends 10:31:53.376471 Response sent (56 bytes) and written to log/4/server.response 10:31:53.376592 special request received, no persistency 10:31:53.376662 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 43010 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind591 ./libtest/libtests lib591 ftp://127.0.0.1:37959/path/591 8 log/2/upload591 > log/2/stdout591 2> log/2/stderr591 7 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 590 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind590 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind590 test 0591...[FTP multi PORT and 425 on upload] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind591 ./libtest/libtests lib591 ftp://127.0.0.1:37959/path/591 8 log/2/upload591 > log/2/stdout591 2> log/2/stderr591 591: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 591 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind591 ./libtest/libtests lib591 ftp://127.0.0.1:37959/path/591 8 log/2/upload591 > log/2/stdout591 2> log/2/stderr591 === End of file commands.log === Start of file ftp_server.log 10:31:52.933590 ====> Client connect 10:31:52.935070 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:52.937941 < "USER anonymous" 10:31:52.938423 > "331 We are happy you popped in![CR][LF]" 10:31:52.944520 < "PASS ftp@example.com" 10:31:52.944986 > "230 Welcome you silly person[CR][LF]" 10:31:52.946416 < "PWD" 10:31:52.946816 > "257 "/" is current directory[CR][LF]" 10:31:52.948021 < "EPSV" 10:31:52.948328 ====> Passive DATA channel requested by client 10:31:52.948519 DATA sockfilt for passive data channel starting... 10:31:52.958940 DATA sockfilt for passive data channel started (pid 106417) 10:31:52.960023 DATA sockfilt for passive data channel listens on port 36731 10:31:52.960548 > "229 Entering Passive Mode (|||36731|)[LF]" 10:31:52.960807 Client has been notified that DATA conn will be accepted on port 36731 10:31:52.962443 Client connects to port 36731 10:31:52.962851 ====> Client established passive DATA connection on port 36731 10:31:52.963745 < "TYPE I" 10:31:52.964174 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:52.966321 < "SIZE verifiedserver" 10:31:52.966838 > "213 17[CR][LF]" 10:31:52.968989 < "RETR verifiedserver" 10:31:52.970098 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:52.970831 =====> Closing passive DATA connection... 10:31:52.971102 Server disconnects passive DATA connection 10:31:52.972602 Server disconnected passive DATA connection 10:31:52.972975 DATA sockfilt for passive data channel quits (pid 106417) 10:31:52.975086 DATA sockfilt for passive data channel quit (pid 106417) 10:31:52.975913 =====> Closed passive DATA connection 10:31:52.976396 > "226 File transfer complete[CR][LF]" 10:31:53.020181 < "QUIT" 10:31:53.020858 > "221 bye bye baby[CR][LF]" 10:31:53.033755 MAIN sockfilt said DISC 10:31:53.034356 ====> Client disconnected 10:31:53.035041 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:52.602872 ====> Client connect 10:31:52.605536 Received DATA (on stdin) 10:31:52.605831 > 160 bytes data, server => client 10:31:52.605955 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:52.606045 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:52.606121 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:52.606776 < 16 bytes data, client => server 10:31:52.606943 'USER anonymous\r\n' 10:31:52.609269 Received DATA (on stdin) 10:31:52.609471 > 33 bytes data, server => client 10:31:52.609559 '331 We are happy you popped in!\r\n' 10:31:52.610085 < 22 bytes data, client => server 10:31:52.610223 'PASS ftp@example.com\r\n' 10:31:52.615008 Received DATA (on stdin) 10:31:52.615192 > 30 bytes data, server => client 10:31:52.615286 '230 Welcome you silly person\r\n' 10:31:52.615864 < 5 bytes data, client => server 10:31:52.616051 'PWD\r\n' 10:31:52.616821 Received DATA (on stdin) 10:31:52.616940 > 30 bytes data, server => client 10:31:52.617012 '257 "/" is current directory\r\n' 10:31:52.617504 < 6 bytes data, client => server 10:31:52.617649 'EPSV\r\n' 10:31:52.630587 Received DATA (on stdin) 10:31:52.630784 > 38 bytes data, server => client 10:31:52.630881 '229 Entering Passive Mode (|||36731|)\n' 10:31:52.632459 < 8 bytes data, client => server 10:31:52.632705 'TYPE I\r\n' 10:31:52.634190 Received DATA (on stdin) 10:31:52.634371 > 33 bytes data, server => client 10:31:52.634451 '200 I modify TYPE as you wanted\r\n' 10:31:52.634977 < 21 bytes data, client => server 10:31:52.635125 'SIZE verifiedserver\r\n' 10:31:52.637221 Received DATA (on stdin) 10:31:52.637391 > 8 bytes data, server => client 10:31:52.637487 '213 17\r\n' 10:31:52.638123 < 21 bytes data, client => server 10:31:52.638302 'RETR verifiedserver\r\n' 10:31:52.639645 Received DATA (on stdin) 10:31:52.639880 > 29 bytes data, server => client 10:31:52.641580 '150 Binary junk (17 bytes).\r\n' 10:31:52.646775 Received DATA (on stdin) 10:31:52.646945 > 28 bytes data, server => client 10:31:52.647020 '226 File transfer complete\r\n' 10:31:52.687927 < 6 bytes data, client => server 10:31:52.688175 'QUIT\r\n' 10:31:52.691700 Received DATA (on stdin) 10:31:52.691934 > 18 bytes data, server => client 10:31:52.692136 '221 bye bye baby\r\n' 10:31:52.699640 ====> Client disconnect 10:31:52.704608 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:52.627388 Running IPv4 version 10:31:52.628173 Listening on port 36731 10:31:52.628496 Wrote pid 106417 to log/2/server/ftp_sockdata.pid 10:31:52.628648 Received PING (on stdin) 10:31:52.629458 Received PORT (on stdin) 10:31:52.632023 ====> Client connect 10:31:52.641722 Received DATA (on stdin) 10:31:52.641935 > 17 bytes data, server => client 10:31:52.642037 'WE ROOLZ: 79558\r\n' 10:31:52.642319 Received DISC (on stdin) 10:31:52.642487 ====> Client forcibly disconnected 10:31:52.643622 Received QUIT (on stdin) 10:31:52.643821 quits 10:31:52.644254 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN425 REPLY EPRT 500 we don't like EPRT now Testnum 591 === End of file server.cmd === Start of file upload591 Moooooooooooo for 591 upload this === End of file upload591 === Start of file valgrind591 vaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind592 ./libtest/libtests lib591 ftp://127.0.0.1:43393/path/592 8 log/5/upload592 > log/5/stdout592 2> log/5/stderr592 lgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind591 test 0592...[FTP multi PORT and 421 on upload] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind592 ./libtest/libtests lib591 ftp://127.0.0.1:43393/path/592 8 log/5/upload592 > log/5/stdout592 2> log/5/stderr592 592: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 592 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind592 ./libtest/libtests lib591 ftp://127.0.0.1:43393/path/592 8 log/5/upload592 > log/5/stdout592 2> log/5/stderr592 === End of file commands.log === Start of file ftp_server.log 10:31:53.117636 ====> Client connect 10:31:53.118980 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:53.121095 < "USER anonymous" 10:31:53.121725 > "331 We are happy you popped in![CR][LF]" 10:31:53.128206 < "PASS ftp@example.com" 10:31:53.128681 > "230 Welcome you silly person[CR][LF]" 10:31:53.132016 < "PWD" 10:31:53.132552 > "257 "/" is current directory[CR][LF]" 10:31:53.138268 < "EPSV" 10:31:53.138594 ====> Passive DATA channel requested by client 10:31:53.138811 DATA sockfilt for passive data channel starting... 10:31:53.149828 DATA sockfilt for passive data channel started (pid 106463) 10:31:53.151039 DATA sockfilt for passive data channel listens on port 32915 10:31:53.152300 > "229 Entering Passive Mode (|||32915|)[LF]" 10:31:53.152669 Client has been notified that DATA conn will be accepted on port 32915 10:31:53.153950 Client connects to port 32915 10:31:53.154333 ====> Client established passive DATA connection on port 32915 10:31:53.155062 < "TYPE I" 10:31:53.155448 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:53.157420 < "SIZE verifiedserver" 10:31:53.159537 > "213 17[CR][LF]" 10:31:53.163336 < "RETR verifiedserver" 10:31:53.163839 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:53.164538 =====> Closing passive DATA connection... 10:31:53.164772 Server disconnects passive DATA connection 10:31:53.165659 Server disconnected passive DATA connection 10:31:53.166013 DATA sockfilt for passive data channel quits (pid 106463) 10:31:53.169248 DATA sockfilt for passive data channel quit (pid 106463) 10:31:53.169763 =====> Closed passive DATA connection 10:31:53.170302 > "226 File transfer complete[CR][LF]" 10:31:53.215764 < "QUIT" 10:31:53.216365 > "221 bye bye baby[CR][LF]" 10:31:53.219423 MAIN sockfilt said DISC 10:31:53.219921 ====> Client disconnected 10:31:53.220527 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:52.784567 ====> Client connect 10:31:52.789007 Received DATA (on stdin) 10:31:52.789244 > 160 bytes data, server => client 10:31:52.789343 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:52.789412 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:52.789480 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:52.790177 < 16 bytes data, client => server 10:31:52.790379 'USER anonymous\r\n' 10:31:52.795580 Received DATA (on stdin) 10:31:52.795805 > 33 bytes data, server => client 10:31:52.795893 '331 We are happy you popped in!\r\n' 10:31:52.796503 < 22 bytes data, client => server 10:31:52.796677 'PASS ftp@example.com\r\n' 10:31:52.798737 Received DATA (on stdin) 10:31:52.798913 > 30 bytes data, server => client 10:31:52.799004 '230 Welcome you silly person\r\n' 10:31:52.799661 < 5 bytes data, client => server 10:31:52.799848 'PWD\r\n' 10:31:52.802690 Received DATA (on stdin) 10:31:52.802837 > 30 bytes data, server => client 10:31:52.802922 '257 "/" is current directory\r\n' 10:31:52.803635 < 6 bytes data, client => server 10:31:52.803841 'EPSV\r\n' 10:31:52.821545 Received DATA (on stdin) 10:31:52.821714 > 38 bytes data, server => client 10:31:52.821878 '229 Entering Passive Mode (|||32915|)\n' 10:31:52.823200 < 8 bytes data, client => server 10:31:52.823403 'TYPE I\r\n' 10:31:52.825763 Received DATA (on stdin) 10:31:52.825905 > 33 bytes data, server => client 10:31:52.825980 '200 I modify TYPE as you wanted\r\n' 10:31:52.826614 < 21 bytes data, client => server 10:31:52.826770 'SIZE verifiedserver\r\n' 10:31:52.828448 Received DATA (on stdin) 10:31:52.828699 > 8 bytes data, server => client 10:31:52.830026 '213 17\r\n' 10:31:52.832408 < 21 bytes data, client => server 10:31:52.832570 'RETR verifiedserver\r\n' 10:31:52.835088 Received DATA (on stdin) 10:31:52.835209 > 29 bytes data, server => client 10:31:52.835320 '150 Binary junk (17 bytes).\r\n' 10:31:52.840276 Received DATA (on stdin) 10:31:52.840510 > 28 bytes data, server => client 10:31:52.840613 '226 File transfer complete\r\n' 10:31:52.884802 < 6 bytes data, client => server 10:31:52.885034 'QUIT\r\n' 10:31:52.886622 Received DATA (on stdin) 10:31:52.886802 > 18 bytes data, server => client 10:31:52.886896 '221 bye bye baby\r\n' 10:31:52.889052 ====> Client disconnect 10:31:52.891630 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:53.817370 Running IPv4 version 10:31:53.817898 Listening on port 32915 10:31:53.818258 Wrote pid 106463 to log/5/server/ftp_sockdata.pid 10:31:53.818401 Received PING (on stdin) 10:31:53.820454 Received PORT (on stdin) 10:31:53.823673 ====> Client connect 10:31:53.834244 Received DATA (on stdin) 10:31:53.834433 > 17 bytes data, server => client 10:31:53.834529 'WE ROOLZ: 79602\r\n' 10:31:53.835049 Received DISC (on stdin) 10:31:53.835221 ====> Client forcibly disconnected 10:31:53.837755 Received QUIT (on stdin) 10:31:53.837981 quits 10:31:53.838575 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN421 REPLY EPRT 500 we don't like EPRT now Testnum 592 === End of file server.cmd === Start of file upload592 Moooooooooooo for 592 upload this === End of file upload592 === Start of file valgrind592 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind595 ./libtest/libtests lib500 ftp://127.0.0.1:38733/595 log/1/ip595 > log/1/stdout595 2> log/1/stderr595 ng valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind592 test 0587...[HTTP multi-part formpost with aborted read callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind587 ./libtest/libtests lib554 http://127.0.0.1:36933/587 > log/3/stdout587 2> log/3/stderr587 libtests returned 1, when expecting 42 587: exit FAILED == Contents of files in the log/3/ dir after test 587 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind587 ./libtest/libtests lib554 http://127.0.0.1:36933/587 > log/3/stdout587 2> log/3/stderr587 === End of file commands.log === Start of file http_server.log 10:31:51.935243 ====> Client connect 10:31:51.935627 accept_connection 3 returned 4 10:31:51.935834 accept_connection 3 returned 0 10:31:51.935992 Read 93 bytes 10:31:51.936094 Process 93 bytes request 10:31:51.936175 Got request: GET /verifiedserver HTTP/1.1 10:31:51.936249 Are-we-friendly question received 10:31:51.936534 Wrote request (93 bytes) input to log/3/server.input 10:31:51.936703 Identifying ourselves as friends 10:31:51.937305 Response sent (56 bytes) and written to log/3/server.response 10:31:51.937434 special request received, no persistency 10:31:51.937497 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 39484 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 587 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind587 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind587 test 0595...[verify close callbacks with passive FTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind595 ./libtest/libtests lib500 ftp://127.0.0.1:38733/595 log/1/ip595 > log/1/stdout595 2> log/1/stderr595 595: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 595 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind595 ./libtest/libtests lib500 ftp://127.0.0.1:38733/595 log/1/ip595 > log/1/stdout595 2> log/1/stderr595 === End of file commands.log === Start of file ftp_server.log 10:31:53.294671 ====> Client connect 10:31:53.295706 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:53.297889 < "USER anonymous" 10:31:53.298327 > "331 We are happy you popped in![CR][LF]" 10:31:53.299732 < "PASS ftp@example.com" 10:31:53.300091 > "230 Welcome you silly person[CR][LF]" 10:31:53.301340 < "PWD" 10:31:53.301833 > "257 "/" is current directory[CR][LF]" 10:31:53.303192 < "EPSV" 10:31:53.303486 ====> Passive DATA channel requested by client 10:31:53.303630 DATA sockfilt for passive data channel starting... 10:31:53.313764 DATA sockfilt for passive data channel started (pid 106531) 10:31:53.314736 DATA sockfilt for passive data channel listens on port 38903 10:31:53.315211 > "229 Entering Passive Mode (|||38903|)[LF]" 10:31:53.315436 Client has been notified that DATA conn will be accepted on port 38903 10:31:53.316883 Client connects to port 38903 10:31:53.317243 ====> Client established passive DATA connection on port 38903 10:31:53.318112 < "TYPE I" 10:31:53.318489 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:53.319878 < "SIZE verifiedserver" 10:31:53.320305 > "213 17[CR][LF]" 10:31:53.321758 < "RETR verifiedserver" 10:31:53.322217 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:53.322921 =====> Closing passive DATA connection... 10:31:53.323206 Server disconnects passive DATA connection 10:31:53.324112 Server disconnected passive DATA connection 10:31:53.324503 DATA sockfilt for passive data channel quits (pid 106531) 10:31:53.326210 DATA sockfilt for passive data channel quit (pid 106531) 10:31:53.326612 =====> Closed passive DATA connection 10:31:53.326928 > "226 File transfer complete[CR][LF]" 10:31:53.367213 < "QUIT" 10:31:53.367834 > "221 bye bye baby[CR][LF]" 10:31:53.373021 MAIN sockfilt said DISC 10:31:53.373732 ====> Client disconnected 10:31:53.374491 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:52.964095 ====> Client connect 10:31:52.965705 Received DATA (on stdin) 10:31:52.965913 > 160 bytes data, server => client 10:31:52.966024 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:52.966108 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:52.966174 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:52.966742 < 16 bytes data, client => server 10:31:52.966907 'USER anonymous\r\n' 10:31:52.968341 Received DATA (on stdin) 10:31:52.968476 > 33 bytes data, server => client 10:31:52.968563CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind593 ./libtest/libtests lib591 ftp://127.0.0.1:38253/path/593 8 log/7/upload593 > log/7/stdout593 2> log/7/stderr593 '331 We are happy you popped in!\r\n' 10:31:52.969101 < 22 bytes data, client => server 10:31:52.969284 'PASS ftp@example.com\r\n' 10:31:52.970102 Received DATA (on stdin) 10:31:52.970228 > 30 bytes data, server => client 10:31:52.970309 '230 Welcome you silly person\r\n' 10:31:52.970812 < 5 bytes data, client => server 10:31:52.970963 'PWD\r\n' 10:31:52.971831 Received DATA (on stdin) 10:31:52.971975 > 30 bytes data, server => client 10:31:52.972054 '257 "/" is current directory\r\n' 10:31:52.972618 < 6 bytes data, client => server 10:31:52.972791 'EPSV\r\n' 10:31:52.985269 Received DATA (on stdin) 10:31:52.985412 > 38 bytes data, server => client 10:31:52.985501 '229 Entering Passive Mode (|||38903|)\n' 10:31:52.986764 < 8 bytes data, client => server 10:31:52.986896 'TYPE I\r\n' 10:31:52.988503 Received DATA (on stdin) 10:31:52.988643 > 33 bytes data, server => client 10:31:52.988732 '200 I modify TYPE as you wanted\r\n' 10:31:52.989299 < 21 bytes data, client => server 10:31:52.989487 'SIZE verifiedserver\r\n' 10:31:52.990328 Received DATA (on stdin) 10:31:52.990459 > 8 bytes data, server => client 10:31:52.990535 '213 17\r\n' 10:31:52.991056 < 21 bytes data, client => server 10:31:52.991236 'RETR verifiedserver\r\n' 10:31:52.992220 Received DATA (on stdin) 10:31:52.992388 > 29 bytes data, server => client 10:31:52.992480 '150 Binary junk (17 bytes).\r\n' 10:31:52.996962 Received DATA (on stdin) 10:31:52.997114 > 28 bytes data, server => client 10:31:52.997209 '226 File transfer complete\r\n' 10:31:53.036515 < 6 bytes data, client => server 10:31:53.036797 'QUIT\r\n' 10:31:53.037858 Received DATA (on stdin) 10:31:53.038102 > 18 bytes data, server => client 10:31:53.038247 '221 bye bye baby\r\n' 10:31:53.038897 ====> Client disconnect 10:31:53.043746 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:53.982365 Running IPv4 version 10:31:53.982944 Listening on port 38903 10:31:53.983243 Wrote pid 106531 to log/1/server/ftp_sockdata.pid 10:31:53.983373 Received PING (on stdin) 10:31:53.984235 Received PORT (on stdin) 10:31:53.986523 ====> Client connect 10:31:53.992549 Received DATA (on stdin) 10:31:53.992688 > 17 bytes data, server => client 10:31:53.992784 'WE ROOLZ: 79585\r\n' 10:31:53.993424 Received DISC (on stdin) 10:31:53.993566 ====> Client forcibly disconnected 10:31:53.994739 Received QUIT (on stdin) 10:31:53.994867 quits 10:31:53.995270 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 595 === End of file server.cmd === Start of file valgrind595 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind595 test 0593...[FTP multi PORT upload, no data conn and no transient neg. reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind593 ./libtest/libtests lib591 ftp://127.0.0.1:38253/path/593 8 log/7/upload593 > log/7/stdout593 2> log/7/stderr593 593: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 593 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind593 ./libtest/libtests lib591 ftp://127.0.0.1:38253/path/593 8 log/7/upload593 > log/7/stdout593 2> log/7/stderr593 === End of file commands.log === Start of file ftp_server.log 10:31:53.251690 ====> Client connect 10:31:53.252867 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:53.255692 < "USER anonymous" 10:31:53.256170 > "331 We are happy you popped in![CR][LF]" 10:31:53.258386 < "PASS ftp@example.com" 10:31:53.258959 > "230 Welcome you silly person[CR][LF]" 10:31:53.260980 < "PWD" 10:31:53.261362 > "257 "/" is current directory[CR][LF]" 10:31:53.263056 < "EPSV" 10:31:53.263339 ====> Passive DATA channel requested by client 10:31:53.263501 DATA sockfilt for passive data channel starting... 10:31:53.273596 DATA sockfilt for passive data channel started (pid 106525) 10:31:53.274649 DATA sockfilt for passive data channel listens on port 37525 10:31:53.275142 > "229 Entering Passive Mode (|||37525|)[LF]" 10:31:53.275391 Client has been notified that DATA conn will be accepted on port 37525 10:31:53.276871 Client connects to port 37525 10:31:53.277241 ====> Client established passive DATA connection on port 37525 10:31:53.278120 < "TYPE I" 10:31:53.278503 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:53.280453 < "SIZE verifiedserver" 10:31:53.280986 > "213 17[CR][LF]" 10:31:53.283634 < "RETR verifiedserver" 10:31:53.284139 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:53.284817 =====> Closing passive DATA connection... 10:31:53.285039 Server disconnects passive DATA connection 10:31:53.286680 Server disconnected passive DATA connection 10:31:53.287080 DATA sockfilt for passive data channel quits (pid 106525) 10:31:53.289127 DATA sockfilt for passive data channel quit (pid 106525) 10:31:53.289563 =====> Closed passive DATA connection 10:31:53.289933 > "226 File transfer complete[CR][LF]" 10:31:53.331151 < "QUIT" 10:31:53.331553 > "221 bye bye baby[CR][LF]" 10:31:53.336013 MAIN sockfilt said DISC 10:31:53.336513 ====> Client disconnected 10:31:53.337180 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:53.921030 ====> Client connect 10:31:53.923321 Received DATA (on stdin) 10:31:53.923734 > 160 bytes data, server => client 10:31:53.923876 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:53.923954 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:53.924021 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:53.924685 < 16 bytes data, client => server 10:31:53.924895 'USER anonymous\r\n' 10:31:53.926547 Received DATA (on stdin) 10:31:53.926760 > 33 bytes data, server => client 10:31:53.926864 '331 We are happy you popped in!\r\n' 10:31:53.927638 < 22 bytes data, client => server 10:31:53.927871 'PASS ftp@example.com\r\n' 10:31:53.929306 Received DATA (on stdin) 10:31:53.929528 > 30 bytes data, server => client 10:31:53.929641 '230 Welcome you silly person\r\n' 10:31:53.930363 < 5 bytes data, client => server 10:31:53.930571 'PWD\r\n' 10:31:53.931345 Received DATA (on stdin) 10:31:53.931561 > 30 bytes data, server => client 10:31:53.931674 '257 "/" is current directory\r\n' 10:31:53.932546 < 6 bytes cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind596 ./libtest/libtests lib500 ftp://127.0.0.1:42635/596 log/4/ip596 activeftp > log/4/stdout596 2> log/4/stderr596 data, client => server 10:31:53.932740 'EPSV\r\n' 10:31:53.945155 Received DATA (on stdin) 10:31:53.945344 > 38 bytes data, server => client 10:31:53.945430 '229 Entering Passive Mode (|||37525|)\n' 10:31:53.946811 < 8 bytes data, client => server 10:31:53.946925 'TYPE I\r\n' 10:31:53.948890 Received DATA (on stdin) 10:31:53.949069 > 33 bytes data, server => client 10:31:53.949151 '200 I modify TYPE as you wanted\r\n' 10:31:53.949835 < 21 bytes data, client => server 10:31:53.950077 'SIZE verifiedserver\r\n' 10:31:53.951538 Received DATA (on stdin) 10:31:53.951776 > 8 bytes data, server => client 10:31:53.951877 '213 17\r\n' 10:31:53.952678 < 21 bytes data, client => server 10:31:53.952882 'RETR verifiedserver\r\n' 10:31:53.955319 Received DATA (on stdin) 10:31:53.955587 > 29 bytes data, server => client 10:31:53.955688 '150 Binary junk (17 bytes).\r\n' 10:31:53.959958 Received DATA (on stdin) 10:31:53.960133 > 28 bytes data, server => client 10:31:53.960222 '226 File transfer complete\r\n' 10:31:54.000411 < 6 bytes data, client => server 10:31:54.000630 'QUIT\r\n' 10:31:54.001563 Received DATA (on stdin) 10:31:54.001701 > 18 bytes data, server => client 10:31:54.001780 '221 bye bye baby\r\n' 10:31:54.002311 ====> Client disconnect 10:31:54.006575 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:53.942355 Running IPv4 version 10:31:53.942873 Listening on port 37525 10:31:53.943148 Wrote pid 106525 to log/7/server/ftp_sockdata.pid 10:31:53.943296 Received PING (on stdin) 10:31:53.944096 Received PORT (on stdin) 10:31:53.946551 ====> Client connect 10:31:53.954551 Received DATA (on stdin) 10:31:53.954737 > 17 bytes data, server => client 10:31:53.954821 'WE ROOLZ: 79543\r\n' 10:31:53.955998 Received DISC (on stdin) 10:31:53.956162 ====> Client forcibly disconnected 10:31:53.957645 Received QUIT (on stdin) 10:31:53.957846 quits 10:31:53.958230 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN150 REPLY EPRT 500 we don't like EPRT now Testnum 593 === End of file server.cmd === Start of file upload593 Moooooooooooo for 593 upload this === End of file upload593 === Start of file valgrind593 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind593 test 0596...[verify close callbacks with active FTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind596 ./libtest/libtests lib500 ftp://127.0.0.1:42635/596 log/4/ip596 activeftp > log/4/stdout596 2> log/4/stderr596 596: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 596 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind596 ./libtest/libtests lib500 ftp://127.0.0.1:42635/596 log/4/ip596 activeftp > log/4/stdout596 2> log/4/stderr596 === End of file commands.log === Start of file ftp_server.log 10:31:53.588962 ====> Client connect 10:31:53.590471 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:53.594047 < "USER anonymous" 10:31:53.594973 > "331 We are happy you popped in![CR][LF]" 10:31:53.597272 < "PASS ftp@example.com" 10:31:53.597941 > "230 Welcome you silly person[CR][LF]" 10:31:53.600538 < "PWD" 10:31:53.601200 > "257 "/" is current directory[CR][LF]" 10:31:53.604853 < "EPSV" 10:31:53.605431 ====> Passive DATA channel requested by client 10:31:53.605940 DATA sockfilt for passive data channel starting... 10:31:53.621310 DATA sockfilt for passive data channel started (pid 106647) 10:31:53.625806 DATA sockfilt for passive data channel listens on port 34609 10:31:53.626827 > "229 Entering Passive Mode (|||34609|)[LF]" 10:31:53.627163 Client has been notified that DATA conn will be accepted on port 34609 10:31:53.630266 Client connects to port 34609 10:31:53.630856 ====> Client established passive DATA connection on port 34609 10:31:53.631769 < "TYPE I" 10:31:53.632216 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:53.634557 < "SIZE verifiedserver" 10:31:53.636204 > "213 17[CR][LF]" 10:31:53.639414 < "RETR verifiedserver" 10:31:53.640116 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:53.640981 =====> Closing passive DATA connection... 10:31:53.641340 Server disconnects passive DATA connection 10:31:53.642291 Server disconnected passive DATA connection 10:31:53.642693 DATA sockfilt for passive data channel quits (pid 106647) 10:31:53.644555 DATA sockfilt for passive data channel quit (pid 106647) 10:31:53.644955 =====> Closed passive DATA connection 10:31:53.645320 > "226 File transfer complete[CR][LF]" 10:31:53.687138 < "QUIT" 10:31:53.687562 > "221 bye bye baby[CR][LF]" 10:31:53.691002 MAIN sockfilt said DISC 10:31:53.691404 ====> Client disconnected 10:31:53.691958 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:54.258280 ====> Client connect 10:31:54.260898 Received DATA (on stdin) 10:31:54.261540 > 160 bytes data, server => client 10:31:54.261696 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:54.261775 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:54.261838 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:54.262565 < 16 bytes data, client => server 10:31:54.262787 'USER anonymous\r\n' 10:31:54.264557 Received DATA (on stdin) 10:31:54.264735 > 33 bytes data, server => client 10:31:54.265362 '331 We are happy you popped in!\r\n' 10:31:54.266078 < 22 bytes data, client => server 10:31:54.266305 'PASS ftp@example.com\r\n' 10:31:54.268357 Received DATA (on stdin) 10:31:54.268517 > 30 bytes data, server => client 10:31:54.268594 '230 Welcome you silly person\r\n' 10:31:54.269281 < 5 bytes data, client => server 10:31:54.269513 'PWD\r\n' 10:31:54.271832 Received DATA (on stdin) 10:31:54.272083 > 30 bytes data, server => client 10:31:54.272206 '257 "/" is current directory\r\n' 10:31:54.273461 < 6 bytes data, client => server 10:31:54.273731 'EPSV\r\n' 10:31:54.296395 Received DATA (on stdin) 10:31:54.296576 > 38 bytes data, server => client 10:31:54.297512 '229 Entering Passive Mode (|||34609|)\n' 10:31:54.299049 < 8 bytes data, client => server 10:31:54.299291 'TYPE I\r\n' 10:31:54.302526 Received DATA (on stdin) 10:31:54.302687 > 33 bytes data, server => client 10:31:54.302772 '200 I modify TYPCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind597 ./libtest/libtests lib597 ftp://127.0.0.1:37959 > log/2/stdout597 2> log/2/stderr597 E as you wanted\r\n' 10:31:54.303504 < 21 bytes data, client => server 10:31:54.303728 'SIZE verifiedserver\r\n' 10:31:54.305168 Received DATA (on stdin) 10:31:54.305384 > 8 bytes data, server => client 10:31:54.306145 '213 17\r\n' 10:31:54.308121 < 21 bytes data, client => server 10:31:54.308385 'RETR verifiedserver\r\n' 10:31:54.310319 Received DATA (on stdin) 10:31:54.310515 > 29 bytes data, server => client 10:31:54.310619 '150 Binary junk (17 bytes).\r\n' 10:31:54.315533 Received DATA (on stdin) 10:31:54.315730 > 28 bytes data, server => client 10:31:54.315837 '226 File transfer complete\r\n' 10:31:54.356365 < 6 bytes data, client => server 10:31:54.356614 'QUIT\r\n' 10:31:54.357564 Received DATA (on stdin) 10:31:54.357774 > 18 bytes data, server => client 10:31:54.357875 '221 bye bye baby\r\n' 10:31:54.360592 ====> Client disconnect 10:31:54.362316 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:53.286370 Running IPv4 version 10:31:53.286994 Listening on port 34609 10:31:53.287331 Wrote pid 106647 to log/4/server/ftp_sockdata.pid 10:31:53.290798 Received PING (on stdin) 10:31:53.292229 Received PORT (on stdin) 10:31:53.299866 ====> Client connect 10:31:53.311279 Received DATA (on stdin) 10:31:53.311533 > 17 bytes data, server => client 10:31:53.311649 'WE ROOLZ: 79516\r\n' 10:31:53.311978 Received DISC (on stdin) 10:31:53.312167 ====> Client forcibly disconnected 10:31:53.313039 Received QUIT (on stdin) 10:31:53.313213 quits 10:31:53.313625 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 596 === End of file server.cmd === Start of file valgrind596 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind596 test 0597...[FTP connect only option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind597 ./libtest/libtests lib597 ftp://127.0.0.1:37959 > log/2/stdout597 2> log/2/stderr597 597: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 597 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind597 ./libtest/libtests lib597 ftp://127.0.0.1:37959 > log/2/stdout597 2> log/2/stderr597 === End of file commands.log === Start of file ftp_server.log 10:31:53.821145 ====> Client connect 10:31:53.822447 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:31:53.830486 < "USER anonymous" 10:31:53.830901 > "331 We are happy you popped in![CR][LF]" 10:31:53.832546 < "PASS ftp@example.com" 10:31:53.832939 > "230 Welcome you silly person[CR][LF]" 10:31:53.838469 < "PWD" 10:31:53.838883 > "257 "/" is current directory[CR][LF]" 10:31:53.840523 < "EPSV" 10:31:53.840851 ====> Passive DATA channel requested by client 10:31:53.841049 DATA sockfilt for passive data channel starting... 10:31:53.850720 DATA sockfilt for passive data channel started (pid 106746) 10:31:53.851812 DATA sockfilt for passive data channel listens on port 41489 10:31:53.852357 > "229 Entering Passive Mode (|||41489|)[LF]" 10:31:53.852611 Client has been notified that DATA conn will be accepted on port 41489 10:31:53.854127 Client connects to port 41489 10:31:53.854559 ====> Client established passive DATA connection on port 41489 10:31:53.855377 < "TYPE I" 10:31:53.855731 > "200 I modify TYPE as you wanted[CR][LF]" 10:31:53.857412 < "SIZE verifiedserver" 10:31:53.858207 > "213 17[CR][LF]" 10:31:53.860876 < "RETR verifiedserver" 10:31:53.861361 > "150 Binary junk (17 bytes).[CR][LF]" 10:31:53.862259 =====> Closing passive DATA connection... 10:31:53.862464 Server disconnects passive DATA connection 10:31:53.863339 Server disconnected passive DATA connection 10:31:53.863691 DATA sockfilt for passive data channel quits (pid 106746) 10:31:53.865269 DATA sockfilt for passive data channel quit (pid 106746) 10:31:53.865740 =====> Closed passive DATA connection 10:31:53.866684 > "226 File transfer complete[CR][LF]" 10:31:53.908741 < "QUIT" 10:31:53.909456 > "221 bye bye baby[CR][LF]" 10:31:53.916640 MAIN sockfilt said DISC 10:31:53.917744 ====> Client disconnected 10:31:53.918480 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:31:53.490499 ====> Client connect 10:31:53.492414 Received DATA (on stdin) 10:31:53.492680 > 160 bytes data, server => client 10:31:53.492786 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:31:53.492868 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:31:53.492934 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:31:53.493556 < 16 bytes data, client => server 10:31:53.493752 'USER anonymous\r\n' 10:31:53.500946 Received DATA (on stdin) 10:31:53.501111 > 33 bytes data, server => client 10:31:53.501203 '331 We are happy you popped in!\r\n' 10:31:53.501875 < 22 bytes data, client => server 10:31:53.502049 'PASS ftp@example.com\r\n' 10:31:53.502978 Received DATA (on stdin) 10:31:53.503140 > 30 bytes data, server => client 10:31:53.503225 '230 Welcome you silly person\r\n' 10:31:53.507757 < 5 bytes data, client => server 10:31:53.507975 'PWD\r\n' 10:31:53.508891 Received DATA (on stdin) 10:31:53.509062 > 30 bytes data, server => client 10:31:53.509157 '257 "/" is current directory\r\n' 10:31:53.509822 < 6 bytes data, client => server 10:31:53.510044 'EPSV\r\n' 10:31:53.522357 Received DATA (on stdin) 10:31:53.522514 > 38 bytes data, server => client 10:31:53.522600 '229 Entering Passive Mode (|||41489|)\n' 10:31:53.523995 < 8 bytes data, client => server 10:31:53.524129 'TYPE I\r\n' 10:31:53.525754 Received DATA (on stdin) 10:31:53.525909 > 33 bytes data, server => client 10:31:53.526014 '200 I modify TYPE as you wanted\r\n' 10:31:53.526752 < 21 bytes data, client => server 10:31:53.526950 'SIZE verifiedserver\r\n' 10:31:53.528220 Received DATA (on stdin) 10:31:53.528422 > 8 bytes data, server => client 10:31:53.528526 '213 17\r\n' 10:31:53.529816 < 21 bytes data, client => server 10:31:53.530018 'RETR verifiedserver\r\n' 10:31:53.532775 Received DATA (on stdin) 10:31:53.532905 > 29 bytes data, server => client 10:31:53.533024 '150 Binary junk (17 bytes).\r\n' 10:31:53.536091 Received DATA (on stdin) 10:31:53.536243 > 28 bytes data, server => client 10:31:53.536401 '226 File transfer complete\r\n' 10:cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind598 ./libtest/libtests lib598 http://127.0.0.1:41733/598 > log/5/stdout598 2> log/5/stderr598 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind599 ./libtest/libtests lib599 http://127.0.0.1:36933/599 log/3/ip599 > log/3/stdout599 2> log/3/stderr599 31:53.577231 < 6 bytes data, client => server 10:31:53.577562 'QUIT\r\n' 10:31:53.580361 Received DATA (on stdin) 10:31:53.580701 > 18 bytes data, server => client 10:31:53.580891 '221 bye bye baby\r\n' 10:31:53.586169 ====> Client disconnect 10:31:53.587080 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:31:53.519372 Running IPv4 version 10:31:53.519990 Listening on port 41489 10:31:53.520265 Wrote pid 106746 to log/2/server/ftp_sockdata.pid 10:31:53.520400 Received PING (on stdin) 10:31:53.521212 Received PORT (on stdin) 10:31:53.523709 ====> Client connect 10:31:53.532031 Received DATA (on stdin) 10:31:53.532224 > 17 bytes data, server => client 10:31:53.532322 'WE ROOLZ: 79558\r\n' 10:31:53.532735 Received DISC (on stdin) 10:31:53.532922 ====> Client forcibly disconnected 10:31:53.533944 Received QUIT (on stdin) 10:31:53.534085 quits 10:31:53.534480 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 597 === End of file server.cmd === Start of file valgrind597 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind597 test 0598...[curl_easy_reset with referer and other strings set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind598 ./libtest/libtests lib598 http://127.0.0.1:41733/598 > log/5/stdout598 2> log/5/stderr598 598: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 598 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind598 ./libtest/libtests lib598 http://127.0.0.1:41733/598 > log/5/stdout598 2> log/5/stderr598 === End of file commands.log === Start of file http_server.log 10:31:54.731235 ====> Client connect 10:31:54.731687 accept_connection 3 returned 4 10:31:54.731913 accept_connection 3 returned 0 10:31:54.732823 Read 93 bytes 10:31:54.733024 Process 93 bytes request 10:31:54.733164 Got request: GET /verifiedserver HTTP/1.1 10:31:54.733294 Are-we-friendly question received 10:31:54.733579 Wrote request (93 bytes) input to log/5/server.input 10:31:54.733790 Identifying ourselves as friends 10:31:54.734415 Response sent (56 bytes) and written to log/5/server.response 10:31:54.734551 special request received, no persistency 10:31:54.734622 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 49684 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 598 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind598 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind598 cannot find sshd cannot find sshd cannot find sshd CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind632 ../src/curl -q --output log/6/curl632.out --include --trace-ascii log/6/trace632 --trace-time --hostpubmd5 00 --key log/6/server/curl_client_key --pubkey log/6/server/curl_client_key.pub -u builduser: sftp://127.0.0.1:47/build/curl/src/build-curl/tests/log/6/irrelevant-file --insecure > log/6/stdout632 2> log/6/stderr632 test 0599...[HTTP GET with progress callback and redirects changing content sizes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind599 ./libtest/libtests lib599 http://127.0.0.1:36933/599 log/3/ip599 > log/3/stdout599 2> log/3/stderr599 599: data FAILED: --- log/3/check-expected 2025-09-11 10:31:54.760348309 +0000 +++ log/3/check-generated 2025-09-11 10:31:54.760348309 +0000 @@ -1,16 +0,0 @@ -HTTP/1.1 302 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Location: 5990001[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Transfer-Encoding: chunked[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -[CR][LF] -this data is slightly larger than the first piece[LF] == Contents of files in the log/3/ dir after test 599 === Start of file check-expected HTTP/1.1 302 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Location: 5990001[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Transfer-Encoding: chunked[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] [CR][LF] this data is slightly larger than the first piece[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind599 ./libtest/libtests lib599 http://127.0.0.1:36933/599 log/3/ip599 > log/3/stdout599 2> log/3/stderr599 === End of file commands.log === Start of file http_server.log 10:31:53.752434 ====> Client connect 10:31:53.752726 accept_connection 3 returned 4 10:31:53.752887 accept_connection 3 returned 0 10:31:53.753003 Read 93 bytes 10:31:53.753079 Process 93 bytes request 10:31:53.753173 Got request: GET /verifiedserver HTTP/1.1 10:31:53.753246 Are-we-friendly question received 10:31:53.753475 Wrote request (93 bytes) input to log/3/server.input 10:31:53.753633 Identifying ourselves as friends 10:31:53.754282 Response sent (56 bytes) and written to log/3/server.response 10:31:53.754409 special request received, no persistency 10:31:53.754474 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 39492 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 599 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind599 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind599 Hmmm, the tests are taking a while to finish. Here is the status: runtests.pl internal state: 8 busy test runner(s) of 8 Runner 1 (id 73508) running test 600 in state 3 Runner 2 (id 73509) running test 603 in state 3 Runner 3 (id 73510) running test 605 in state 3 Runner 4 (id 73511) running test 602 in state 3 Runner 5 (id 73512) running test 604 in state 3 Runner 6 (id 73513) running test 583 in state 3 Runner 7 (id 73514) running test 601 in state 3 Runner 8 (id 73515) running test 582 in state 3 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/8/server/ssh_server.pid" --logdir "log/8" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 46715 startnew: child process has died, server might start up RUN: failed to start the SSH server on 46715 test 0582 SKIPPED: failed starting SSH server test 0606 SKIPPED: failed starting SSH server test 0607 SKIPPED: failed starting SSH server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/6/server/ssh_server.pid" --logdir "log/6" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 34855 startnew: child process has died, server might start up RUN: failed to start the SSH server on 34855 test 0632...[SFTP syntactically invalid host key] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind632 ../src/curl -q --output log/6/curl632.out --include --trace-ascii log/6/trace632 --trace-time --hostpubmd5 00 --key log/6/server/curl_client_key --pubkey log/6/server/curl_client_key.pub -u builduser: sftp://127.0.0.1:47/build/curl/src/build-curl/tests/log/6/irrelevant-file --insecure > log/6/stdout632 2> log/6/stderr632 curl returned 1, when expecting 2 632: exit FAILED == Contents of files in the log/6/ dir after test 632 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind632 ../src/curl -q --output log/6/curl632.out --include --trace-ascii log/6/trace632 --trace-time --hostpubmd5 00 --key log/6/server/curl_client_key --pubkey log/6/server/curl_client_key.pub -u builduser: sftp://127.0.0.1:47/build/curl/src/build-curl/tests/log/6/irrelevant-file --insecure > log/6/stdout632 2> log/6/stderr632 === End of file commands.log === Start of file server.cmd Testnum 632 === End of file server.cmd === Start of file valgrind632 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind643 ./libtest/libtests lib643 http://127.0.0.1:36007/643 > log/8/stdout643 2> log/8/stderr643 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind645 ./libtest/libtests lib643 http://127.0.0.1:33363/645 > log/6/stdout645 2> log/6/stderr645 uture ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind632 test 0643...[HTTP multi-part mimepost using read callback for the file part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind643 ./libtest/libtests lib643 http://127.0.0.1:36007/643 > log/8/stdout643 2> log/8/stderr643 643: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 643 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind643 ./libtest/libtests lib643 http://127.0.0.1:36007/643 > log/8/stdout643 2> log/8/stderr643 === End of file commands.log === Start of file http_server.log 10:32:07.392801 ====> Client connect 10:32:07.393085 accept_connection 3 returned 4 10:32:07.393241 accept_connection 3 returned 0 10:32:07.393357 Read 93 bytes 10:32:07.393424 Process 93 bytes request 10:32:07.393498 Got request: GET /verifiedserver HTTP/1.1 10:32:07.393561 Are-we-friendly question received 10:32:07.393767 Wrote request (93 bytes) input to log/8/server.input 10:32:07.393899 Identifying ourselves as friends 10:32:07.394383 Response sent (56 bytes) and written to log/8/server.response 10:32:07.394483 special request received, no persistency 10:32:07.394539 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 59012 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 643 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind643 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind643 test 0645...[HTTP multi-part chunked mimepost using read callback for the file part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind645 ./libtest/libtests lib643 http://127.0.0.1:33363/645 > log/6/stdout645 2> log/6/stderr645 645: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 645 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind645 ./libtest/libtests lib643 http://127.0.0.1:33363/645 > log/6/stdout645 2> log/6/stderr645 === End of file commands.log === Start of file http_server.log 10:32:07.876323 ====> Client connect 10:32:07.876589 accept_connection 3 returned 4 10:32:07.876752 accept_connection 3 returned 0 10:32:07.876861 Read 93 bytes 10:32:07.876937 Process 93 bytes request 10:32:07.877017 Got request: GET /verifiedserver HTTP/1.1 10:32:07.877096 Are-we-friendly question received 10:32:07.877322 Wrote request (93 bytes) input to log/6/server.input 10:32:07.877488 Identifying ourselves as friends 10:32:07.878130 Response sent (56 bytes) and written to log/6/server.response 10:32:07.878253 special request received, no persistency 10:32:07.878309 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 54808 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 645 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind645 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind645 startnew: /usr/biCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind646 ../src/curl -q --output log/8/curl646.out --include --trace-ascii log/8/trace646 --trace-time smtp://127.0.0.1:38345/646 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=(;type=multipart/alternative" -F "= This is the html version;headers=X-test1: this is a header;type=text/html;headers=X-test2: this is another header " -F "=This is the plain text version;headers=@log/8/headers646" -F "=)" -F "=@log/8/test646.txt;headers=" log/8/stdout646 2> log/8/stderr646 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind647 ../src/curl -q --output log/6/curl647.out --include --trace-ascii log/6/trace647 --trace-time imap://127.0.0.1:34025/647 -F "=(;type=multipart/alternative" -F "= This is the html version;type=text/html" -F "=This is the plain text version" -F "=)" -F "=@log/6/test647.txt" -H "Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)" -H "From: Fred Foobar " -H "To: joe@example.com" -H "Message-Id: " -H "Subject: afternoon meeting" -u user:secret > log/6/stdout647 2> log/6/stderr647 n/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/1/server/ssh_server.pid" --logdir "log/1" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 44403 startnew: child process has died, server might start up RUN: failed to start the SSH server on 44403 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/8/server/smtp_server.pid" --logfile "log/8/smtp_server.log" --logdir "log/8" --portfile "log/8/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38345 (log/8/server/smtp_server.port) RUN: SMTP server is PID 107099 port 38345 * pid smtp => 107099 107099 test 0646...[SMTP multipart using mime API] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind646 ../src/curl -q --output log/8/curl646.out --include --trace-ascii log/8/trace646 --trace-time smtp://127.0.0.1:38345/646 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=(;type=multipart/alternative" -F "= This is the html version;headers=X-test1: this is a header;type=text/html;headers=X-test2: this is another header " -F "=This is the plain text version;headers=@log/8/headers646" -F "=)" -F "=@log/8/test646.txt;headers=" log/8/stdout646 2> log/8/stderr646 646: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 646 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind646 ../src/curl -q --output log/8/curl646.out --include --trace-ascii log/8/trace646 --trace-time smtp://127.0.0.1:38345/646 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=(;type=multipart/alternative" -F "= This is the html version;headers=X-test1: this is a header;type=text/html;headers=X-test2: this is another header " -F "=This is the plain text version;headers=@log/8/headers646" -F "=)" -F "=@log/8/test646.txt;headers=" log/8/stdout646 2> log/8/stderr646 === End of file commands.log === Start of file headers646 # This line is a comment X-fileheader1: This is a header from a file # This line is another comment. It precedes a folded header. X-fileheader2: This is #a folded header === End of file headers646 === Start of file server.cmd Testnum 646 === End of file server.cmd === Start of file smtp_server.log 10:32:08.771777 SMTP server listens on port IPv4/38345 10:32:08.772509 logged pid 107099 in log/8/server/smtp_server.pid 10:32:08.772736 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:08.439785 Running IPv4 version 10:32:08.440361 Listening on port 38345 10:32:08.440630 Wrote pid 107145 to log/8/server/smtp_sockfilt.pid 10:32:08.440837 Wrote port 38345 to log/8/server/smtp_server.port 10:32:08.440959 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-646 From: different To: another body === End of file stdin-for-646 === Start of file test646.txt This is an attached file. It may contain any type of data. === End of file test646.txt === Start of file valgrind646 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind646 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/7/server/ssh_server.pid" --logdir "log/7" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 36785 startnew: child process has died, server might start up RUN: failed to start the SSH server on 36785 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/4/server/ssh_server.pid" --logdir "log/4" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 42023 startnew: child process has died, server might start up RUN: failed to start the SSH server on 42023 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/2/server/ssh_server.pid" --logdir "log/2" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 43117 startnew: child process has died, server might start up RUN: failed to start the SSH server on 43117 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/6/server/imap_server.pid" --logfile "log/6/imap_server.log" --logdir "log/6" --portfile "log/6/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34025 (log/6/server/imap_server.port) RUN: IMAP server is PID 107147 port 34025 * pid imap => 107147 107147 test 0647...[IMAP APPEND multipart using mime API] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind647 ../src/curl -q --output log/6/curl647.out --include --trace-ascii log/6/trace647 --trace-time imap://127.0.0.1:34025/647 -F "=(;type=multipart/alternative" -F "= This is the html version;type=text/html" -F "=This is the plain text version" -F "=)" -F "=@log/6/test647.txt" -H "Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)" -H "From: Fred Foobar " -H "To: joe@example.com" -H "Message-Id: " -H "Subject: afternoon meeting" -u user:secret > log/6/stdout647 2> log/6/stderr647 647: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 647 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind647 ../src/curl -q --output log/6/curl647.out --include --trace-ascii log/6/trace647 --trace-time imap://127.0.0.1:34025/647 -F "=(;type=multipart/alternative" -F "= This is the html version;type=text/html" -F "=This is the plain text version" -F "=)" -F "=@log/6/test647.txt" -H "Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)" -H "From: Fred Foobar " -H "To: joe@example.com" -H "Message-Id: log/8/stdout649 2> log/8/stderr649 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind650 ./libtest/libtests lib650 http://127.0.0.1:40129/650 log/7/test650.filedata log/7/stdout650 2> log/7/stderr650 0100000@example.com>" -H "Subject: afternoon meeting" -u user:secret > log/6/stdout647 2> log/6/stderr647 === End of file commands.log === Start of file imap_server.log 10:32:09.276114 IMAP server listens on port IPv4/34025 10:32:09.276797 logged pid 107147 in log/6/server/imap_server.pid 10:32:09.277016 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:09.944191 Running IPv4 version 10:32:09.944725 Listening on port 34025 10:32:09.944989 Wrote pid 107148 to log/6/server/imap_sockfilt.pid 10:32:09.945172 Wrote port 34025 to log/6/server/imap_server.port 10:32:09.945290 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 647 === End of file server.cmd === Start of file test647.txt This is an attached file. It may contain any type of data. === End of file test647.txt === Start of file valgrind647 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind647 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/3/server/ssh_server.pid" --logdir "log/3" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 32875 startnew: child process has died, server might start up RUN: failed to start the SSH server on 32875 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/sshserver.pl --verbose --pidfile "log/5/server/ssh_server.pid" --logdir "log/5" --ipv4 --addr "127.0.0.1" --user "builduser" --sshport 37181 startnew: child process has died, server might start up RUN: failed to start the SSH server on 37181 test 0649...[SMTP multipart with 7bit encoder error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind649 ../src/curl -q --output log/8/curl649.out --include --trace-ascii log/8/trace649 --trace-time smtp://127.0.0.1:38345/649 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is valid;encoder=7bit' -F "=@log/8/test649.txt;encoder=7bit" -H "From: different" -H "To: another" log/8/stdout649 2> log/8/stderr649 649: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 649 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind649 ../src/curl -q --output log/8/curl649.out --include --trace-ascii log/8/trace649 --trace-time smtp://127.0.0.1:38345/649 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is valid;encoder=7bit' -F "=@log/8/test649.txt;encoder=7bit" -H "From: different" -H "To: another" log/8/stdout649 2> log/8/stderr649 === End of file commands.log === Start of file server.cmd Testnum 649 === End of file server.cmd === Start of file smtp_server.log 10:32:10.190984 ====> Client connect 10:32:10.192312 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:10.194505 < "EHLO verifiedserver" 10:32:10.194976 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:10.204588 < "HELP" 10:32:10.205026 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:10.205248 return proof we are we 10:32:10.208377 < "QUIT" 10:32:10.208853 > "221 curl ESMTP server signing off[CR][LF]" 10:32:10.214293 MAIN sockfilt said DISC 10:32:10.214715 ====> Client disconnected 10:32:10.215282 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:09.859273 ====> Client connect 10:32:09.861958 Received DATA (on stdin) 10:32:09.862243 > 160 bytes data, server => client 10:32:09.862370 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:09.862454 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:09.862518 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:09.863274 < 21 bytes data, client => server 10:32:09.863488 'EHLO verifiedserver\r\n' 10:32:09.864683 Received DATA (on stdin) 10:32:09.864829 > 53 bytes data, server => client 10:32:09.864919 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:09.868860 < 6 bytes data, client => server 10:32:09.868966 'HELP\r\n' 10:32:09.875423 Received DATA (on stdin) 10:32:09.875652 > 22 bytes data, server => client 10:32:09.875743 '214 WE ROOLZ: 107099\r\n' 10:32:09.877357 < 6 bytes data, client => server 10:32:09.877594 'QUIT\r\n' 10:32:09.878520 Received DATA (on stdin) 10:32:09.878713 > 35 bytes data, server => client 10:32:09.878811 '221 curl ESMTP server signing off\r\n' 10:32:09.883552 ====> Client disconnect 10:32:09.884435 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-649 From: different To: another body === End of file stdin-for-649 === Start of file test649.txt This is an attached file (in french: pièce jointe). It contains at least an 8-bit byte value. === End of file test649.txt === Start of file valgrind649 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind649 test 0650...[HTTP formpost using form API - with redirect and re-POST] ../libtool --mode=execute /usCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind651 ./libtest/libtests lib651 http://127.0.0.1:36757/651 log/4/test651.filedata log/4/stdout651 2> log/4/stderr651 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind653 ./libtest/libtests lib653 http://127.0.0.1:33363/653 > log/6/stdout653 2> log/6/stderr653 r/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind650 ./libtest/libtests lib650 http://127.0.0.1:40129/650 log/7/test650.filedata log/7/stdout650 2> log/7/stderr650 650: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 650 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind650 ./libtest/libtests lib650 http://127.0.0.1:40129/650 log/7/test650.filedata log/7/stdout650 2> log/7/stderr650 === End of file commands.log === Start of file http_server.log 10:32:09.868232 ====> Client connect 10:32:09.868542 accept_connection 3 returned 4 10:32:09.868726 accept_connection 3 returned 0 10:32:09.868868 Read 93 bytes 10:32:09.868957 Process 93 bytes request 10:32:09.869050 Got request: GET /verifiedserver HTTP/1.1 10:32:09.869132 Are-we-friendly question received 10:32:09.869362 Wrote request (93 bytes) input to log/7/server.input 10:32:09.869522 Identifying ourselves as friends 10:32:09.870136 Response sent (56 bytes) and written to log/7/server.response 10:32:09.870269 special request received, no persistency 10:32:09.870334 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 59288 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 650 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file stdin-for-650 Some data from stdin === End of file stdin-for-650 === Start of file test650.filedata This is data from a file. === End of file test650.filedata === Start of file valgrind650 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind650 test 0651...[curl_formadd with huge COPYCONTENTS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind651 ./libtest/libtests lib651 http://127.0.0.1:36757/651 log/4/test651.filedata log/4/stdout651 2> log/4/stderr651 651: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 651 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind651 ./libtest/libtests lib651 http://127.0.0.1:36757/651 log/4/test651.filedata log/4/stdout651 2> log/4/stderr651 === End of file commands.log === Start of file http_server.log 10:32:11.206736 ====> Client connect 10:32:11.207048 accept_connection 3 returned 4 10:32:11.207353 accept_connection 3 returned 0 10:32:11.207520 Read 93 bytes 10:32:11.207612 Process 93 bytes request 10:32:11.207698 Got request: GET /verifiedserver HTTP/1.1 10:32:11.207773 Are-we-friendly question received 10:32:11.208019 Wrote request (93 bytes) input to log/4/server.input 10:32:11.208196 Identifying ourselves as friends 10:32:11.208841 Response sent (56 bytes) and written to log/4/server.response 10:32:11.209002 special request received, no persistency 10:32:11.209071 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40854 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 651 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file stdin-for-651 Some data from stdin === End of file stdin-for-651 === Start of file test651.filedata This is data from a file. === End of file test651.filedata === Start of file valgrind651 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind651 test 0653...[Reuse of handle after altering mime data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind653 ./libtest/libtests lib653 http://127.0.0.1:33363/653 > log/6/stdout653 2> log/6/stdeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind655 ./libtest/libtests lib655 http://failthis/655 http://127.0.0.1:41733/655 > log/5/stdout655 2> log/5/stderr655 rr653 653: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 653 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind653 ./libtest/libtests lib653 http://127.0.0.1:33363/653 > log/6/stdout653 2> log/6/stderr653 === End of file commands.log === Start of file http_server.log 10:32:10.503023 ====> Client connect 10:32:10.503565 accept_connection 3 returned 4 10:32:10.503812 accept_connection 3 returned 0 10:32:10.503957 Read 93 bytes 10:32:10.504033 Process 93 bytes request 10:32:10.504111 Got request: GET /verifiedserver HTTP/1.1 10:32:10.504198 Are-we-friendly question received 10:32:10.504418 Wrote request (93 bytes) input to log/6/server.input 10:32:10.504562 Identifying ourselves as friends 10:32:10.505150 Response sent (56 bytes) and written to log/6/server.response 10:32:10.505293 special request received, no persistency 10:32:10.505359 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 49468 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 653 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind653 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind653 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind658 ./libtest/libtests lib658 http://127.0.0.1:36007/658 > log/8/stdout658 2> log/8/stderr658 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind654 ./libtest/libtests lib654 http://127.0.0.1:36933/654 log/3/file654.txt > log/3/stdout654 2> log/3/stderr654 test 0655...[resolver start callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind655 ./libtest/libtests lib655 http://failthis/655 http://127.0.0.1:41733/655 > log/5/stdout655 2> log/5/stderr655 655: data FAILED: --- log/5/check-expected 2025-09-11 10:32:11.748686477 +0000 +++ log/5/check-generated 2025-09-11 10:32:11.744686398 +0000 @@ -1 +0,0 @@ -hello[LF] == Contents of files in the log/5/ dir after test 655 === Start of file check-expected hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind655 ./libtest/libtests lib655 http://failthis/655 http://127.0.0.1:41733/655 > log/5/stdout655 2> log/5/stderr655 === End of file commands.log === Start of file http_server.log 10:32:11.689931 ====> Client connect 10:32:11.690329 accept_connection 3 returned 4 10:32:11.690557 accept_connection 3 returned 0 10:32:11.690725 Read 93 bytes 10:32:11.690861 Process 93 bytes request 10:32:11.690984 Got request: GET /verifiedserver HTTP/1.1 10:32:11.691065 Are-we-friendly question received 10:32:11.691598 Wrote request (93 bytes) input to log/5/server.input 10:32:11.691936 Identifying ourselves as friends 10:32:11.693100 Response sent (56 bytes) and written to log/5/server.response 10:32:11.693354 special request received, no persistency 10:32:11.693446 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 49342 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 655 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind655 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind655 test 0658...[Pass URL to libcurl with CURLOPT_CURLU] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind658 ./libtest/libtests lib658 http://127.0.0.1:36007/658 > log/8/stdout658 2> log/8/stderr658 658: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 658 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind658 ./libtest/libtests lib658 http://127.0.0.1:36007/658 > log/8/stdout658 2> log/8/stderr658 === End of file commands.log === Start of file http_server.log 10:32:10.748943 ====> Client connect 10:32:10.749226 accept_connection 3 returned 4 10:32:10.749399 accept_connection 3 returned 0 10:32:10.749519 Read 93 bytes 10:32:10.749592 Process 93 bytes request 10:32:10.749672 Got request: GET /verifiedserver HTTP/1.1 10:32:10.749733 Are-we-friendly question received 10:32:10.749942 Wrote request (93 bytes) input to log/8/server.input 10:32:10.750108 Identifying ourselves as friends 10:32:10.750668 Response sent (56 bytes) and written to log/8/server.response 10:32:10.750782 special request received, no persistency 10:32:10.750844 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 59146 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 658 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind658 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind658 test 0654...[HTTP duplicate easy handle with mime data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind654 ./libtest/libtests lib654 http://127.0.0.1:36933/654 log/3/file654.txt > log/3/stdout654 2> log/3/stderr654 654: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 654 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind648 ../src/curl -q --output log/1/curl648.out --include --trace-ascii log/1/trace648 --trace-time smtp://127.0.0.1:42637/648 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is the email inline text with a very long line containing the special character = and that should be split by encoder.;headers=Content-disposition: "inline";encoder=quoted-printable' -F "=@log/1/test648.txt;encoder=base64" -H "From: different" -H "To: another" log/1/stdout648 2> log/1/stderr648 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind659 ./libtest/libtests lib659 http://127.0.0.1:40129 > log/7/stdout659 2> log/7/stderr659 eak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind654 ./libtest/libtests lib654 http://127.0.0.1:36933/654 log/3/file654.txt > log/3/stdout654 2> log/3/stderr654 === End of file commands.log === Start of file file654.txt This is data from a file === End of file file654.txt === Start of file http_server.log 10:32:10.620980 ====> Client connect 10:32:10.621290 accept_connection 3 returned 4 10:32:10.621474 accept_connection 3 returned 0 10:32:10.621612 Read 93 bytes 10:32:10.621740 Process 93 bytes request 10:32:10.621844 Got request: GET /verifiedserver HTTP/1.1 10:32:10.621922 Are-we-friendly question received 10:32:10.622167 Wrote request (93 bytes) input to log/3/server.input 10:32:10.622381 Identifying ourselves as friends 10:32:10.623378 Response sent (56 bytes) and written to log/3/server.response 10:32:10.623599 special request received, no persistency 10:32:10.623705 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 32984 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 654 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind654 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind654 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/1/server/smtp_server.pid" --logfile "log/1/smtp_server.log" --logdir "log/1" --portfile "log/1/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42637 (log/1/server/smtp_server.port) RUN: SMTP server is PID 107206 port 42637 * pid smtp => 107206 107206 test 0648...[SMTP multipart with transfer content encoders] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind648 ../src/curl -q --output log/1/curl648.out --include --trace-ascii log/1/trace648 --trace-time smtp://127.0.0.1:42637/648 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is the email inline text with a very long line containing the special character = and that should be split by encoder.;headers=Content-disposition: "inline";encoder=quoted-printable' -F "=@log/1/test648.txt;encoder=base64" -H "From: different" -H "To: another" log/1/stdout648 2> log/1/stderr648 648: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 648 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind648 ../src/curl -q --output log/1/curl648.out --include --trace-ascii log/1/trace648 --trace-time smtp://127.0.0.1:42637/648 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is the email inline text with a very long line containing the special character = and that should be split by encoder.;headers=Content-disposition: "inline";encoder=quoted-printable' -F "=@log/1/test648.txt;encoder=base64" -H "From: different" -H "To: another" log/1/stdout648 2> log/1/stderr648 === End of file commands.log === Start of file server.cmd Testnum 648 === End of file server.cmd === Start of file smtp_server.log 10:32:10.465634 SMTP server listens on port IPv4/42637 10:32:10.466662 logged pid 107206 in log/1/server/smtp_server.pid 10:32:10.467006 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:10.133127 Running IPv4 version 10:32:10.133751 Listening on port 42637 10:32:10.134150 Wrote pid 107314 to log/1/server/smtp_sockfilt.pid 10:32:10.134432 Wrote port 42637 to log/1/server/smtp_server.port 10:32:10.134603 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-648 From: different To: another body === End of file stdin-for-648 === Start of file test648.txt This is an attached file. It may contain any type of data and will be encoded in base64 for transfer. === End of file test648.txt === Start of file valgrind648 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind648 test 0659...[CURLOPT_CURLU without the path set - over proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind659 ./libtest/libtests lib659 http://127.0.0.1:40129 > log/7/stdout659 2> log/7/stderr659 659: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 659CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind661 ./libtest/libtests lib661 ftp://127.0.0.1:33323/ > log/6/stdout661 2> log/6/stderr661 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind659 ./libtest/libtests lib659 http://127.0.0.1:40129 > log/7/stdout659 2> log/7/stderr659 === End of file commands.log === Start of file http_server.log 10:32:10.964519 ====> Client connect 10:32:10.964853 accept_connection 3 returned 4 10:32:10.965060 accept_connection 3 returned 0 10:32:10.965196 Read 93 bytes 10:32:10.965285 Process 93 bytes request 10:32:10.965393 Got request: GET /verifiedserver HTTP/1.1 10:32:10.965472 Are-we-friendly question received 10:32:10.965708 Wrote request (93 bytes) input to log/7/server.input 10:32:10.965882 Identifying ourselves as friends 10:32:10.966594 Response sent (56 bytes) and written to log/7/server.response 10:32:10.966760 special request received, no persistency 10:32:10.966830 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 59294 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 659 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind659 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind659 test 0661...[Avoid redundant CWDs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind661 ./libtest/libtests lib661 ftp://127.0.0.1:33323/ > log/6/stdout661 2> log/6/stderr661 661: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 661 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind661 ./libtest/libtests lib661 ftp://127.0.0.1:33323/ > log/6/stdout661 2> log/6/stderr661 === End of file commands.log === Start of file ftp_server.log 10:32:11.809029 ====> Client connect 10:32:11.810902 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:11.815093 < "USER anonymous" 10:32:11.815824 > "331 We are happy you popped in![CR][LF]" 10:32:11.819861 < "PASS ftp@example.com" 10:32:11.821353 > "230 Welcome you silly person[CR][LF]" 10:32:11.825243 < "PWD" 10:32:11.826269 > "257 "/" is current directory[CR][LF]" 10:32:11.830278 < "EPSV" 10:32:11.830846 ====> Passive DATA channel requested by client 10:32:11.831256 DATA sockfilt for passive data channel starting... 10:32:11.844389 DATA sockfilt for passive data channel started (pid 107843) 10:32:11.847639 DATA sockfilt for passive data channel listens on port 36143 10:32:11.848245 > "229 Entering Passive Mode (|||36143|)[LF]" 10:32:11.848524 Client has been notified that DATA conn will be accepted on port 36143 10:32:11.852848 Client connects to port 36143 10:32:11.853260 ====> Client established passive DATA connection on port 36143 10:32:11.854583 < "TYPE I" 10:32:11.855166 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:11.858351 < "SIZE verifiedserver" 10:32:11.859619 > "213 17[CR][LF]" 10:32:11.862333 < "RETR verifiedserver" 10:32:11.862894 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:11.863773 =====> Closing passive DATA connection... 10:32:11.864154 Server disconnects passive DATA connection 10:32:11.866730 Server disconnected passive DATA connection 10:32:11.867153 DATA sockfilt for passive data channel quits (pid 107843) 10:32:11.869118 DATA sockfilt for passive data channel quit (pid 107843) 10:32:11.869455 =====> Closed passive DATA connection 10:32:11.870174 > "226 File transfer complete[CR][LF]" 10:32:11.907581 < "QUIT" 10:32:11.908036 > "221 bye bye baby[CR][LF]" 10:32:11.917675 MAIN sockfilt said DISC 10:32:11.918479 ====> Client disconnected 10:32:11.921279 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:12.477951 ====> Client connect 10:32:12.480513 Received DATA (on stdin) 10:32:12.480885 > 160 bytes data, server => client 10:32:12.481053 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:12.481165 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:12.481259 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:12.482572 < 16 bytes data, client => server 10:32:12.482917 'USER anonymous\r\n' 10:32:12.486205 Received DATA (on stdin) 10:32:12.486530 > 33 bytes data, server => client 10:32:12.486700 '331 We are happy you popped in!\r\n' 10:32:12.488040 < 22 bytes data, client => server 10:32:12.488313 'PASS ftp@example.com\r\n' 10:32:12.490290 Received DATA (on stdin) 10:32:12.490534 > 30 bytes data, server => client 10:32:12.491299 '230 Welcome you silly person\r\n' 10:32:12.493266 < 5 bytes data, client => server 10:32:12.493552 'PWD\r\n' 10:32:12.496548 Received DATA (on stdin) 10:32:12.496825 > 30 bytes data, server => client 10:32:12.497037 '257 "/" is current directory\r\n' 10:32:12.498229 < 6 bytes data, client => server 10:32:12.498469 'EPSV\r\n' 10:32:12.517914 Received DATA (on stdin) 10:32:12.518105 > 38 bytes data, server => client 10:32:12.518216 '229 Entering Passive Mode (|||36143|)\n' 10:32:12.521900 < 8 bytes data, client => server 10:32:12.522163 'TYPE I\r\n' 10:32:12.525281 Received DATA (on stdin) 10:32:12.525550 > 33 bytes data, server => client 10:32:12.525698 '200 I modify TYPE as you wanted\r\n' 10:32:12.526563 < 21 bytes data, client => server 10:32:12.526814 'SIZE verifiedserver\r\n' 10:32:12.528723 Received DATA (on stdin) 10:32:12.528958 > 8 bytes data, server => client 10:32:12.529741 '213 17\r\n' 10:32:12.530819 < 21 bytes data, client => server 10:32:12.531024 'RETR verifiedserver\r\n' 10:32:12.534187 Received DATA (on stdin) 10:32:12.534397 > 29 bytes data, server => client 10:32:12.534496 '150 Binary junk (17 bytes).\r\n' 10:32:12.540252 Received DATA (on stdin) 10:32:12.540481 > 28 bytes data, server => clieCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind662 ../src/curl -q --output log/5/curl662.out --include --trace-ascii log/5/trace662 --trace-time http://example.com/please/gimme/662 -L -x http://127.0.0.1:41733 > log/5/stdout662 2> log/5/stderr662 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind663 ../src/curl -q --output log/8/curl663.out --include --trace-ascii log/8/trace663 --trace-time http://example.com/please/../gimme/663?foobar#hello -L -x http://127.0.0.1:36007 > log/8/stdout663 2> log/8/stderr663 nt 10:32:12.540637 '226 File transfer complete\r\n' 10:32:12.576126 < 6 bytes data, client => server 10:32:12.576352 'QUIT\r\n' 10:32:12.579230 Received DATA (on stdin) 10:32:12.579472 > 18 bytes data, server => client 10:32:12.579569 '221 bye bye baby\r\n' 10:32:12.583312 ====> Client disconnect 10:32:12.588669 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:11.511808 Running IPv4 version 10:32:11.512701 Listening on port 36143 10:32:11.513314 Wrote pid 107843 to log/6/server/ftp_sockdata.pid 10:32:11.513586 Received PING (on stdin) 10:32:11.515223 Received PORT (on stdin) 10:32:11.521001 ====> Client connect 10:32:11.534973 Received DATA (on stdin) 10:32:11.535280 > 17 bytes data, server => client 10:32:11.535414 'WE ROOLZ: 79480\r\n' 10:32:11.535799 Received DISC (on stdin) 10:32:11.535999 ====> Client forcibly disconnected 10:32:11.537211 Received QUIT (on stdin) 10:32:11.537434 quits 10:32:11.537882 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 661 === End of file server.cmd === Start of file valgrind661 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind661 test 0662...[HTTP redirect with whitespace in absolute Location: URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind662 ../src/curl -q --output log/5/curl662.out --include --trace-ascii log/5/trace662 --trace-time http://example.com/please/gimme/662 -L -x http://127.0.0.1:41733 > log/5/stdout662 2> log/5/stderr662 662: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 662 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind662 ../src/curl -q --output log/5/curl662.out --include --trace-ascii log/5/trace662 --trace-time http://example.com/please/gimme/662 -L -x http://127.0.0.1:41733 > log/5/stdout662 2> log/5/stderr662 === End of file commands.log === Start of file http_server.log 10:32:12.616486 ====> Client connect 10:32:12.616909 accept_connection 3 returned 4 10:32:12.617125 accept_connection 3 returned 0 10:32:12.617280 Read 93 bytes 10:32:12.617380 Process 93 bytes request 10:32:12.617475 Got request: GET /verifiedserver HTTP/1.1 10:32:12.617568 Are-we-friendly question received 10:32:12.617823 Wrote request (93 bytes) input to log/5/server.input 10:32:12.618010 Identifying ourselves as friends 10:32:12.618742 Response sent (56 bytes) and written to log/5/server.response 10:32:12.618898 special request received, no persistency 10:32:12.618974 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 49352 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 662 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind662 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind662 test 0663...[HTTP redirect with dotdots and whitespaces in absolute Location: URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind663 ../src/curl -q --output log/8/curl663.out --include --trace-ascii log/8/trace663 --trace-time http://example.com/please/../gimme/663?foobar#hello -L -x http://127.0.0.1:36007 > log/8/stdout663 2> log/8/stderr663 663: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 663 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind663 ../src/curl -q --output log/8/curl663.out --include --trace-ascii log/8/trace663 --trace-time http://example.com/please/../gimme/663?foobar#hello -L -x http://127.0.0.1:36007 > log/8/stdout663 2> log/8/stderr663 === End of file commands.log === Start of file http_server.log 10:32:11.632402 ====> Client connect 10:32:11.632747 accept_connection 3 returned 4 10:32:11.632962 accept_connection 3 returned 0 10:32:11.633126 Read 93 bytes 10:32:11.633228 Process 93 bytes request 10:32:11.633324 Got request: GET /verifiedserver HTTP/1.1 10:32:11.633404 Are-we-friendly question received 10:32:11.633688 Wrote request (93 bytes) input to log/8/server.input 10:32:11.633891 Identifying ourselves as friends 10:32:11.634640 Response sent (56 bytes) and written to log/8/server.response 10:32:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind667 ./libtest/libtests lib667 http://127.0.0.1:36129/667 > log/1/stdout667 2> log/1/stderr667 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind652 ./libtest/libtests lib652 smtp://127.0.0.1:40329/652 > log/2/stdout652 2> log/2/stderr652 11.634787 special request received, no persistency 10:32:11.634858 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 59156 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 663 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind663 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind663 test 0667...[HTTP chunked mimepost using single-byte read callback with encoder] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind667 ./libtest/libtests lib667 http://127.0.0.1:36129/667 > log/1/stdout667 2> log/1/stderr667 667: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 667 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind667 ./libtest/libtests lib667 http://127.0.0.1:36129/667 > log/1/stdout667 2> log/1/stderr667 === End of file commands.log === Start of file http_server.log 10:32:11.751919 ====> Client connect 10:32:11.752252 accept_connection 3 returned 4 10:32:11.752424 accept_connection 3 returned 0 10:32:11.752546 Read 93 bytes 10:32:11.752624 Process 93 bytes request 10:32:11.752707 Got request: GET /verifiedserver HTTP/1.1 10:32:11.752773 Are-we-friendly question received 10:32:11.752995 Wrote request (93 bytes) input to log/1/server.input 10:32:11.753171 Identifying ourselves as friends 10:32:11.753857 Response sent (56 bytes) and written to log/1/server.response 10:32:11.754003 special request received, no persistency 10:32:11.754060 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 36088 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 667 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind667 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind667 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/2/server/smtp_server.pid" --logfile "log/2/smtp_server.log" --logdir "log/2" --portfile "log/2/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40329 (log/2/server/smtp_server.port) RUN: SMTP server is PID 107342 port 40329 * pid smtp => 107342 107342 test 0652...[SMTP with encoded huge mime data contents] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind652 ./libtest/libtests lib652 smtp://127.0.0.1:40329/652 > log/2/stdout652 2> log/2/stderr652 652: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 652 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind652 ./libtest/libtests lib652 smtp://127.0.0.1:40329/652 > log/2/stdout652 2> log/2/stderr652 === End of file commands.log === Start of file server.cmd Testnum 652 === End of file server.cmd === Start of file smtp_server.log 10:32:11.058143 SMTP server listens on port IPv4/40329 10:32:11.059238 logged pid 107342 in log/2/server/smtp_server.pid 10:32:11.059644 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:11.721076 Running IPv4 version 10:32:11.721732 Listening on port 40329 10:32:11.722372 Wrote pid 107522 to log/2/server/smtp_sockfilt.pid 10:32:11.722894 Wrote port 40329 to log/2/server/smtp_server.port 10:32:11.723183 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind652 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind660 ./libtest/libtests lib597 imap://127.0.0.1:45271/660 > log/4/stdout660 2> log/4/stderr660 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind668 ./libtest/libtests lib668 http://127.0.0.1:40129/668 log/7/file668.txt > log/7/stdout668 2> log/7/stderr668 nd: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind652 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/4/server/imap_server.pid" --logfile "log/4/imap_server.log" --logdir "log/4" --portfile "log/4/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45271 (log/4/server/imap_server.port) RUN: IMAP server is PID 107654 port 45271 * pid imap => 107654 107654 test 0660...[IMAP CONNECT_ONLY option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind660 ./libtest/libtests lib597 imap://127.0.0.1:45271/660 > log/4/stdout660 2> log/4/stderr660 660: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 660 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind660 ./libtest/libtests lib597 imap://127.0.0.1:45271/660 > log/4/stdout660 2> log/4/stderr660 === End of file commands.log === Start of file imap_server.log 10:32:11.920494 IMAP server listens on port IPv4/45271 10:32:11.921782 logged pid 107654 in log/4/server/imap_server.pid 10:32:11.922192 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:11.587670 Running IPv4 version 10:32:11.588226 Listening on port 45271 10:32:11.588720 Wrote pid 107874 to log/4/server/imap_sockfilt.pid 10:32:11.589152 Wrote port 45271 to log/4/server/imap_server.port 10:32:11.589333 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 660 === End of file server.cmd === Start of file valgrind660 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind660 test 0668...[HTTP mimepost early end of data detection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind668 ./libtest/libtests lib668 http://127.0.0.1:40129/668 log/7/file668.txt > log/7/stdout668 2> log/7/stderr668 668: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 668 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind668 ./libtest/libtests lib668 http://127.0.0.1:40129/668 log/7/file668.txt > log/7/stdout668 2> log/7/stderr668 === End of file commands.log === Start of file file668.txt This is data from a file === End of file file668.txt === Start of file http_server.log 10:32:11.920532 ====> Client connect 10:32:11.920883 accept_connection 3 returned 4 10:32:11.921095 accept_connection 3 returned 0 10:32:11.921249 Read 93 bytes 10:32:11.921350 Process 93 bytes request 10:32:11.921445 Got request: GET /verifiedserver HTTP/1.1 10:32:11.921529 Are-we-friendly question received 10:32:11.921723 Wrote request (93 bytes) input to log/7/server.input 10:32:11.921890 Identifying ourselves as friends 10:32:11.922548 Response sent (56 bytes) and written to log/7/server.response 10:32:11.922694 special request received, no persistency 10:32:11.922769 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 59300 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 668 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind668 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind666 ./libtest/libtests lib666 http://127.0.0.1:36933/666 > log/3/stdout666 2> log/3/stderr666 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind669 ../src/curl -q --output log/6/curl669.out --include --trace-ascii log/6/trace669 --trace-time http://127.0.0.1:33363/we/want/669 -H 'Content-type: multipart/form-data; charset=utf-8' -F name=daniel -F tool=curl > log/6/stdout669 2> log/6/stderr669 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind670 ./libtest/libtests lib670 http://127.0.0.1:41733/670 > log/5/stdout670 2> log/5/stderr670 system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind668 test 0666...[HTTP mime post with binary-encoded huge data contents] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind666 ./libtest/libtests lib666 http://127.0.0.1:36933/666 > log/3/stdout666 2> log/3/stderr666 666: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 666 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind666 ./libtest/libtests lib666 http://127.0.0.1:36933/666 > log/3/stdout666 2> log/3/stderr666 === End of file commands.log === Start of file http_server.log 10:32:11.714477 ====> Client connect 10:32:11.714786 accept_connection 3 returned 4 10:32:11.714945 accept_connection 3 returned 0 10:32:11.715062 Read 93 bytes 10:32:11.715256 Process 93 bytes request 10:32:11.715347 Got request: GET /verifiedserver HTTP/1.1 10:32:11.715414 Are-we-friendly question received 10:32:11.715630 Wrote request (93 bytes) input to log/3/server.input 10:32:11.715776 Identifying ourselves as friends 10:32:11.716351 Response sent (56 bytes) and written to log/3/server.response 10:32:11.716479 special request received, no persistency 10:32:11.716542 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 32998 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 666 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind666 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind666 test 0669...[HTTP custom Content-Type with parameter] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind669 ../src/curl -q --output log/6/curl669.out --include --trace-ascii log/6/trace669 --trace-time http://127.0.0.1:33363/we/want/669 -H 'Content-type: multipart/form-data; charset=utf-8' -F name=daniel -F tool=curl > log/6/stdout669 2> log/6/stderr669 669: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 669 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind669 ../src/curl -q --output log/6/curl669.out --include --trace-ascii log/6/trace669 --trace-time http://127.0.0.1:33363/we/want/669 -H 'Content-type: multipart/form-data; charset=utf-8' -F name=daniel -F tool=curl > log/6/stdout669 2> log/6/stderr669 === End of file commands.log === Start of file http_server.log 10:32:12.530296 ====> Client connect 10:32:12.530685 accept_connection 3 returned 4 10:32:12.530950 accept_connection 3 returned 0 10:32:12.531199 Read 93 bytes 10:32:12.531365 Process 93 bytes request 10:32:12.531505 Got request: GET /verifiedserver HTTP/1.1 10:32:12.531629 Are-we-friendly question received 10:32:12.531937 Wrote request (93 bytes) input to log/6/server.input 10:32:12.532171 Identifying ourselves as friends 10:32:12.533019 Response sent (56 bytes) and written to log/6/server.response 10:32:12.533219 special request received, no persistency 10:32:12.533311 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 49474 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 669 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind669 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind669 test 0670...[Request pause from mime read callback: multi] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind670 ./libtCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind671 ./libtest/libtests lib670 http://127.0.0.1:36007/671 > log/8/stdout671 2> log/8/stderr671 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind672 ./libtest/libtests lib670 http://127.0.0.1:36129/672 > log/1/stdout672 2> log/1/stderr672 est/libtests lib670 http://127.0.0.1:41733/670 > log/5/stdout670 2> log/5/stderr670 670: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 670 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind670 ./libtest/libtests lib670 http://127.0.0.1:41733/670 > log/5/stdout670 2> log/5/stderr670 === End of file commands.log === Start of file http_server.log 10:32:13.630207 ====> Client connect 10:32:13.630611 accept_connection 3 returned 4 10:32:13.630818 accept_connection 3 returned 0 10:32:13.630977 Read 93 bytes 10:32:13.631139 Process 93 bytes request 10:32:13.631280 Got request: GET /verifiedserver HTTP/1.1 10:32:13.631383 Are-we-friendly question received 10:32:13.631698 Wrote request (93 bytes) input to log/5/server.input 10:32:13.631912 Identifying ourselves as friends 10:32:13.632856 Response sent (56 bytes) and written to log/5/server.response 10:32:13.633022 special request received, no persistency 10:32:13.633103 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 49354 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 670 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind670 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind670 test 0671...[Request pause from mime read callback: easy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind671 ./libtest/libtests lib670 http://127.0.0.1:36007/671 > log/8/stdout671 2> log/8/stderr671 671: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 671 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind671 ./libtest/libtests lib670 http://127.0.0.1:36007/671 > log/8/stdout671 2> log/8/stderr671 === End of file commands.log === Start of file http_server.log 10:32:12.695581 ====> Client connect 10:32:12.696038 accept_connection 3 returned 4 10:32:12.696317 accept_connection 3 returned 0 10:32:12.696476 Read 93 bytes 10:32:12.696597 Process 93 bytes request 10:32:12.696693 Got request: GET /verifiedserver HTTP/1.1 10:32:12.696772 Are-we-friendly question received 10:32:12.697056 Wrote request (93 bytes) input to log/8/server.input 10:32:12.697326 Identifying ourselves as friends 10:32:12.698192 Response sent (56 bytes) and written to log/8/server.response 10:32:12.698370 special request received, no persistency 10:32:12.698456 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 59164 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 671 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind671 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind671 test 0672...[Request pause from form read callback: multi] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind672 ./libtest/libtests lib670 http://127.0.0.1:36129/672 > log/1/stdout672 2> log/1/stderr672 672: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 672 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind672 ./libtest/libtests lib670 http://127.0.0.1:36129/672 > log/1/stdout672 2> log/1/stderr672 === End of file commands.log === Start of file http_server.log 10:32:12.783540 ====> Client connect 10:32:12.783946 accept_connection 3 returned 4 10:32:12.784188 accept_connection 3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind673 ./libtest/libtests lib670 http://127.0.0.1:43789/673 > log/2/stdout673 2> log/2/stderr673 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind674 ./libtest/libtests lib674 http://127.0.0.1:36757/674 > log/4/stdout674 2> log/4/stderr674 returned 0 10:32:12.784395 Read 93 bytes 10:32:12.784513 Process 93 bytes request 10:32:12.784607 Got request: GET /verifiedserver HTTP/1.1 10:32:12.784688 Are-we-friendly question received 10:32:12.785038 Wrote request (93 bytes) input to log/1/server.input 10:32:12.785297 Identifying ourselves as friends 10:32:12.786106 Response sent (56 bytes) and written to log/1/server.response 10:32:12.786260 special request received, no persistency 10:32:12.786355 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 36102 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 672 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind672 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind672 test 0673...[Request pause from form read callback: easy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind673 ./libtest/libtests lib670 http://127.0.0.1:43789/673 > log/2/stdout673 2> log/2/stderr673 673: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 673 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind673 ./libtest/libtests lib670 http://127.0.0.1:43789/673 > log/2/stdout673 2> log/2/stderr673 === End of file commands.log === Start of file http_server.log 10:32:12.794464 ====> Client connect 10:32:12.794777 accept_connection 3 returned 4 10:32:12.794961 accept_connection 3 returned 0 10:32:12.795202 Read 93 bytes 10:32:12.795362 Process 93 bytes request 10:32:12.795464 Got request: GET /verifiedserver HTTP/1.1 10:32:12.795535 Are-we-friendly question received 10:32:12.795819 Wrote request (93 bytes) input to log/2/server.input 10:32:12.796090 Identifying ourselves as friends 10:32:12.803826 Response sent (56 bytes) and written to log/2/server.response 10:32:12.804007 special request received, no persistency 10:32:12.804091 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 56688 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 673 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind673 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind673 test 0674...[Set CURLOPT_CURLU and dupe the handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind674 ./libtest/libtests lib674 http://127.0.0.1:36757/674 > log/4/stdout674 2> log/4/stderr674 674: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 674 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind674 ./libtest/libtests lib674 http://127.0.0.1:36757/674 > log/4/stdout674 2> log/4/stderr674 === End of file commands.log === Start of file http_server.log 10:32:13.943512 ====> Client connect 10:32:13.943944 accept_connection 3 returned 4 10:32:13.944173 accept_connection 3 returned 0 10:32:13.945054 Read 93 bytes 10:32:13.945247 Process 93 bytes request 10:32:13.945352 Got request: GET /verifiedserver HTTP/1.1 10:32:13.945434 Are-we-friendly question received 10:32:13.945726 Wrote request (93 bytes) input to log/4/server.input 10:32:13.945928 Identifying ourselves as friends 10:32:13.946587 Response sent (56 bytes) and written to log/4/server.response 10:32:13.946730 special request received, no persistency 10:32:13.946804 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40866 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: cCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind675 ../src/curl -q --output log/7/curl675.out --include --trace-ascii log/7/trace675 --trace-time http://user1:foo1@127.0.0.1:40129/user1/675 http://user2:foo2@127.0.0.1:40129/user2/675 > log/7/stdout675 2> log/7/stderr675 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind676 ./libtest/libtests lib676 http://127.0.0.1:36933/we/want/676 log/3/cookies676 > log/3/stdout676 2> log/3/stderr676 url/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 674 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind674 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind674 test 0675...[HTTP connection reuse and different credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind675 ../src/curl -q --output log/7/curl675.out --include --trace-ascii log/7/trace675 --trace-time http://user1:foo1@127.0.0.1:40129/user1/675 http://user2:foo2@127.0.0.1:40129/user2/675 > log/7/stdout675 2> log/7/stderr675 675: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 675 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind675 ../src/curl -q --output log/7/curl675.out --include --trace-ascii log/7/trace675 --trace-time http://user1:foo1@127.0.0.1:40129/user1/675 http://user2:foo2@127.0.0.1:40129/user2/675 > log/7/stdout675 2> log/7/stderr675 === End of file commands.log === Start of file http_server.log 10:32:12.977857 ====> Client connect 10:32:12.978152 accept_connection 3 returned 4 10:32:12.978315 accept_connection 3 returned 0 10:32:12.978438 Read 93 bytes 10:32:12.978514 Process 93 bytes request 10:32:12.978591 Got request: GET /verifiedserver HTTP/1.1 10:32:12.978654 Are-we-friendly question received 10:32:12.978857 Wrote request (93 bytes) input to log/7/server.input 10:32:12.979049 Identifying ourselves as friends 10:32:12.979840 Response sent (56 bytes) and written to log/7/server.response 10:32:12.979980 special request received, no persistency 10:32:12.980058 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 59310 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 675 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind675 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind675 test 0676...[verify setting CURLOPT_COOKIEFILE to NULL again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind676 ./libtest/libtests lib676 http://127.0.0.1:36933/we/want/676 log/3/cookies676 > log/3/stdout676 2> log/3/stderr676 676: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 676 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind676 ./libtest/libtests lib676 http://127.0.0.1:36933/we/want/676 log/3/cookies676 > log/3/stdout676 2> log/3/stderr676 === End of file commands.log === Start of file cookies676 127.0.0.1 TRUE /we/want/ FALSE 22118138987 proven yes === End of file cookies676 === Start of file http_server.log 10:32:13.127584 ====> Client connect 10:32:13.128009 accept_connection 3 returned 4 10:32:13.128229 accept_connection 3 returned 0 10:32:13.128380 Read 93 bytes 10:32:13.128475 Process 93 bytes request 10:32:13.128573 Got request: GET /verifiedserver HTTP/1.1 10:32:13.128661 Are-we-friendly question received 10:32:13.128948 Wrote request (93 bytes) input to log/3/server.input 10:32:13.135771 Identifying ourselves as friends 10:32:13.136799 Response sent (56 bytes) and written to log/3/server.response 10:32:13.136980 special request received, no persistency 10:32:13.137083 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 33008 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 676 === End of file server.cmd === StCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind680 ../src/curl -q --output log/8/curl680.out --include --trace-ascii log/8/trace680 --trace-time --netrc --netrc-file log/8/netrc680 http://user1@http.example/ > log/8/stdout680 2> log/8/stderr680 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind677 ./libtest/libtests lib677 imap://127.0.0.1:34025/677 > log/6/stdout677 2> log/6/stderr677 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind679 ../src/curl -q --output log/5/curl679.out --include --trace-ascii log/5/trace679 --trace-time --netrc-optional --netrc-file log/5/netrc679 http://127.0.0.1:41733/ > log/5/stdout679 2> log/5/stderr679 art of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind676 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind676 test 0680...[netrc with quoted password but missing end quote] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind680 ../src/curl -q --output log/8/curl680.out --include --trace-ascii log/8/trace680 --trace-time --netrc --netrc-file log/8/netrc680 http://user1@http.example/ > log/8/stdout680 2> log/8/stderr680 curl returned 1, when expecting 26 680: exit FAILED == Contents of files in the log/8/ dir after test 680 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind680 ../src/curl -q --output log/8/curl680.out --include --trace-ascii log/8/trace680 --trace-time --netrc --netrc-file log/8/netrc680 http://user1@http.example/ > log/8/stdout680 2> log/8/stderr680 === End of file commands.log === Start of file netrc680 machine 127.0.0.1 login user1 password "with spaces and \"\n\r\t\a === End of file netrc680 === Start of file server.cmd Testnum 680 === End of file server.cmd === Start of file valgrind680 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind680 test 0677...[IMAP with CONNECT_ONLY, custom command then exit] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind677 ./libtest/libtests lib677 imap://127.0.0.1:34025/677 > log/6/stdout677 2> log/6/stderr677 677: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 677 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind677 ./libtest/libtests lib677 imap://127.0.0.1:34025/677 > log/6/stdout677 2> log/6/stderr677 === End of file commands.log === Start of file imap_server.log 10:32:13.900384 ====> Client connect 10:32:13.902267 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:13.905391 < "A001 CAPABILITY" 10:32:13.906304 > "A001 BAD Command[CR][LF]" 10:32:13.908780 < "A002 LIST "verifiedserver" *" 10:32:13.909448 LIST_imap got "verifiedserver" * 10:32:13.910260 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:13.910797 > "A002 OK LIST Completed[CR][LF]" 10:32:13.911134 return proof we are we 10:32:13.965897 < "A003 LOGOUT" 10:32:13.966455 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:13.966808 > "A003 OK LOGOUT completed[CR][LF]" 10:32:13.974005 MAIN sockfilt said DISC 10:32:13.974392 ====> Client disconnected 10:32:13.974914 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:14.569334 ====> Client connect 10:32:14.571847 Received DATA (on stdin) 10:32:14.572225 > 178 bytes data, server => client 10:32:14.572392 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:14.572489 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:14.572572 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:14.572648 'rve\r\n' 10:32:14.573654 < 17 bytes data, client => server 10:32:14.573925 'A001 CAPABILITY\r\n' 10:32:14.575934 Received DATA (on stdin) 10:32:14.576188 > 18 bytes data, server => client 10:32:14.576317 'A001 BAD Command\r\n' 10:32:14.577245 < 30 bytes data, client => server 10:32:14.577568 'A002 LIST "verifiedserver" *\r\n' 10:32:14.583402 Received DATA (on stdin) 10:32:14.583720 > 34 bytes data, server => client 10:32:14.583880 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:14.584293 Received DATA (on stdin) 10:32:14.584514 > 24 bytes data, server => client 10:32:14.584621 'A002 OK LIST Completed\r\n' 10:32:14.628574 < 13 bytes data, client => server 10:32:14.628737 'A003 LOGOUT\r\n' 10:32:14.636095 Received DATA (on stdin) 10:32:14.636300 > 36 bytes data, server => client 10:32:14.636445 '* BYE curl IMAP server signing off\r\n' 10:32:14.636784 Received DATA (on stdin) 10:32:14.636972 > 26 bytes data, server => client 10:32:14.637077 'A003 OK LOGOUT completed\r\n' 10:32:14.643175 ====> Client disconnect 10:32:14.644028 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 677 === End of file server.cmd === Start of file valgrind677 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short termCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind681 ../src/curl -q --trace-ascii log/1/trace681 --trace-time --remote-name-all --no-remote-name --output-dir log http://127.0.0.1:36129/681 > log/1/stdout681 2> log/1/stderr681 ): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind677 test 0679...[netrc with quoted password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind679 ../src/curl -q --output log/5/curl679.out --include --trace-ascii log/5/trace679 --trace-time --netrc-optional --netrc-file log/5/netrc679 http://127.0.0.1:41733/ > log/5/stdout679 2> log/5/stderr679 679: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 679 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind679 ../src/curl -q --output log/5/curl679.out --include --trace-ascii log/5/trace679 --trace-time --netrc-optional --netrc-file log/5/netrc679 http://127.0.0.1:41733/ > log/5/stdout679 2> log/5/stderr679 === End of file commands.log === Start of file http_server.log 10:32:14.631743 ====> Client connect 10:32:14.632122 accept_connection 3 returned 4 10:32:14.632332 accept_connection 3 returned 0 10:32:14.632482 Read 93 bytes 10:32:14.632564 Process 93 bytes request 10:32:14.632645 Got request: GET /verifiedserver HTTP/1.1 10:32:14.632712 Are-we-friendly question received 10:32:14.632945 Wrote request (93 bytes) input to log/5/server.input 10:32:14.633105 Identifying ourselves as friends 10:32:14.633792 Response sent (56 bytes) and written to log/5/server.response 10:32:14.633912 special request received, no persistency 10:32:14.633972 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 49362 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file netrc679 machine 127.0.0.1 login user1 password "with spaces and \"\n\r\t\a" === End of file netrc679 === Start of file server.cmd Testnum 679 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind679 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind679 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind682 ../src/curl -q --output log/2/curl682.out --include --trace-ascii log/2/trace682 --trace-time --netrc-optional --netrc-file log/2/netrc682 http://user1@127.0.0.1:43789/ > log/2/stdout682 2> log/2/stderr682 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind683 ../src/curl -q --output log/4/curl683.out --include --trace-ascii log/4/trace683 --trace-time --netrc-optional --netrc-file log/4/netrc683 http://user2@127.0.0.1:36757/ > log/4/stdout683 2> log/4/stderr683 test 0681...[--remote-name-all with --no-remote-name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind681 ../src/curl -q --trace-ascii log/1/trace681 --trace-time --remote-name-all --no-remote-name --output-dir log http://127.0.0.1:36129/681 > log/1/stdout681 2> log/1/stderr681 681: stdout FAILED: --- log/1/check-expected 2025-09-11 10:32:14.932749859 +0000 +++ log/1/check-generated 2025-09-11 10:32:14.932749859 +0000 @@ -1 +0,0 @@ --foo-[LF] == Contents of files in the log/1/ dir after test 681 === Start of file check-expected -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind681 ../src/curl -q --trace-ascii log/1/trace681 --trace-time --remote-name-all --no-remote-name --output-dir log http://127.0.0.1:36129/681 > log/1/stdout681 2> log/1/stderr681 === End of file commands.log === Start of file http_server.log 10:32:13.787812 ====> Client connect 10:32:13.788318 accept_connection 3 returned 4 10:32:13.788598 accept_connection 3 returned 0 10:32:13.788783 Read 93 bytes 10:32:13.788908 Process 93 bytes request 10:32:13.789023 Got request: GET /verifiedserver HTTP/1.1 10:32:13.789118 Are-we-friendly question received 10:32:13.789463 Wrote request (93 bytes) input to log/1/server.input 10:32:13.789716 Identifying ourselves as friends 10:32:13.790738 Response sent (56 bytes) and written to log/1/server.response 10:32:13.790989 special request received, no persistency 10:32:13.791712 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 36104 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 681 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind681 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind681 test 0682...[netrc with multiple logins - pick first] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind682 ../src/curl -q --output log/2/curl682.out --include --trace-ascii log/2/trace682 --trace-time --netrc-optional --netrc-file log/2/netrc682 http://user1@127.0.0.1:43789/ > log/2/stdout682 2> log/2/stderr682 682: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 682 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind682 ../src/curl -q --output log/2/curl682.out --include --trace-ascii log/2/trace682 --trace-time --netrc-optional --netrc-file log/2/netrc682 http://user1@127.0.0.1:43789/ > log/2/stdout682 2> log/2/stderr682 === End of file commands.log === Start of file http_server.log 10:32:13.807836 ====> Client connect 10:32:13.808142 accept_connection 3 returned 4 10:32:13.808328 accept_connection 3 returned 0 10:32:13.808455 Read 93 bytes 10:32:13.808542 Process 93 bytes request 10:32:13.808626 Got request: GET /verifiedserver HTTP/1.1 10:32:13.808688 Are-we-friendly question received 10:32:13.808897 Wrote request (93 bytes) input to log/2/server.input 10:32:13.809052 Identifying ourselves as friends 10:32:13.809699 Response sent (56 bytes) and written to log/2/server.response 10:32:13.809802 special request received, no persistency 10:32:13.809868 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 56702 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file netrc682 machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc682 === Start of file server.cmd Testnum 682 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind682 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind682 test 0683...[netrc with multiple logins - pick second] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind684 ../src/curl -q --output log/7/curl684.out --include --trace-ascii log/7/trace684 --trace-time --netrc-optional --netrc-file log/7/netrc684 http://127.0.0.1:40129/ > log/7/stdout684 2> log/7/stderr684 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind685 ../src/curl -q --output log/3/curl685.out --include --trace-ascii log/3/trace685 --trace-time --netrc-optional --netrc-file log/3/netrc685 http://user@127.0.0.1:36933/ > log/3/stdout685 2> log/3/stderr685 --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind683 ../src/curl -q --output log/4/curl683.out --include --trace-ascii log/4/trace683 --trace-time --netrc-optional --netrc-file log/4/netrc683 http://user2@127.0.0.1:36757/ > log/4/stdout683 2> log/4/stderr683 683: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 683 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind683 ../src/curl -q --output log/4/curl683.out --include --trace-ascii log/4/trace683 --trace-time --netrc-optional --netrc-file log/4/netrc683 http://user2@127.0.0.1:36757/ > log/4/stdout683 2> log/4/stderr683 === End of file commands.log === Start of file http_server.log 10:32:14.867710 ====> Client connect 10:32:14.868089 accept_connection 3 returned 4 10:32:14.868288 accept_connection 3 returned 0 10:32:14.868431 Read 93 bytes 10:32:14.868529 Process 93 bytes request 10:32:14.868632 Got request: GET /verifiedserver HTTP/1.1 10:32:14.868711 Are-we-friendly question received 10:32:14.869058 Wrote request (93 bytes) input to log/4/server.input 10:32:14.869299 Identifying ourselves as friends 10:32:14.870146 Response sent (56 bytes) and written to log/4/server.response 10:32:14.870309 special request received, no persistency 10:32:14.870397 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40876 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file netrc683 machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc683 === Start of file server.cmd Testnum 683 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind683 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind683 test 0684...[netrc with no login] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind684 ../src/curl -q --output log/7/curl684.out --include --trace-ascii log/7/trace684 --trace-time --netrc-optional --netrc-file log/7/netrc684 http://127.0.0.1:40129/ > log/7/stdout684 2> log/7/stderr684 684: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 684 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind684 ../src/curl -q --output log/7/curl684.out --include --trace-ascii log/7/trace684 --trace-time --netrc-optional --netrc-file log/7/netrc684 http://127.0.0.1:40129/ > log/7/stdout684 2> log/7/stderr684 === End of file commands.log === Start of file http_server.log 10:32:13.977247 ====> Client connect 10:32:13.977552 accept_connection 3 returned 4 10:32:13.977757 accept_connection 3 returned 0 10:32:13.977901 Read 93 bytes 10:32:13.978007 Process 93 bytes request 10:32:13.978120 Got request: GET /verifiedserver HTTP/1.1 10:32:13.978200 Are-we-friendly question received 10:32:13.978472 Wrote request (93 bytes) input to log/7/server.input 10:32:13.978678 Identifying ourselves as friends 10:32:13.979631 Response sent (56 bytes) and written to log/7/server.response 10:32:13.979807 special request received, no persistency 10:32:13.979880 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 59314 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file netrc684 machine 127.0.0.1 password 5up3r53cr37 === End of file netrc684 === Start of file server.cmd Testnum 684 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind684 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind684 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind686 ../src/curl -q --output log/8/curl686.out --include --trace-ascii log/8/trace686 --trace-time htdhdhdtp://localhost --next > log/8/stdout686 2> log/8/stderr686 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind689 ./libtest/libtests lib567 rtsp://127.0.0.1:38449/689 > log/6/stdout689 2> log/6/stderr689 test 0685...[netrc with no login - provided user] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind685 ../src/curl -q --output log/3/curl685.out --include --trace-ascii log/3/trace685 --trace-time --netrc-optional --netrc-file log/3/netrc685 http://user@127.0.0.1:36933/ > log/3/stdout685 2> log/3/stderr685 685: data FAILED: --- log/3/check-expected 2025-09-11 10:32:15.388758936 +0000 +++ log/3/check-generated 2025-09-11 10:32:15.388758936 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Fri, 05 Aug 2022 10:09:00 GMT[LF] -Server: test-server/fake[LF] -Content-Type: text/plain[LF] -Content-Length: 6[LF] -Connection: close[LF] -[LF] --foo-[LF] == Contents of files in the log/3/ dir after test 685 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Fri, 05 Aug 2022 10:09:00 GMT[LF] Server: test-server/fake[LF] Content-Type: text/plain[LF] Content-Length: 6[LF] Connection: close[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind685 ../src/curl -q --output log/3/curl685.out --include --trace-ascii log/3/trace685 --trace-time --netrc-optional --netrc-file log/3/netrc685 http://user@127.0.0.1:36933/ > log/3/stdout685 2> log/3/stderr685 === End of file commands.log === Start of file http_server.log 10:32:14.199169 ====> Client connect 10:32:14.199626 accept_connection 3 returned 4 10:32:14.199846 accept_connection 3 returned 0 10:32:14.200014 Read 93 bytes 10:32:14.200128 Process 93 bytes request 10:32:14.200233 Got request: GET /verifiedserver HTTP/1.1 10:32:14.200331 Are-we-friendly question received 10:32:14.200608 Wrote request (93 bytes) input to log/3/server.input 10:32:14.200816 Identifying ourselves as friends 10:32:14.201451 Response sent (56 bytes) and written to log/3/server.response 10:32:14.201602 special request received, no persistency 10:32:14.201687 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 33010 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file netrc685 machine 127.0.0.1 password 5up3r53cr37 === End of file netrc685 === Start of file server.cmd Testnum 685 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind685 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind685 test 0686...[verify return code for missing URL after --next] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind686 ../src/curl -q --output log/8/curl686.out --include --trace-ascii log/8/trace686 --trace-time htdhdhdtp://localhost --next > log/8/stdout686 2> log/8/stderr686 curl returned 1, when expecting 2 686: exit FAILED == Contents of files in the log/8/ dir after test 686 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind686 ../src/curl -q --output log/8/curl686.out --include --trace-ascii log/8/trace686 --trace-time htdhdhdtp://localhost --next > log/8/stdout686 2> log/8/stderr686 === End of file commands.log === Start of file server.cmd Testnum 686 === End of file server.cmd === Start of file valgrind686 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind686 test 0689...[fuzzing crash issue #12701] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind689 ./libtest/libtests lib567 rtsp://127.0.0.1:38449/689 > log/6/stdout689 2> log/6/stderr689 689: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 689 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind689 ./libtest/libtests lib567 rtsp://127.0.0.1:38449/689 > log/6/stdout689 2> log/6/stderr689 === End of file commands.log === Start of file rtsp_server.log 10:32:14.660280 ====> Client connect 10:32:14.660650 Read 93 bytes 10:32:14.660791 rtspd_ProcessRequest() called with testno -7 and line [GET /verifiedserver HTTP/1.1 Host: 127.0.0.1:38449 User-Agent: curl/8.16.0 Accept: */* ] 10:32:14.660923 Got request: GET /verifiedserver HTTP/1.1 10:32:14.661023 Are-we-friendly question received 10:32:14.661309 Wrote request (93 bytes) input to log/6/server.input 10:3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind690 ../src/curl -q --include --trace-ascii log/5/trace690 --trace-time http://127.0.0.1:41733/ -O --output-dir log/5 > log/5/stdout690 2> log/5/stderr690 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind691 ../src/curl -q --include --trace-ascii log/1/trace691 --trace-time http://127.0.0.1:36129/path/to/here/ -O --output-dir log/1 > log/1/stdout691 2> log/1/stderr691 2:14.661550 Send response number -2 part 0 10:32:14.661631 Identifying ourselves as friends 10:32:14.662067 Sent off 69 bytes 10:32:14.662314 Response sent (69 bytes) and written to log/6/server.response 10:32:14.662391 special request received, no persistency 10:32:14.662448 ====> Client disconnect === End of file rtsp_server.log === Start of file rtsp_verify.log * Trying 127.0.0.1:38449... * Established connection to 127.0.0.1 (127.0.0.1 port 38449) from 127.0.0.1 port 58756 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38449 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 30 < { [30 bytes data] * Connection #0 to host 127.0.0.1:38449 left intact === End of file rtsp_verify.log === Start of file rtsp_verify.out RTSP_SERVER WE ROOLZ: 104917 === End of file rtsp_verify.out === Start of file server.cmd Testnum 689 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 30 RTSP_SERVER WE ROOLZ: 104917 === End of file server.response === Start of file valgrind689 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind689 test 0690...[-O with URL without path using trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind690 ../src/curl -q --include --trace-ascii log/5/trace690 --trace-time http://127.0.0.1:41733/ -O --output-dir log/5 > log/5/stdout690 2> log/5/stderr690 690: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 690 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind690 ../src/curl -q --include --trace-ascii log/5/trace690 --trace-time http://127.0.0.1:41733/ -O --output-dir log/5 > log/5/stdout690 2> log/5/stderr690 === End of file commands.log === Start of file http_server.log 10:32:15.692492 ====> Client connect 10:32:15.692906 accept_connection 3 returned 4 10:32:15.693149 accept_connection 3 returned 0 10:32:15.693326 Read 93 bytes 10:32:15.693455 Process 93 bytes request 10:32:15.693623 Got request: GET /verifiedserver HTTP/1.1 10:32:15.693710 Are-we-friendly question received 10:32:15.693985 Wrote request (93 bytes) input to log/5/server.input 10:32:15.694178 Identifying ourselves as friends 10:32:15.695003 Response sent (56 bytes) and written to log/5/server.response 10:32:15.695334 special request received, no persistency 10:32:15.695444 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 49372 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 690 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind690 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind690 test 0691...[-O with URL with path using trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind691 ../src/curl -q --include --trace-ascii log/1/trace691 --trace-time http://127.0.0.1:36129/path/to/here/ -O --output-dir log/1 > log/1/stdout691 2> log/1/stderr691 691: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 691 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind691 ../src/curl -q --include --trace-ascii log/1/trace691 --trace-time http://127.0.0.1:36129/path/to/here/ -O --output-dir log/1 > log/1/stdout691 2> log/1/stderr691 === End of file commands.log === Start of file http_server.log 10:32:14.820192 ====> Client connect 10:32:14.820517 accept_connection 3 returned 4 10:32:14.820718 accept_connection 3 returned 0 10:32:14.820877 Read 93 bytes 10:32:14.820994 Process 93 bytes request 10:32:14.821091 Got request: GET /verifiedserver HTTP/1.1 10:32:14.821166 Are-we-friendly question received 10:32:14.821453 Wrote request (93 bytes) input to log/1/server.input 10:32:14.821683 Identifying ourselves as friends 10:32:14.822517 Response sent (56 bytes) and written to log/1/server.response 10:32:14.822674 special request received, no persistency 10:32:14.822752 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind692 ../src/curl -q --trace-ascii log/2/trace692 --trace-time http://127.0.0.1:43789/ -JO --output-dir log/2 > log/2/stdout692 2> log/2/stderr692 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind693 ../src/curl -q --output log/4/curl693.out --include --trace-ascii log/4/trace693 --trace-time http://127.0.0.1:36757/693 --etag-save log/4/moo/boo/etag693 --create-dirs > log/4/stdout693 2> log/4/stderr693 0.0.1 port 36110 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 691 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind691 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind691 test 0692...[-JO with URL without path using trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind692 ../src/curl -q --trace-ascii log/2/trace692 --trace-time http://127.0.0.1:43789/ -JO --output-dir log/2 > log/2/stdout692 2> log/2/stderr692 692: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 692 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind692 ../src/curl -q --trace-ascii log/2/trace692 --trace-time http://127.0.0.1:43789/ -JO --output-dir log/2 > log/2/stdout692 2> log/2/stderr692 === End of file commands.log === Start of file http_server.log 10:32:14.894489 ====> Client connect 10:32:14.894870 accept_connection 3 returned 4 10:32:14.895175 accept_connection 3 returned 0 10:32:14.895374 Read 93 bytes 10:32:14.895477 Process 93 bytes request 10:32:14.895602 Got request: GET /verifiedserver HTTP/1.1 10:32:14.895702 Are-we-friendly question received 10:32:14.896025 Wrote request (93 bytes) input to log/2/server.input 10:32:14.896296 Identifying ourselves as friends 10:32:14.897218 Response sent (56 bytes) and written to log/2/server.response 10:32:14.897384 special request received, no persistency 10:32:14.897467 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 56712 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 692 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind692 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind692 test 0693...[--etag-save with --create-dirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind693 ../src/curl -q --output log/4/curl693.out --include --trace-ascii log/4/trace693 --trace-time http://127.0.0.1:36757/693 --etag-save log/4/moo/boo/etag693 --create-dirs > log/4/stdout693 2> log/4/stderr693 693: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 693 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind693 ../src/curl -q --output log/4/curl693.out --include --trace-ascii log/4/trace693 --trace-time http://127.0.0.1:36757/693 --etag-save log/4/moo/boo/etag693 --create-dirs > log/4/stdout693 2> log/4/stderr693 === End of file commands.log === Start of file http_server.log 10:32:15.870934 ====> Client connect 10:32:15.871641 accept_connection 3 returned 4 10:32:15.871859 accept_connection 3 returned 0 10:32:15.871984 Read 93 bytes 10:32:15.872066 Process 93 bytes request 10:32:15.872152 Got request: GET /verifiedserver HTTP/1.1 10:32:15.872223 Are-we-friendly question received 10:32:15.872469 Wrote request (93 bytes) input to log/4/server.input 10:32:15.872658 Identifying ourselves as friends 10:32:15.873539 Response sent (56 bytes) and written to log/4/server.response 10:32:15.873749 special request received, no persistency 10:32:15.873846 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40892 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind694 ./libtest/libtests lib694 http://127.0.0.1:40129/path/mine http://127.0.0.1:40129/path/6940010 > log/7/stdout694 2> log/7/stderr694 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind695 ./libtest/libtests lib695 http://127.0.0.1:36933/we/want/695 > log/3/stdout695 2> log/3/stderr695 693 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind693 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind693 test 0694...[HTTP with NTLM twice, verify CURLINFO_HTTPAUTH_USED] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind694 ./libtest/libtests lib694 http://127.0.0.1:40129/path/mine http://127.0.0.1:40129/path/6940010 > log/7/stdout694 2> log/7/stderr694 694: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 694 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind694 ./libtest/libtests lib694 http://127.0.0.1:40129/path/mine http://127.0.0.1:40129/path/6940010 > log/7/stdout694 2> log/7/stderr694 === End of file commands.log === Start of file http_server.log 10:32:14.985517 ====> Client connect 10:32:14.985790 accept_connection 3 returned 4 10:32:14.985981 accept_connection 3 returned 0 10:32:14.986116 Read 93 bytes 10:32:14.986189 Process 93 bytes request 10:32:14.986276 Got request: GET /verifiedserver HTTP/1.1 10:32:14.986346 Are-we-friendly question received 10:32:14.986593 Wrote request (93 bytes) input to log/7/server.input 10:32:14.986756 Identifying ourselves as friends 10:32:14.987469 Response sent (56 bytes) and written to log/7/server.response 10:32:14.987619 special request received, no persistency 10:32:14.987695 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 59316 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 694 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind694 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind694 test 0695...[MIME parts reuse as a child part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind695 ./libtest/libtests lib695 http://127.0.0.1:36933/we/want/695 > log/3/stdout695 2> log/3/stderr695 695: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 695 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind695 ./libtest/libtests lib695 http://127.0.0.1:36933/we/want/695 > log/3/stdout695 2> log/3/stderr695 === End of file commands.log === Start of file http_server.log 10:32:15.274000 ====> Client connect 10:32:15.274455 accept_connection 3 returned 4 10:32:15.274657 accept_connection 3 returned 0 10:32:15.277544 Read 93 bytes 10:32:15.277754 Process 93 bytes request 10:32:15.277860 Got request: GET /verifiedserver HTTP/1.1 10:32:15.277935 Are-we-friendly question received 10:32:15.278199 Wrote request (93 bytes) input to log/3/server.input 10:32:15.278436 Identifying ourselves as friends 10:32:15.279534 Response sent (56 bytes) and written to log/3/server.response 10:32:15.279758 special request received, no persistency 10:32:15.279896 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 33024 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 695 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind695 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp6CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind696 ./libtest/libtests lib556 http://127.0.0.1:36007 > log/8/stdout696 2> log/8/stderr696 4d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind695 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind697 ../src/curl -q --output log/6/curl697.out --include --trace-ascii log/6/trace697 --trace-time --netrc --netrc-file log/6/netrc697 http://user1@http.example/ > log/6/stdout697 2> log/6/stderr697 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind699 ../src/curl -q --output log/1/curl699.out --include --trace-ascii log/1/trace699 --trace-time http://127.0.0.1:36129/699 -K log/1/cmd > log/1/stdout699 2> log/1/stderr699 test 0696...[CONNECT_ONLY and doing a second curl_easy_perform] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind696 ./libtest/libtests lib556 http://127.0.0.1:36007 > log/8/stdout696 2> log/8/stderr696 696: stdout FAILED: --- log/8/check-expected 2025-09-11 10:32:16.448780037 +0000 +++ log/8/check-generated 2025-09-11 10:32:16.448780037 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 200 OK swsclose[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -[CR][LF] --foo-[LF] -HTTP/1.1 200 OK swsclose[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -[CR][LF] --foo-[LF] == Contents of files in the log/8/ dir after test 696 === Start of file check-expected HTTP/1.1 200 OK swsclose[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] [CR][LF] -foo-[LF] HTTP/1.1 200 OK swsclose[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] [CR][LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind696 ./libtest/libtests lib556 http://127.0.0.1:36007 > log/8/stdout696 2> log/8/stderr696 === End of file commands.log === Start of file http_server.log 10:32:15.310707 ====> Client connect 10:32:15.311182 accept_connection 3 returned 4 10:32:15.311486 accept_connection 3 returned 0 10:32:15.312833 Read 93 bytes 10:32:15.313060 Process 93 bytes request 10:32:15.313197 Got request: GET /verifiedserver HTTP/1.1 10:32:15.313313 Are-we-friendly question received 10:32:15.313666 Wrote request (93 bytes) input to log/8/server.input 10:32:15.313937 Identifying ourselves as friends 10:32:15.314941 Response sent (56 bytes) and written to log/8/server.response 10:32:15.315206 special request received, no persistency 10:32:15.315342 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 59170 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 696 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind696 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind696 test 0697...[netrc with missing netrc file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind697 ../src/curl -q --output log/6/curl697.out --include --trace-ascii log/6/trace697 --trace-time --netrc --netrc-file log/6/netrc697 http://user1@http.example/ > log/6/stdout697 2> log/6/stderr697 curl returned 1, when expecting 26 697: exit FAILED == Contents of files in the log/6/ dir after test 697 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind697 ../src/curl -q --output log/6/curl697.out --include --trace-ascii log/6/trace697 --trace-time --netrc --netrc-file log/6/netrc697 http://user1@http.example/ > log/6/stdout697 2> log/6/stderr697 === End of file commands.log === Start of file server.cmd Testnum 697 === End of file server.cmd === Start of file valgrind697 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind697 test 0699...[--config with single-letter options plus one that is cleared] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind699 ../src/curl -q --output log/1/curl699.out --include --trace-ascii log/1/trace699 --trace-time http://127.0.0.1:36129/699 -K log/1/cmd > log/1/stdout699 2> log/1/stderr699 699: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 699 === Start of file cmd -Lfuhej:you === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind699 ../src/curl -q --output log/1/curl699.out --include --trace-ascii log/1/trace699 --trace-time http://127.0.0.1:36129/699 -K log/1/cmd > log/1/stdout699 2> log/1/stderr699 === End of file commands.log === Start of fiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind698 ../src/curl -q --output log/5/curl698.out --include --trace-ascii log/5/trace698 --trace-time ftp://127.0.0.1:43393/698 --ftp-account "one count" ftp://127.0.0.1:43393/698 > log/5/stdout698 2> log/5/stderr698 le http_server.log 10:32:15.852754 ====> Client connect 10:32:15.853072 accept_connection 3 returned 4 10:32:15.853233 accept_connection 3 returned 0 10:32:15.853371 Read 93 bytes 10:32:15.853459 Process 93 bytes request 10:32:15.853553 Got request: GET /verifiedserver HTTP/1.1 10:32:15.853630 Are-we-friendly question received 10:32:15.853954 Wrote request (93 bytes) input to log/1/server.input 10:32:15.854255 Identifying ourselves as friends 10:32:15.855078 Response sent (56 bytes) and written to log/1/server.response 10:32:15.855250 special request received, no persistency 10:32:15.855334 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 36122 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 699 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind699 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind699 test 0698...[FTP with ACCT and connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind698 ../src/curl -q --output log/5/curl698.out --include --trace-ascii log/5/trace698 --trace-time ftp://127.0.0.1:43393/698 --ftp-account "one count" ftp://127.0.0.1:43393/698 > log/5/stdout698 2> log/5/stderr698 698: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 698 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind698 ../src/curl -q --output log/5/curl698.out --include --trace-ascii log/5/trace698 --trace-time ftp://127.0.0.1:43393/698 --ftp-account "one count" ftp://127.0.0.1:43393/698 > log/5/stdout698 2> log/5/stderr698 === End of file commands.log === Start of file ftp_server.log 10:32:16.113673 ====> Client connect 10:32:16.116810 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:16.120181 < "USER anonymous" 10:32:16.120828 > "331 We are happy you popped in![CR][LF]" 10:32:16.130327 < "PASS ftp@example.com" 10:32:16.131441 > "230 Welcome you silly person[CR][LF]" 10:32:16.137764 < "PWD" 10:32:16.138423 > "257 "/" is current directory[CR][LF]" 10:32:16.142971 < "EPSV" 10:32:16.143309 ====> Passive DATA channel requested by client 10:32:16.143516 DATA sockfilt for passive data channel starting... 10:32:16.158669 DATA sockfilt for passive data channel started (pid 109914) 10:32:16.160343 DATA sockfilt for passive data channel listens on port 41009 10:32:16.160990 > "229 Entering Passive Mode (|||41009|)[LF]" 10:32:16.161394 Client has been notified that DATA conn will be accepted on port 41009 10:32:16.167921 Client connects to port 41009 10:32:16.168482 ====> Client established passive DATA connection on port 41009 10:32:16.169993 < "TYPE I" 10:32:16.170771 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:16.175564 < "SIZE verifiedserver" 10:32:16.176219 > "213 17[CR][LF]" 10:32:16.179360 < "RETR verifiedserver" 10:32:16.180037 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:16.180965 =====> Closing passive DATA connection... 10:32:16.181309 Server disconnects passive DATA connection 10:32:16.183622 Server disconnected passive DATA connection 10:32:16.184015 DATA sockfilt for passive data channel quits (pid 109914) 10:32:16.188587 DATA sockfilt for passive data channel quit (pid 109914) 10:32:16.189044 =====> Closed passive DATA connection 10:32:16.189865 > "226 File transfer complete[CR][LF]" 10:32:16.223117 < "QUIT" 10:32:16.223537 > "221 bye bye baby[CR][LF]" 10:32:16.226283 MAIN sockfilt said DISC 10:32:16.226694 ====> Client disconnected 10:32:16.227240 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:15.780595 ====> Client connect 10:32:15.786502 Received DATA (on stdin) 10:32:15.786765 > 160 bytes data, server => client 10:32:15.786908 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:15.786998 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:15.787192 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:15.788029 < 16 bytes data, client => server 10:32:15.788317 'USER anonymous\r\n' 10:32:15.791639 Received DATA (on stdin) 10:32:15.791951 > 33 bytes data, server => client 10:32:15.792086 '331 We are happy you popped in!\r\n' 10:32:15.795216 < 22 bytes data, client => server 10:32:15.795465 'PASS ftp@example.com\r\n' 10:32:15.800484 Received DATA (on stdin) 10:32:15.800697 > 30 bytes data, server => client 10:32:15.801505 '230 Welcome you silly person\r\n' 10:32:15.803148 < 5 bytes data, client => server 10:32:15.803416 'PWD\r\n' 10:32:15.809046 Received DATA (on stdin) 10:32:15.809312 > 30 bytes data, server => client 10:32:15.809443 '257 "/" is current directory\r\n' 10:32:15.811776 < 6 bytes data, client => server 10:32:15.811987 'EPSV\r\n' 10:32:15.835130 Received DATA (on stdin) 10:32:15.835433 > 38 bytes data, server => client 10:32:15.835599 '229 Entering Passive Mode (|||41009|)\n' 10:32:15.837309 < 8 bytes data, client => server 10:32:15.837557 'TYPE I\r\n' 10:32:15.840327 Received DATA (on stdin) 10:32:15.840627 > 33 bytes data, server => client 10:32:15.840778 '200 I modify TYPE as you wanted\r\n' 10:32:15.843846 < 21 bytes data, client => server 10:32:15.844090 'SIZE verifiedserver\r\n' 10:32:15.845810 Received DATA (on stdin) 10:32:15.846033 > 8 bytes data, server => client 10:32:15.846164 '213 17\r\n' 10:32:15.846982 < 21 bytes data, client => server 10:32:15.847329 'RETR verifiedserver\r\n' 10:32:15.849616 Received DATA (on stdin) 10:32:15.849808 > 29 bytes data, server => client 10:32:15.849912 '150 Binary junk (17 bytes).\r\n' 10:32:15.863198 Received DATA (on stdin) 10:32:15.863513 > 28 bytes data, server => client 10:32:15.863677 '226 File transfer complete\r\n' 10:32:15.892033 < 6 bytes data, clCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind704 ../src/curl -q --output log/8/curl704.out --include --trace-ascii log/8/trace704 --trace-time --socks4 127.0.0.1:47 http://127.0.0.1:36007/704 > log/8/stdout704 2> log/8/stderr704 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind705 ../src/curl -q --output log/6/curl705.out --include --trace-ascii log/6/trace705 --trace-time --socks5 127.0.0.1:47 http://127.0.0.1:33363/705 > log/6/stdout705 2> log/6/stderr705 ient => server 10:32:15.892303 'QUIT\r\n' 10:32:15.893123 Received DATA (on stdin) 10:32:15.893296 > 18 bytes data, server => client 10:32:15.893408 '221 bye bye baby\r\n' 10:32:15.893979 ====> Client disconnect 10:32:15.896319 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:16.824689 Running IPv4 version 10:32:16.825367 Listening on port 41009 10:32:16.825864 Wrote pid 109914 to log/5/server/ftp_sockdata.pid 10:32:16.827613 Received PING (on stdin) 10:32:16.828894 Received PORT (on stdin) 10:32:16.836949 ====> Client connect 10:32:16.851155 Received DATA (on stdin) 10:32:16.851371 > 17 bytes data, server => client 10:32:16.851483 'WE ROOLZ: 79602\r\n' 10:32:16.851880 Received DISC (on stdin) 10:32:16.852084 ====> Client forcibly disconnected 10:32:16.856654 Received QUIT (on stdin) 10:32:16.856827 quits 10:32:16.857261 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 332 please provide account name REPLY ACCT 230 thank you Testnum 698 === End of file server.cmd === Start of file valgrind698 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind698 test 0704...[Attempt connect to non-listening SOCKS4 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind704 ../src/curl -q --output log/8/curl704.out --include --trace-ascii log/8/trace704 --trace-time --socks4 127.0.0.1:47 http://127.0.0.1:36007/704 > log/8/stdout704 2> log/8/stderr704 curl returned 1, when expecting 7 704: exit FAILED == Contents of files in the log/8/ dir after test 704 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind704 ../src/curl -q --output log/8/curl704.out --include --trace-ascii log/8/trace704 --trace-time --socks4 127.0.0.1:47 http://127.0.0.1:36007/704 > log/8/stdout704 2> log/8/stderr704 === End of file commands.log === Start of file http_server.log 10:32:16.273139 ====> Client connect 10:32:16.273413 accept_connection 3 returned 4 10:32:16.273571 accept_connection 3 returned 0 10:32:16.273685 Read 93 bytes 10:32:16.273758 Process 93 bytes request 10:32:16.273842 Got request: GET /verifiedserver HTTP/1.1 10:32:16.273910 Are-we-friendly question received 10:32:16.274120 Wrote request (93 bytes) input to log/8/server.input 10:32:16.274261 Identifying ourselves as friends 10:32:16.274884 Response sent (56 bytes) and written to log/8/server.response 10:32:16.275088 special request received, no persistency 10:32:16.275164 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 59186 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 704 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind704 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind704 test 0705...[Attempt connect to non-listening SOCKS5 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind705 ../src/curl -q --output log/6/curl705.out --include --trace-ascii log/6/trace705 --trace-time --socks5 127.0.0.1:47 http://127.0.0.1:33363/705 > log/6/stdout705 2> log/6/stderr705 curl returned 1, when expecting 7 705: exit FAILED == Contents of files in the log/6/ dir after test 705 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind705 ../src/curl -q --output log/6/curl705.out --include --trace-ascii log/6/trace705 --trace-time --socks5 127.0.0.1:47 http://127.0.0.1:33363/705 > log/6/stdout705 2> log/6/stderr705 === End of file commands.log === Start of file http_server.log 10:32:16.302237 ====> Client connect 10:32:16.302539 accept_connection 3 returned 4 10:32:16.302743 accept_connection 3 returned 0 10:32:16.302918 Read 93 bytes 10:32:16.303081 Process 93 bytes request 10:32:16.303187 Got request: GET /verifiedserver HTTP/1.1 10:32:16.303261 Are-we-friendly question received 10:32:16.303489 Wrote request (93 bytes) input to log/6/server.input 10:32:16.303643 Identifying ourselves as friends 10:32:16.304274 Response sent (56 bytes) and written to log/6/server.response 10:32:16.304396 special request received, no persistency 10:32:16.304475 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 49486 * using HTTP/1.x > GET /vCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind700 ../src/curl -q --output log/2/curl700.out --include --trace-ascii log/2/trace700 --trace-time --socks4 127.0.0.1:33387 http://127.0.0.1:43789/700 > log/2/stdout700 2> log/2/stderr700 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind702 ../src/curl -q --output log/7/curl702.out --include --trace-ascii log/7/trace702 --trace-time --socks4 127.0.0.1:45923 http://127.0.0.1:47 > log/7/stdout702 2> log/7/stderr702 erifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 705 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind705 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind705 startnew: ./server/servers socksd --port 0 --pidfile log/2/server/socks_server.pid --portfile log/2/server/socks_server.port --reqfile log/2/socksd-request.log --logfile log/2/socks_server.log --backend 127.0.0.1 --config log/2/server.cmd RUN: SOCKS server is now running PID 109934 * pid socks => 109934 109934 test 0700...[HTTP GET via SOCKS4 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind700 ../src/curl -q --output log/2/curl700.out --include --trace-ascii log/2/trace700 --trace-time --socks4 127.0.0.1:33387 http://127.0.0.1:43789/700 > log/2/stdout700 2> log/2/stderr700 700: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 700 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind700 ../src/curl -q --output log/2/curl700.out --include --trace-ascii log/2/trace700 --trace-time --socks4 127.0.0.1:33387 http://127.0.0.1:43789/700 > log/2/stdout700 2> log/2/stderr700 === End of file commands.log === Start of file http_server.log 10:32:15.855406 ====> Client connect 10:32:15.855759 accept_connection 3 returned 4 10:32:15.855961 accept_connection 3 returned 0 10:32:15.856088 Read 93 bytes 10:32:15.856161 Process 93 bytes request 10:32:15.856241 Got request: GET /verifiedserver HTTP/1.1 10:32:15.856307 Are-we-friendly question received 10:32:15.856528 Wrote request (93 bytes) input to log/2/server.input 10:32:15.856706 Identifying ourselves as friends 10:32:15.857381 Response sent (56 bytes) and written to log/2/server.response 10:32:15.857479 special request received, no persistency 10:32:15.857539 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 56720 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 700 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file socks_server.log 10:32:16.893840 Running IPv4 version 10:32:16.894425 Listening on port 33387 10:32:16.894916 Wrote pid 109934 to log/2/server/socks_server.pid 10:32:16.895439 Wrote port 33387 to log/2/server/socks_server.port === End of file socks_server.log === Start of file valgrind700 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind700 startnew: ./server/servers socksd --port 0 --pidfile log/7/server/socks_server.pid --portfile log/7/server/socks_server.port --reqfile log/7/socksd-request.log --logfile log/7/socks_server.log --backend 127.0.0.1 --config log/7/server.cmd RUN: SOCKS server is now running PID 109944 * pid socks => 109944 109944 test 0702...[Attempt connect to non-listening HTTP server via SOCKS4 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind702 ../src/curl -q --output log/7/curl702.out --include --trace-ascii log/7/trace702 --trace-time --socks4 127.0.0.1:45923 http://127.0.0.1:47 > log/7/stdout702 2> log/7/stderr702 curl returned 1, when expecting 97 702: exit FAILED == Contents of files in the log/7/ dir after test 702 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind702 ../src/curl -q --output log/7/curl702.out --include --trace-ascii log/7/trace702 --trace-time --socks4 127.0.0.1:45923 http://127.0.0.1:47 > log/7/stdout702 2> log/7/stderr702 === End of file commands.log === Start of file server.cmd response 91 Testnum 702 === End of file server.cmd === Start of file socks_server.log 10:32:16.925292 Running IPv4 version 10:32:16.925913 Listening on port 45923 10:32:16.926361 Wrote pid 109944 to log/7/server/socks_server.pid 10:32:16.926751 Wrote port 45923 to log/7/server/socks_server.port === End of file socks_server.log === Start of file valgrind702 valgrind: Fatal error at startup: a function rCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind701 ../src/curl -q --output log/4/curl701.out --include --trace-ascii log/4/trace701 --trace-time --socks5 127.0.0.1:39563 http://127.0.0.1:36757/701 > log/4/stdout701 2> log/4/stderr701 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind703 ../src/curl -q --output log/3/curl703.out --include --trace-ascii log/3/trace703 --trace-time --socks5 127.0.0.1:33507 http://127.0.0.1:47 > log/3/stdout703 2> log/3/stderr703 edirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind702 startnew: ./server/servers socksd --port 0 --pidfile log/4/server/socks_server.pid --portfile log/4/server/socks_server.port --reqfile log/4/socksd-request.log --logfile log/4/socks_server.log --backend 127.0.0.1 --config log/4/server.cmd RUN: SOCKS server is now running PID 109939 * pid socks => 109939 109939 test 0701...[HTTP GET via SOCKS5 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind701 ../src/curl -q --output log/4/curl701.out --include --trace-ascii log/4/trace701 --trace-time --socks5 127.0.0.1:39563 http://127.0.0.1:36757/701 > log/4/stdout701 2> log/4/stderr701 701: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 701 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind701 ../src/curl -q --output log/4/curl701.out --include --trace-ascii log/4/trace701 --trace-time --socks5 127.0.0.1:39563 http://127.0.0.1:36757/701 > log/4/stdout701 2> log/4/stderr701 === End of file commands.log === Start of file http_server.log 10:32:16.875824 ====> Client connect 10:32:16.876227 accept_connection 3 returned 4 10:32:16.876431 accept_connection 3 returned 0 10:32:16.876572 Read 93 bytes 10:32:16.876665 Process 93 bytes request 10:32:16.876761 Got request: GET /verifiedserver HTTP/1.1 10:32:16.876849 Are-we-friendly question received 10:32:16.877141 Wrote request (93 bytes) input to log/4/server.input 10:32:16.877353 Identifying ourselves as friends 10:32:16.878155 Response sent (56 bytes) and written to log/4/server.response 10:32:16.878316 special request received, no persistency 10:32:16.878383 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40906 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 701 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file socks_server.log 10:32:16.914886 Running IPv4 version 10:32:16.915809 Listening on port 39563 10:32:16.916302 Wrote pid 109939 to log/4/server/socks_server.pid 10:32:16.916716 Wrote port 39563 to log/4/server/socks_server.port === End of file socks_server.log === Start of file valgrind701 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind701 startnew: ./server/servers socksd --port 0 --pidfile log/3/server/socks_server.pid --portfile log/3/server/socks_server.port --reqfile log/3/socksd-request.log --logfile log/3/socks_server.log --backend 127.0.0.1 --config log/3/server.cmd RUN: SOCKS server is now running PID 109982 * pid socks => 109982 109982 test 0703...[Attempt connect to non-listening HTTP server via SOCKS5 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind703 ../src/curl -q --output log/3/curl703.out --include --trace-ascii log/3/trace703 --trace-time --socks5 127.0.0.1:33507 http://127.0.0.1:47 > log/3/stdout703 2> log/3/stderr703 curl returned 1, when expecting 97 703: exit FAILED == Contents of files in the log/3/ dir after test 703 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind703 ../src/curl -q --output log/3/curl703.out --include --trace-ascii log/3/trace703 --trace-time --socks5 127.0.0.1:33507 http://127.0.0.1:47 > log/3/stdout703 2> log/3/stderr703 === End of file commands.log === Start of file server.cmd response 1 Testnum 703 === End of file server.cmd === Start of file socks_server.log 10:32:16.117924 Running IPv4 version 10:32:16.118483 Listening on port 33507 10:32:16.118829 Wrote pid 109982 to log/3/server/socks_server.pid 10:32:16.119255 Wrote port 33507 to log/3/server/socks_server.port === End of file socks_server.log === Start of file valgrind703 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for yCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind710 ../src/curl -q --output log/2/curl710.out --include --trace-ascii log/2/trace710 --trace-time http://127.0.0.1:43789/710 --proxy socks5://127.0.0.1:33387 > log/2/stdout710 2> log/2/stderr710 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind711 ../src/curl -q --output log/7/curl711.out --include --trace-ascii log/7/trace711 --trace-time ftp://127.0.0.1:38253/711 > log/7/stdout711 2> log/7/stderr711 our Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind703 test 0710...[HTTP GET via SOCKS5 set with --proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind710 ../src/curl -q --output log/2/curl710.out --include --trace-ascii log/2/trace710 --trace-time http://127.0.0.1:43789/710 --proxy socks5://127.0.0.1:33387 > log/2/stdout710 2> log/2/stderr710 710: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 710 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind710 ../src/curl -q --output log/2/curl710.out --include --trace-ascii log/2/trace710 --trace-time http://127.0.0.1:43789/710 --proxy socks5://127.0.0.1:33387 > log/2/stdout710 2> log/2/stderr710 === End of file commands.log === Start of file http_server.log 10:32:17.605805 ====> Client connect 10:32:17.606097 accept_connection 3 returned 4 10:32:17.606258 accept_connection 3 returned 0 10:32:17.606371 Read 93 bytes 10:32:17.606449 Process 93 bytes request 10:32:17.606533 Got request: GET /verifiedserver HTTP/1.1 10:32:17.606617 Are-we-friendly question received 10:32:17.606875 Wrote request (93 bytes) input to log/2/server.input 10:32:17.607126 Identifying ourselves as friends 10:32:17.607864 Response sent (56 bytes) and written to log/2/server.response 10:32:17.608024 special request received, no persistency 10:32:17.608101 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 56722 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 710 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind710 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind710 setenv all_proxy = socks5://127.0.0.1:45923 test 0711...[FTP fetch with all_proxy set to socks5] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind711 ../src/curl -q --output log/7/curl711.out --include --trace-ascii log/7/trace711 --trace-time ftp://127.0.0.1:38253/711 > log/7/stdout711 2> log/7/stderr711 711: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 711 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind711 ../src/curl -q --output log/7/curl711.out --include --trace-ascii log/7/trace711 --trace-time ftp://127.0.0.1:38253/711 > log/7/stdout711 2> log/7/stderr711 === End of file commands.log === Start of file ftp_server.log 10:32:17.953628 ====> Client connect 10:32:17.955017 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:17.966634 < "USER anonymous" 10:32:17.967051 > "331 We are happy you popped in![CR][LF]" 10:32:17.968516 < "PASS ftp@example.com" 10:32:17.968884 > "230 Welcome you silly person[CR][LF]" 10:32:17.973203 < "PWD" 10:32:17.973666 > "257 "/" is current directory[CR][LF]" 10:32:17.975073 < "EPSV" 10:32:17.975346 ====> Passive DATA channel requested by client 10:32:17.975486 DATA sockfilt for passive data channel starting... 10:32:17.985397 DATA sockfilt for passive data channel started (pid 110491) 10:32:17.986826 DATA sockfilt for passive data channel listens on port 33221 10:32:17.987326 > "229 Entering Passive Mode (|||33221|)[LF]" 10:32:17.987535 Client has been notified that DATA conn will be accepted on port 33221 10:32:17.988824 Client connects to port 33221 10:32:17.989147 ====> Client established passive DATA connection on port 33221 10:32:17.989885 < "TYPE I" 10:32:17.990244 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:17.992253 < "SIZE verifiedserver" 10:32:17.992804 > "213 17[CR][LF]" 10:32:17.994485 < "RETR verifiedserver" 10:32:17.994891 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:17.995608 =====> Closing passive DATA connection... 10:32:17.995942 Server disconnects passive DATA connection 10:32:17.996276 Fancy that; client wants to DISC, too 10:32:17.996558 Server disconnected passive DATA connection 10:32:17.996732 DATA sockfilt for passive data channel quits (pid 110491) 10:32:17.998252 DATA sockfilt for passive data channel quit (pid 110491) 10:32:17.998575 =====> Closed passive DATA connection 10:32:17.998852 > "226 File transfer complete[CR][LF]" 10:32:18.039370 < "QUIT" 10:32:18.039826 > "221 bye bye baby[CR][LF]" 10:32:18.043475 MAIN sockfilt said DISC 10:32:18.043964 ====> Client disconnected 10:32:18.044518 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:18.620759 ====> Client connect 10:32:18.631559 Received DATA (on stdin) 10:32:18.631918 > 160 bytes data, server => client 10:32:18.632030 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:18.632105 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:18.632168 '_ {| |___ \r\n220 \___|\CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind706 ../src/curl -q --output log/1/curl706.out --include --trace-ascii log/1/trace706 --trace-time --socks4 127.0.0.1:46193 ftp://127.0.0.1:38733/ > log/1/stdout706 2> log/1/stderr706 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind707 ../src/curl -q --output log/5/curl707.out --include --trace-ascii log/5/trace707 --trace-time --socks5 127.0.0.1:44697 ftp://127.0.0.1:43393/ > log/5/stdout707 2> log/5/stderr707 ___/|_| \_\_____|\r\n' 10:32:18.632764 < 16 bytes data, client => server 10:32:18.632960 'USER anonymous\r\n' 10:32:18.636612 Received DATA (on stdin) 10:32:18.636822 > 33 bytes data, server => client 10:32:18.636930 '331 We are happy you popped in!\r\n' 10:32:18.637439 < 22 bytes data, client => server 10:32:18.637569 'PASS ftp@example.com\r\n' 10:32:18.638406 Received DATA (on stdin) 10:32:18.638520 > 30 bytes data, server => client 10:32:18.638605 '230 Welcome you silly person\r\n' 10:32:18.639074 < 5 bytes data, client => server 10:32:18.639224 'PWD\r\n' 10:32:18.643203 Received DATA (on stdin) 10:32:18.643402 > 30 bytes data, server => client 10:32:18.643494 '257 "/" is current directory\r\n' 10:32:18.644105 < 6 bytes data, client => server 10:32:18.644284 'EPSV\r\n' 10:32:18.656841 Received DATA (on stdin) 10:32:18.657023 > 38 bytes data, server => client 10:32:18.657112 '229 Entering Passive Mode (|||33221|)\n' 10:32:18.658455 < 8 bytes data, client => server 10:32:18.658596 'TYPE I\r\n' 10:32:18.659759 Received DATA (on stdin) 10:32:18.659923 > 33 bytes data, server => client 10:32:18.660010 '200 I modify TYPE as you wanted\r\n' 10:32:18.660736 < 21 bytes data, client => server 10:32:18.660925 'SIZE verifiedserver\r\n' 10:32:18.662687 Received DATA (on stdin) 10:32:18.662818 > 8 bytes data, server => client 10:32:18.662892 '213 17\r\n' 10:32:18.663463 < 21 bytes data, client => server 10:32:18.663604 'RETR verifiedserver\r\n' 10:32:18.664423 Received DATA (on stdin) 10:32:18.664560 > 29 bytes data, server => client 10:32:18.664644 '150 Binary junk (17 bytes).\r\n' 10:32:18.668389 Received DATA (on stdin) 10:32:18.668541 > 28 bytes data, server => client 10:32:18.668634 '226 File transfer complete\r\n' 10:32:18.707859 < 6 bytes data, client => server 10:32:18.708089 'QUIT\r\n' 10:32:18.709756 Received DATA (on stdin) 10:32:18.709936 > 18 bytes data, server => client 10:32:18.710024 '221 bye bye baby\r\n' 10:32:18.710470 ====> Client disconnect 10:32:18.714537 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:17.653612 Running IPv4 version 10:32:17.654149 Listening on port 33221 10:32:17.654500 Wrote pid 110491 to log/7/server/ftp_sockdata.pid 10:32:17.654649 Received PING (on stdin) 10:32:17.655387 Received PORT (on stdin) 10:32:17.658068 ====> Client connect 10:32:17.664727 Received DATA (on stdin) 10:32:17.664860 > 17 bytes data, server => client 10:32:17.664955 'WE ROOLZ: 79543\r\n' 10:32:17.665561 ====> Client disconnect 10:32:17.665771 Received DISC (on stdin) 10:32:17.665892 Crikey! Client also wants to disconnect 10:32:17.666060 Received ACKD (on stdin) 10:32:17.666435 Received QUIT (on stdin) 10:32:17.666548 quits 10:32:17.666930 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 711 === End of file server.cmd === Start of file valgrind711 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind711 startnew: ./server/servers socksd --port 0 --pidfile log/1/server/socks_server.pid --portfile log/1/server/socks_server.port --reqfile log/1/socksd-request.log --logfile log/1/socks_server.log --backend 127.0.0.1 --config log/1/server.cmd RUN: SOCKS server is now running PID 110218 * pid socks => 110218 110218 test 0706...[FTP dir list PASV via SOCKS4] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind706 ../src/curl -q --output log/1/curl706.out --include --trace-ascii log/1/trace706 --trace-time --socks4 127.0.0.1:46193 ftp://127.0.0.1:38733/ > log/1/stdout706 2> log/1/stderr706 706: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 706 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind706 ../src/curl -q --output log/1/curl706.out --include --trace-ascii log/1/trace706 --trace-time --socks4 127.0.0.1:46193 ftp://127.0.0.1:38733/ > log/1/stdout706 2> log/1/stderr706 === End of file commands.log === Start of file ftp_server.log 10:32:16.978976 ====> Client connect 10:32:16.980106 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:16.982571 < "USER anonymous" 10:32:16.983037 > "331 We are happy you popped in![CR][LF]" 10:32:16.984562 < "PASS ftp@example.com" 10:32:16.984912 > "230 Welcome you silly person[CR][LF]" 10:32:16.986252 < "PWD" 10:32:16.986629 > "257 "/" is current directory[CR][LF]" 10:32:16.987962 < "EPSV" 10:32:16.988234 ====> Passive DATA channel requested by client 10:32:16.988375 DATA sockfilt for passive data channel starting... 10:32:16.998345 DATA sockfilt for passive data channel started (pid 110214) 10:32:17.001713 DATA sockfilt for passive data channel listens on port 40799 10:32:17.002254 > "229 Entering Passive Mode (|||40799|)[LF]" 10:32:17.002497 Client has been notified that DATA conn will be accepted on port 40799 10:32:17.004397 Client connects to port 40799 10:32:17.004824 ====> Client established passive DATA connection on port 40799 10:32:17.006394 < "TYPE I" 10:32:17.007284 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:17.010856 < "SIZE verifiedserver" 10:32:17.011313 > "213 17[CR][LF]" 10:32:17.016246 < "RETR verifiedserver" 10:32:17.016739 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:17.017427 =====> Closing passive DATA connection... 10:32:17.017766 Server disconnects passive DATA connection 10:32:17.019594 Server disconnected passive DATA connection 10:32:17.020160 DATA sockfilt for passive data channel quits (pid 110214) 10:32:17.022104 DATA sockfilt for passive data channel quit (pid 110214) 10:32:17.022353 =====> Closed passive DATA connection 10:32:17.022673 > "226 File transfer complete[CR][LF]" 10:32:17.063249 < "QUIT" 10:32:17.063977 > "221 bye bye baby[CR][LF]" 10:32:17.064957 MAIN sockfilt said DISC 10:32:17.066020 ====> Client disconnected 10:32:17.066795 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:16.647860 ====> Client connect 10:32:16.650053 Received DATA (on stdin) 10:32:16.650212 > 160 bytes data, server => client 10:32:16.650295 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:16.650369 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:16.650432 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind712 ../src/curl -q --output log/4/curl712.out --include --trace-ascii log/4/trace712 --trace-time ftp://127.0.0.1:42635/712 --proxy socks5://127.0.0.1:39563 > log/4/stdout712 2> log/4/stderr712 32:16.651359 < 16 bytes data, client => server 10:32:16.651581 'USER anonymous\r\n' 10:32:16.652577 Received DATA (on stdin) 10:32:16.652732 > 33 bytes data, server => client 10:32:16.652833 '331 We are happy you popped in!\r\n' 10:32:16.653444 < 22 bytes data, client => server 10:32:16.653603 'PASS ftp@example.com\r\n' 10:32:16.654459 Received DATA (on stdin) 10:32:16.654570 > 30 bytes data, server => client 10:32:16.654650 '230 Welcome you silly person\r\n' 10:32:16.655222 < 5 bytes data, client => server 10:32:16.655366 'PWD\r\n' 10:32:16.656169 Received DATA (on stdin) 10:32:16.656284 > 30 bytes data, server => client 10:32:16.656367 '257 "/" is current directory\r\n' 10:32:16.656921 < 6 bytes data, client => server 10:32:16.657056 'EPSV\r\n' 10:32:16.671789 Received DATA (on stdin) 10:32:16.671973 > 38 bytes data, server => client 10:32:16.672076 '229 Entering Passive Mode (|||40799|)\n' 10:32:16.673433 < 8 bytes data, client => server 10:32:16.673578 'TYPE I\r\n' 10:32:16.678287 Received DATA (on stdin) 10:32:16.678491 > 33 bytes data, server => client 10:32:16.678582 '200 I modify TYPE as you wanted\r\n' 10:32:16.679291 < 21 bytes data, client => server 10:32:16.679490 'SIZE verifiedserver\r\n' 10:32:16.682808 Received DATA (on stdin) 10:32:16.684104 > 8 bytes data, server => client 10:32:16.684326 '213 17\r\n' 10:32:16.685010 < 21 bytes data, client => server 10:32:16.685250 'RETR verifiedserver\r\n' 10:32:16.686265 Received DATA (on stdin) 10:32:16.686434 > 29 bytes data, server => client 10:32:16.686517 '150 Binary junk (17 bytes).\r\n' 10:32:16.692506 Received DATA (on stdin) 10:32:16.692654 > 28 bytes data, server => client 10:32:16.692732 '226 File transfer complete\r\n' 10:32:16.731855 < 6 bytes data, client => server 10:32:16.732056 'QUIT\r\n' 10:32:16.733163 Received DATA (on stdin) 10:32:16.733295 > 18 bytes data, server => client 10:32:16.733795 '221 bye bye baby\r\n' 10:32:16.734253 ====> Client disconnect 10:32:16.734916 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:16.666555 Running IPv4 version 10:32:16.667128 Listening on port 40799 10:32:16.667482 Wrote pid 110214 to log/1/server/ftp_sockdata.pid 10:32:16.667627 Received PING (on stdin) 10:32:16.670504 Received PORT (on stdin) 10:32:16.673314 ====> Client connect 10:32:16.686917 Received DATA (on stdin) 10:32:16.687263 > 17 bytes data, server => client 10:32:16.687374 'WE ROOLZ: 79585\r\n' 10:32:16.687683 Received DISC (on stdin) 10:32:16.687893 ====> Client forcibly disconnected 10:32:16.690193 Received QUIT (on stdin) 10:32:16.690340 quits 10:32:16.690760 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 706 === End of file server.cmd === Start of file socks_server.log 10:32:17.762610 Running IPv4 version 10:32:17.763573 Listening on port 46193 10:32:17.764271 Wrote pid 110218 to log/1/server/socks_server.pid 10:32:17.764749 Wrote port 46193 to log/1/server/socks_server.port === End of file socks_server.log === Start of file valgrind706 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind706 test 0712...[FTP fetch with --proxy set to socks5://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind712 ../src/curl -q --output log/4/curl712.out --include --trace-ascii log/4/trace712 --trace-time ftp://127.0.0.1:42635/712 --proxy socks5://127.0.0.1:39563 > log/4/stdout712 2> log/4/stderr712 712: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 712 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind712 ../src/curl -q --output log/4/curl712.out --include --trace-ascii log/4/trace712 --trace-time ftp://127.0.0.1:42635/712 --proxy socks5://127.0.0.1:39563 > log/4/stdout712 2> log/4/stderr712 === End of file commands.log === Start of file ftp_server.log 10:32:17.981867 ====> Client connect 10:32:17.983143 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:17.985550 < "USER anonymous" 10:32:17.985935 > "331 We are happy you popped in![CR][LF]" 10:32:17.988513 < "PASS ftp@example.com" 10:32:17.988945 > "230 Welcome you silly person[CR][LF]" 10:32:17.991180 < "PWD" 10:32:17.991656 > "257 "/" is current directory[CR][LF]" 10:32:17.993265 < "EPSV" 10:32:17.993578 ====> Passive DATA channel requested by client 10:32:17.993762 DATA sockfilt for passive data channel starting... 10:32:18.003617 DATA sockfilt for passive data channel started (pid 110492) 10:32:18.004837 DATA sockfilt for passive data channel listens on port 44987 10:32:18.005367 > "229 Entering Passive Mode (|||44987|)[LF]" 10:32:18.005656 Client has been notified that DATA conn will be accepted on port 44987 10:32:18.007559 Client connects to port 44987 10:32:18.007943 ====> Client established passive DATA connection on port 44987 10:32:18.008748 < "TYPE I" 10:32:18.009111 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:18.011485 < "SIZE verifiedserver" 10:32:18.011980 > "213 17[CR][LF]" 10:32:18.015182 < "RETR verifiedserver" 10:32:18.015732 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:18.016476 =====> Closing passive DATA connection... 10:32:18.016702 Server disconnects passive DATA connection 10:32:18.017595 Server disconnected passive DATA connection 10:32:18.018033 DATA sockfilt for passive data channel quits (pid 110492) 10:32:18.020541 DATA sockfilt for passive data channel quit (pid 110492) 10:32:18.020926 =====> Closed passive DATA connection 10:32:18.021278 > "226 File transfer complete[CR][LF]" 10:32:18.059604 < "QUIT" 10:32:18.060410 > "221 bye bye baby[CR][LF]" 10:32:18.061750 MAIN sockfilt said DISC 10:32:18.062660 ====> Client disconnected 10:32:18.063364 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:18.650652 ====> Client connect 10:32:18.653031 Received DATA (on stdin) 10:32:18.653277 > 160 bytes data, server => client 10:32:18.653372 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:18.653443 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:18.653507 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:18.654196 < 16 bytes data, client => server 10:32:18.654306 'USER anonymous\r\n' 10:32:18.655436 Received DATA (on stdin) 10:32:18.655568 > 33 bytes data, server => client 10:32:18.655665 '331 We are happy you popped in!\r\n' 10:32:18.657348 < 22 bytes data, client => server 10:32:18.657488 'PASS ftp@example.com\r\n' 10:32:18.658772 Received DATA (on stdin) 10:32:18.658895 > 30 bytes data, server => client 10:32:18.659089 '230 Welcome you silly person\r\n' 10:32:18.659771 < 5 bytes data, client => server 10:32:18.659917 'PWD\r\n' 10:32:18.661185 Received DATA (on stdin) 10:32:18.661356 > 30 bytes data, server => client 10:32:18.661461 '257 "/" is current directory\r\n' 10:32:18.662262 < 6 bytes data, client => server 10:32:18.662475 'EPSV\r\n' 10:32:18.674901 Received DATA (on stdin) 10:32:18.675158 > 38 bytes data, server => client 10:32:18.675254 '229 Entering Passive Mode (|||44987|)\n' 10:32:18.677069 < 8 bytes data, client => server 10:32:18.677323 'TYPE I\r\n' 10:32:18.679044 Received DATA (on stdin) 10:32:18.679247 > 33 bytes data, server => client 10:32:18.679363 '200 I modify TYPE as you wanted\r\n' 10:32:18.680029 < 21 bytes data, client => server 10:32:18.680226 'SIZE verifiedserver\r\n' 10:32:18.681864 Received DATA (on stdin) 10:32:18.682012 > 8 bytes data, server => client 10:32:18.682086 '213 17\r\n' 10:32:18.683674 < 21 bytes data, client => server 10:32:18.683909 'RETR verifiedserver\r\n' 10:32:18.686509 Received DATA (on stdin) 10:32:18.686625 > 29 bytes data, server => client 10:32:18.686702 '150 Binary junk (17 bytes).\r\n' 10:32:18.691240 Received DATA (on stdin) 10:32:18.691439 > 28 bytes data, server => client 10:32:18.691531 '226 File transfer complete\r\n' 10:32:18.728157 < 6 bytes data, client => server 10:32:18.728383 'QUIT\r\n' 10:32:18.729534 Received DATA (on stdin) 10:32:18.729697 > 18 bytes data, server => client 10:32:18.730297 '221 bye bye baby\r\n' 10:32:18.730879 ====> Client disconnect 10:32:18.731622 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:18.671513 Running IPv4 version 10:32:18.672152 Listening on port 44987 10:32:18.672593 Wrote pid 110492 to log/4/server/ftp_sockdata.pid 10:32:18.672765 Received PING (on stdin) 10:32:18.673651 Received PORT (on stdin) 10:32:18.676605 ====> Client connect 10:32:18.685687 Received DATA (on stdin) 10:32:18.685898 > 17 bytes data, server => client 10:32:18.686371 'WE ROOLZ: 79516\r\n' 10:32:18.686804 Received DISC (on stdin) 10:32:18.686921 ====> Client forcibly disconnected 10:32:18.687992 Received QUIT (on stdin) 10:32:18.688416 quits 10:32:18.688882 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 712 === End of file server.cmd === Start of file valgrind712 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind712 startnew: ./server/servers socksd --port 0 --pidfile log/5/server/socks_server.pid --portfile log/5/server/socks_server.port --reqfile log/5/socksd-request.log --logfile log/5/socks_server.log --backend 127.0.0.1 --config log/5/server.cmd RUN: SOCKS server is now running PID 110219 * pid socks => 110219 110219 test 0707...[FTP dir list PASV via SOCKS5] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind707 ../src/curl -q --output log/5/curl707.out --include --trace-ascii log/5/trace707 --trace-time --socks5 127.0.0.1:44697 ftp://127.0.0.1:43393/ > log/5/stdout707 2> log/5/stderr707 707: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 707 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind707 ../src/curl -q --output log/5/curl707.out --include --trace-ascii log/5/trace707 --trace-time --socks5 127.0.0.1:44697 ftp://127.0.0.1:43393/ > log/5/stdout707 2> log/5/stderr707 === End of file commands.log === Start of file ftp_server.log 10:32:16.997103 ====> Client connect 10:32:16.998236 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:17.000182 < "USER anonymous" 10:32:17.000697 > "331 We are happy you popped in![CR][LF]" 10:32:17.003749 < "PASS ftp@example.com" 10:32:17.004236 > "230 Welcome you silly person[CR][LF]" 10:32:17.006013 < "PWD" 10:32:17.007285 > "257 "/" is current directory[CR][LF]" 10:32:17.010484 < "EPSV" 10:32:17.010841 ====> Passive DATA channel requested by client 10:32:17.011039 DATA sockfilt for passive data channel starting... 10:32:17.021745 DATA sockfilt for passive data channel started (pid 110217) 10:32:17.022992 DATA sockfilt for passive data channel listens on port 42041 10:32:17.023377 > "229 Entering Passive Mode (|||42041|)[LF]" 10:32:17.023606 Client has been notified that DATA conn will be accepted on port 42041 10:32:17.025036 Client connects to port 42041 10:32:17.025419 ====> Client established passive DATA connection on port 42041 10:32:17.026422 < "TYPE I" 10:32:17.026868 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:17.028337 < "SIZE verifiedserver" 10:32:17.028801 > "213 17[CR][LF]" 10:32:17.030240 < "RETR verifiedserver" 10:32:17.030646 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:17.031220 =====> Closing passive DATA connection... 10:32:17.031433 Server disconnects passive DATA connection 10:32:17.031951 Server disconnected passive DATA connection 10:32:17.032168 DATA sockfilt for passive data channel quits (pid 110217) 10:32:17.033782 DATA sockfilt for passive data channel quit (pid 110217) 10:32:17.034123 =====> Closed passive DATA connection 10:32:17.034398 > "226 File transfer complete[CR][LF]" 10:32:17.075537 < "QUIT" 10:32:17.076076 > "221 bye bye baby[CR][LF]" 10:32:17.082019 MAIN sockfilt said DISC 10:32:17.082560 ====> Client disconnected 10:32:17.083218 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:16.666036 ====> Client connect 10:32:16.667699 Received DATA (on stdin) 10:32:16.667838 > 160 bytes data, server => client 10:32:16.667931 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:16.668000 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:16.668073 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:16.668822 < 16 bytes data, client => server 10:32:16.669003 'USER anonymous\r\n' 10:32:16.670222 Received DATA (on stdin) 10:32:16.670459 > 33 bytes data, server => client 10:32:16.670561 '331 We are happy you popped in!CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind713 ../src/curl -q --output log/3/curl713.out --include --trace-ascii log/3/trace713 --trace-time ftp://ftp.example.com/713 --connect-to ::127.0.0.1:33831 --proxy socks5://127.0.0.1:33507 > log/3/stdout713 2> log/3/stderr713 \r\n' 10:32:16.671342 < 22 bytes data, client => server 10:32:16.671559 'PASS ftp@example.com\r\n' 10:32:16.673763 Received DATA (on stdin) 10:32:16.673933 > 30 bytes data, server => client 10:32:16.674023 '230 Welcome you silly person\r\n' 10:32:16.674691 < 5 bytes data, client => server 10:32:16.674867 'PWD\r\n' 10:32:16.676828 Received DATA (on stdin) 10:32:16.677053 > 30 bytes data, server => client 10:32:16.677153 '257 "/" is current directory\r\n' 10:32:16.677962 < 6 bytes data, client => server 10:32:16.678182 'EPSV\r\n' 10:32:16.692927 Received DATA (on stdin) 10:32:16.693105 > 38 bytes data, server => client 10:32:16.693194 '229 Entering Passive Mode (|||42041|)\n' 10:32:16.694480 < 8 bytes data, client => server 10:32:16.694657 'TYPE I\r\n' 10:32:16.696406 Received DATA (on stdin) 10:32:16.696589 > 33 bytes data, server => client 10:32:16.696680 '200 I modify TYPE as you wanted\r\n' 10:32:16.697256 < 21 bytes data, client => server 10:32:16.697445 'SIZE verifiedserver\r\n' 10:32:16.698324 Received DATA (on stdin) 10:32:16.698479 > 8 bytes data, server => client 10:32:16.698596 '213 17\r\n' 10:32:16.699156 < 21 bytes data, client => server 10:32:16.699346 'RETR verifiedserver\r\n' 10:32:16.700169 Received DATA (on stdin) 10:32:16.700294 > 29 bytes data, server => client 10:32:16.700371 '150 Binary junk (17 bytes).\r\n' 10:32:16.703969 Received DATA (on stdin) 10:32:16.704096 > 28 bytes data, server => client 10:32:16.704180 '226 File transfer complete\r\n' 10:32:16.744139 < 6 bytes data, client => server 10:32:16.744490 'QUIT\r\n' 10:32:16.745591 Received DATA (on stdin) 10:32:16.745801 > 18 bytes data, server => client 10:32:16.745900 '221 bye bye baby\r\n' 10:32:16.751107 ====> Client disconnect 10:32:16.752150 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:17.689711 Running IPv4 version 10:32:17.690211 Listening on port 42041 10:32:17.690658 Wrote pid 110217 to log/5/server/ftp_sockdata.pid 10:32:17.690851 Received PING (on stdin) 10:32:17.691807 Received PORT (on stdin) 10:32:17.694164 ====> Client connect 10:32:17.700779 Received DATA (on stdin) 10:32:17.700948 > 17 bytes data, server => client 10:32:17.701028 'WE ROOLZ: 79602\r\n' 10:32:17.701291 Received DISC (on stdin) 10:32:17.701409 ====> Client forcibly disconnected 10:32:17.701894 Received QUIT (on stdin) 10:32:17.701991 quits 10:32:17.702356 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 707 === End of file server.cmd === Start of file socks_server.log 10:32:17.779400 Running IPv4 version 10:32:17.780049 Listening on port 44697 10:32:17.780324 Wrote pid 110219 to log/5/server/socks_server.pid 10:32:17.780537 Wrote port 44697 to log/5/server/socks_server.port === End of file socks_server.log === Start of file valgrind707 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind707 test 0713...[FTP fetch with --proxy set to socks5:// and with --connect-to] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind713 ../src/curl -q --output log/3/curl713.out --include --trace-ascii log/3/trace713 --trace-time ftp://ftp.example.com/713 --connect-to ::127.0.0.1:33831 --proxy socks5://127.0.0.1:33507 > log/3/stdout713 2> log/3/stderr713 713: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 713 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind713 ../src/curl -q --output log/3/curl713.out --include --trace-ascii log/3/trace713 --trace-time ftp://ftp.example.com/713 --connect-to ::127.0.0.1:33831 --proxy socks5://127.0.0.1:33507 > log/3/stdout713 2> log/3/stderr713 === End of file commands.log === Start of file ftp_server.log 10:32:18.146334 ====> Client connect 10:32:18.147581 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:18.150444 < "USER anonymous" 10:32:18.151355 > "331 We are happy you popped in![CR][LF]" 10:32:18.153378 < "PASS ftp@example.com" 10:32:18.154005 > "230 Welcome you silly person[CR][LF]" 10:32:18.156245 < "PWD" 10:32:18.156689 > "257 "/" is current directory[CR][LF]" 10:32:18.158902 < "EPSV" 10:32:18.159233 ====> Passive DATA channel requested by client 10:32:18.159406 DATA sockfilt for passive data channel starting... 10:32:18.169931 DATA sockfilt for passive data channel started (pid 110524) 10:32:18.170998 DATA sockfilt for passive data channel listens on port 36961 10:32:18.171503 > "229 Entering Passive Mode (|||36961|)[LF]" 10:32:18.171769 Client has been notified that DATA conn will be accepted on port 36961 10:32:18.174021 Client connects to port 36961 10:32:18.174519 ====> Client established passive DATA connection on port 36961 10:32:18.175909 < "TYPE I" 10:32:18.176927 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:18.182833 < "SIZE verifiedserver" 10:32:18.184163 > "213 17[CR][LF]" 10:32:18.189374 < "RETR verifiedserver" 10:32:18.190026 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:18.190680 =====> Closing passive DATA connection... 10:32:18.190875 Server disconnects passive DATA connection 10:32:18.191721 Server disconnected passive DATA connection 10:32:18.192255 DATA sockfilt for passive data channel quits (pid 110524) 10:32:18.194213 DATA sockfilt for passive data channel quit (pid 110524) 10:32:18.194595 =====> Closed passive DATA connection 10:32:18.194922 > "226 File transfer complete[CR][LF]" 10:32:18.239566 < "QUIT" 10:32:18.240115 > "221 bye bye baby[CR][LF]" 10:32:18.242198 MAIN sockfilt said DISC 10:32:18.243222 ====> Client disconnected 10:32:18.243964 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:17.815209 ====> Client connect 10:32:17.817526 Received DATA (on stdin) 10:32:17.817728 > 160 bytes data, server => client 10:32:17.817830 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:17.817909 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:17.817979 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:17.818694 < 16 bytes data, client => server 10:32:17.818910 'USER anonymous\r\n' 10:32:17.820421 Received DATA (on stdin) 10:32:17.820628 > 33 bytes data, server => client 10:32:17.821256 '331 We are happy you popped in!\r\n' 10:32:17.821965 < 22 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind709 ../src/curl -q --output log/6/curl709.out --include --trace-ascii log/6/trace709 --trace-time http://127.0.0.1:33363/709 > log/6/stdout709 2> log/6/stderr709 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind708 ../src/curl -q --output log/8/curl708.out --include --trace-ascii log/8/trace708 --trace-time http://127.0.0.1:36007/708 > log/8/stdout708 2> log/8/stderr708 bytes data, client => server 10:32:17.822115 'PASS ftp@example.com\r\n' 10:32:17.823936 Received DATA (on stdin) 10:32:17.824113 > 30 bytes data, server => client 10:32:17.824206 '230 Welcome you silly person\r\n' 10:32:17.824802 < 5 bytes data, client => server 10:32:17.825019 'PWD\r\n' 10:32:17.826509 Received DATA (on stdin) 10:32:17.826680 > 30 bytes data, server => client 10:32:17.826767 '257 "/" is current directory\r\n' 10:32:17.827464 < 6 bytes data, client => server 10:32:17.827667 'EPSV\r\n' 10:32:17.841612 Received DATA (on stdin) 10:32:17.841795 > 38 bytes data, server => client 10:32:17.841888 '229 Entering Passive Mode (|||36961|)\n' 10:32:17.844463 < 8 bytes data, client => server 10:32:17.844631 'TYPE I\r\n' 10:32:17.845939 Received DATA (on stdin) 10:32:17.846137 > 33 bytes data, server => client 10:32:17.846902 '200 I modify TYPE as you wanted\r\n' 10:32:17.851335 < 21 bytes data, client => server 10:32:17.851535 'SIZE verifiedserver\r\n' 10:32:17.852820 Received DATA (on stdin) 10:32:17.853002 > 8 bytes data, server => client 10:32:17.853181 '213 17\r\n' 10:32:17.853990 < 21 bytes data, client => server 10:32:17.854179 'RETR verifiedserver\r\n' 10:32:17.860651 Received DATA (on stdin) 10:32:17.860822 > 29 bytes data, server => client 10:32:17.860909 '150 Binary junk (17 bytes).\r\n' 10:32:17.864452 Received DATA (on stdin) 10:32:17.864642 > 28 bytes data, server => client 10:32:17.864744 '226 File transfer complete\r\n' 10:32:17.908270 < 6 bytes data, client => server 10:32:17.908522 'QUIT\r\n' 10:32:17.909638 Received DATA (on stdin) 10:32:17.909867 > 18 bytes data, server => client 10:32:17.909970 '221 bye bye baby\r\n' 10:32:17.911275 ====> Client disconnect 10:32:17.912158 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:18.838096 Running IPv4 version 10:32:18.838619 Listening on port 36961 10:32:18.838920 Wrote pid 110524 to log/3/server/ftp_sockdata.pid 10:32:18.839126 Received PING (on stdin) 10:32:18.839944 Received PORT (on stdin) 10:32:18.843140 ====> Client connect 10:32:18.859944 Received DATA (on stdin) 10:32:18.860157 > 17 bytes data, server => client 10:32:18.860265 'WE ROOLZ: 79555\r\n' 10:32:18.860575 Received DISC (on stdin) 10:32:18.860742 ====> Client forcibly disconnected 10:32:18.862198 Received QUIT (on stdin) 10:32:18.862409 quits 10:32:18.862851 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 713 === End of file server.cmd === Start of file valgrind713 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind713 startnew: ./server/servers socksd --port 0 --pidfile log/6/server/socks_server.pid --portfile log/6/server/socks_server.port --reqfile log/6/socksd-request.log --logfile log/6/socks_server.log --backend 127.0.0.1 --config log/6/server.cmd RUN: SOCKS server is now running PID 110254 * pid socks => 110254 110254 setenv http_proxy = socks5://127.0.0.1:37645 test 0709...[HTTP GET via SOCKS5 set in http_proxy environment variable] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind709 ../src/curl -q --output log/6/curl709.out --include --trace-ascii log/6/trace709 --trace-time http://127.0.0.1:33363/709 > log/6/stdout709 2> log/6/stderr709 709: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 709 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind709 ../src/curl -q --output log/6/curl709.out --include --trace-ascii log/6/trace709 --trace-time http://127.0.0.1:33363/709 > log/6/stdout709 2> log/6/stderr709 === End of file commands.log === Start of file http_server.log 10:32:16.987501 ====> Client connect 10:32:16.987853 accept_connection 3 returned 4 10:32:16.988052 accept_connection 3 returned 0 10:32:16.988200 Read 93 bytes 10:32:16.988310 Process 93 bytes request 10:32:16.988416 Got request: GET /verifiedserver HTTP/1.1 10:32:16.988495 Are-we-friendly question received 10:32:16.988740 Wrote request (93 bytes) input to log/6/server.input 10:32:16.988928 Identifying ourselves as friends 10:32:16.989616 Response sent (56 bytes) and written to log/6/server.response 10:32:16.989745 special request received, no persistency 10:32:16.989814 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 49496 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 709 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file socks_server.log 10:32:17.016539 Running IPv4 version 10:32:17.017153 Listening on port 37645 10:32:17.017458 Wrote pid 110254 to log/6/server/socks_server.pid 10:32:17.017712 Wrote port 37645 to log/6/server/socks_server.port === End of file socks_server.log === Start of file valgrind709 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind716 ../src/curl -q --output log/1/curl716.out --include --trace-ascii log/1/trace716 --trace-time http://hohoho.example.com:99/716 -x socks5://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:b@127.0.0.1:46193 > log/1/stdout716 2> log/1/stderr716 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind717 ../src/curl -q --output log/5/curl717.out --include --trace-ascii log/5/trace717 --trace-time http://127.0.0.1:1/717 -x socks5://uz3r:p4ssworm@127.0.0.1:44697 > log/5/stdout717 2> log/5/stderr717 Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind709 startnew: ./server/servers socksd --port 0 --pidfile log/8/server/socks_server.pid --portfile log/8/server/socks_server.port --reqfile log/8/socksd-request.log --logfile log/8/socks_server.log --backend 127.0.0.1 --config log/8/server.cmd RUN: SOCKS server is now running PID 110252 * pid socks => 110252 110252 setenv all_proxy = socks4://127.0.0.1:34403 test 0708...[HTTP GET via SOCKS4 proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind708 ../src/curl -q --output log/8/curl708.out --include --trace-ascii log/8/trace708 --trace-time http://127.0.0.1:36007/708 > log/8/stdout708 2> log/8/stderr708 708: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 708 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind708 ../src/curl -q --output log/8/curl708.out --include --trace-ascii log/8/trace708 --trace-time http://127.0.0.1:36007/708 > log/8/stdout708 2> log/8/stderr708 === End of file commands.log === Start of file http_server.log 10:32:16.961568 ====> Client connect 10:32:16.961851 accept_connection 3 returned 4 10:32:16.962010 accept_connection 3 returned 0 10:32:16.962128 Read 93 bytes 10:32:16.962200 Process 93 bytes request 10:32:16.962274 Got request: GET /verifiedserver HTTP/1.1 10:32:16.962342 Are-we-friendly question received 10:32:16.962530 Wrote request (93 bytes) input to log/8/server.input 10:32:16.962671 Identifying ourselves as friends 10:32:16.963513 Response sent (56 bytes) and written to log/8/server.response 10:32:16.963635 special request received, no persistency 10:32:16.963848 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 59202 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 708 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file socks_server.log 10:32:17.989640 Running IPv4 version 10:32:17.990057 Listening on port 34403 10:32:17.990638 Wrote pid 110252 to log/8/server/socks_server.pid 10:32:17.990917 Wrote port 34403 to log/8/server/socks_server.port === End of file socks_server.log === Start of file valgrind708 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind708 test 0716...[SOCKS5 proxy with too long user name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind716 ../src/curl -q --output log/1/curl716.out --include --trace-ascii log/1/trace716 --trace-time http://hohoho.example.com:99/716 -x socks5://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:b@127.0.0.1:46193 > log/1/stdout716 2> log/1/stderr716 curl returned 1, when expecting 97 716: exit FAILED == Contents of files in the log/1/ dir after test 716 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind716 ../src/curl -q --output log/1/curl716.out --include --trace-ascii log/1/trace716 --trace-time http://hohoho.example.com:99/716 -x socks5://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:b@127.0.0.1:46193 > log/1/stdout716 2> log/1/stderr716 === End of file commands.log === Start of file server.cmd method 2 Testnum 716 === End of file server.cmd === Start of file valgrind716 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind716 test 0717...[SOCKS5 proxy auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind717 ../src/curl -q --output log/5/curl717.out --include --trace-ascii log/5/trace717 --trace-time http://127.0.0.1:1/717 -x socks5://uz3r:p4ssworm@127.0.0.1:44697 > lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind718 ../src/curl -q --output log/4/curl718.out --include --trace-ascii log/4/trace718 --trace-time http://test.remote.haxx.se.718:8990/path/7180002 --proxy http://127.0.0.1:36757 --proxytunnel > log/4/stdout718 2> log/4/stderr718 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind719 ../src/curl -q --output log/3/curl719.out --include --trace-ascii log/3/trace719 --trace-time http://[2200::33]:36933/719 --proxy socks5h://127.0.0.1:33507 > log/3/stdout719 2> log/3/stderr719 og/5/stdout717 2> log/5/stderr717 717: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 717 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind717 ../src/curl -q --output log/5/curl717.out --include --trace-ascii log/5/trace717 --trace-time http://127.0.0.1:1/717 -x socks5://uz3r:p4ssworm@127.0.0.1:44697 > log/5/stdout717 2> log/5/stderr717 === End of file commands.log === Start of file http_server.log 10:32:19.693441 ====> Client connect 10:32:19.693909 accept_connection 3 returned 4 10:32:19.694286 accept_connection 3 returned 0 10:32:19.694519 Read 93 bytes 10:32:19.694656 Process 93 bytes request 10:32:19.694781 Got request: GET /verifiedserver HTTP/1.1 10:32:19.694878 Are-we-friendly question received 10:32:19.695740 Wrote request (93 bytes) input to log/5/server.input 10:32:19.696086 Identifying ourselves as friends 10:32:19.698239 Response sent (56 bytes) and written to log/5/server.response 10:32:19.698379 special request received, no persistency 10:32:19.698459 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 49388 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd method 2 user uz3r password p4ssworm backendport 41733 Testnum 717 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind717 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind717 test 0718...[HTTP proxy CONNECT (no auth) with proxy returning 407 and closing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind718 ../src/curl -q --output log/4/curl718.out --include --trace-ascii log/4/trace718 --trace-time http://test.remote.haxx.se.718:8990/path/7180002 --proxy http://127.0.0.1:36757 --proxytunnel > log/4/stdout718 2> log/4/stderr718 718: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 718 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind718 ../src/curl -q --output log/4/curl718.out --include --trace-ascii log/4/trace718 --trace-time http://test.remote.haxx.se.718:8990/path/7180002 --proxy http://127.0.0.1:36757 --proxytunnel > log/4/stdout718 2> log/4/stderr718 === End of file commands.log === Start of file http_server.log 10:32:19.786796 ====> Client connect 10:32:19.787278 accept_connection 3 returned 4 10:32:19.787565 accept_connection 3 returned 0 10:32:19.787745 Read 93 bytes 10:32:19.787830 Process 93 bytes request 10:32:19.787917 Got request: GET /verifiedserver HTTP/1.1 10:32:19.788000 Are-we-friendly question received 10:32:19.788297 Wrote request (93 bytes) input to log/4/server.input 10:32:19.788543 Identifying ourselves as friends 10:32:19.789319 Response sent (56 bytes) and written to log/4/server.response 10:32:19.789450 special request received, no persistency 10:32:19.789516 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40918 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 718 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind718 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind718 test 0719...[HTTP GET with IPv6 numerical via SOCKS5h] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind719 ../src/curl -q --output log/3/curl719.out --include --trace-ascii log/3/trace719 --trace-time http://[2200::33]:36933/719 --proxy socks5h://127.0.0.1:33507 > log/3/stdout719 2> log/3/stderr719 719: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind720 ../src/curl -q --output log/8/curl720.out --include --trace-ascii log/8/trace720 --trace-time http://12.34.56.78:36007/720 --proxy socks5h://127.0.0.1:34403 > log/8/stdout720 2> log/8/stderr720 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind721 ../src/curl -q --output log/6/curl721.out --include --trace-ascii log/6/trace721 --trace-time http://this.is.a.host.name:33363/721 --proxy socks5h://127.0.0.1:37645 > log/6/stdout721 2> log/6/stderr721 after test 719 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind719 ../src/curl -q --output log/3/curl719.out --include --trace-ascii log/3/trace719 --trace-time http://[2200::33]:36933/719 --proxy socks5h://127.0.0.1:33507 > log/3/stdout719 2> log/3/stderr719 === End of file commands.log === Start of file http_server.log 10:32:18.898318 ====> Client connect 10:32:18.898661 accept_connection 3 returned 4 10:32:18.898832 accept_connection 3 returned 0 10:32:18.899419 Read 93 bytes 10:32:18.899587 Process 93 bytes request 10:32:18.899699 Got request: GET /verifiedserver HTTP/1.1 10:32:18.899792 Are-we-friendly question received 10:32:18.900110 Wrote request (93 bytes) input to log/3/server.input 10:32:18.900351 Identifying ourselves as friends 10:32:18.901263 Response sent (56 bytes) and written to log/3/server.response 10:32:18.901419 special request received, no persistency 10:32:18.901491 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 33038 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 719 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind719 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind719 test 0720...[HTTP GET with IPv4 numerical via SOCKS5h] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind720 ../src/curl -q --output log/8/curl720.out --include --trace-ascii log/8/trace720 --trace-time http://12.34.56.78:36007/720 --proxy socks5h://127.0.0.1:34403 > log/8/stdout720 2> log/8/stderr720 720: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 720 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind720 ../src/curl -q --output log/8/curl720.out --include --trace-ascii log/8/trace720 --trace-time http://12.34.56.78:36007/720 --proxy socks5h://127.0.0.1:34403 > log/8/stdout720 2> log/8/stderr720 === End of file commands.log === Start of file http_server.log 10:32:18.957046 ====> Client connect 10:32:18.957388 accept_connection 3 returned 4 10:32:18.957574 accept_connection 3 returned 0 10:32:18.957711 Read 93 bytes 10:32:18.957835 Process 93 bytes request 10:32:18.957938 Got request: GET /verifiedserver HTTP/1.1 10:32:18.958019 Are-we-friendly question received 10:32:18.958271 Wrote request (93 bytes) input to log/8/server.input 10:32:18.958474 Identifying ourselves as friends 10:32:18.959353 Response sent (56 bytes) and written to log/8/server.response 10:32:18.959499 special request received, no persistency 10:32:18.959564 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 59214 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 720 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind720 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind720 test 0721...[HTTP GET with host name using SOCKS5h] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind721 ../src/curl -q --output log/6/curl721.out --include --trace-ascii log/6/trace721 --trace-time http://this.is.a.host.name:33363/721 --proxy socks5h://127.0.0.1:37645 > log/6/stdout721 2> log/6/stderr721 721: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 721 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind721 ../src/curl -q --output log/6/curl721.out --include --trace-ascii log/6/trace721 --trace-time http://this.is.a.hoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind722 ../src/curl -q --output log/1/curl722.out --include --trace-ascii log/1/trace722 --trace-time --ipfs-gateway http://127.0.0.1:36129 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/1/stdout722 2> log/1/stderr722 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind723 ../src/curl -q --output log/5/curl723.out --include --trace-ascii log/5/trace723 --trace-time --ipfs-gateway http://nonexisting,local:8080 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/5/stdout723 2> log/5/stderr723 st.name:33363/721 --proxy socks5h://127.0.0.1:37645 > log/6/stdout721 2> log/6/stderr721 === End of file commands.log === Start of file http_server.log 10:32:19.006191 ====> Client connect 10:32:19.006574 accept_connection 3 returned 4 10:32:19.006750 accept_connection 3 returned 0 10:32:19.006866 Read 93 bytes 10:32:19.006934 Process 93 bytes request 10:32:19.007091 Got request: GET /verifiedserver HTTP/1.1 10:32:19.007176 Are-we-friendly question received 10:32:19.007406 Wrote request (93 bytes) input to log/6/server.input 10:32:19.007574 Identifying ourselves as friends 10:32:19.008219 Response sent (56 bytes) and written to log/6/server.response 10:32:19.008349 special request received, no persistency 10:32:19.008430 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 49504 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 721 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind721 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind721 test 0722...[IPFS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind722 ../src/curl -q --output log/1/curl722.out --include --trace-ascii log/1/trace722 --trace-time --ipfs-gateway http://127.0.0.1:36129 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/1/stdout722 2> log/1/stderr722 722: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 722 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind722 ../src/curl -q --output log/1/curl722.out --include --trace-ascii log/1/trace722 --trace-time --ipfs-gateway http://127.0.0.1:36129 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/1/stdout722 2> log/1/stderr722 === End of file commands.log === Start of file http_server.log 10:32:19.388597 ====> Client connect 10:32:19.389079 accept_connection 3 returned 4 10:32:19.389324 accept_connection 3 returned 0 10:32:19.389514 Read 93 bytes 10:32:19.389662 Process 93 bytes request 10:32:19.389784 Got request: GET /verifiedserver HTTP/1.1 10:32:19.389880 Are-we-friendly question received 10:32:19.390181 Wrote request (93 bytes) input to log/1/server.input 10:32:19.390430 Identifying ourselves as friends 10:32:19.395628 Response sent (56 bytes) and written to log/1/server.response 10:32:19.395792 special request received, no persistency 10:32:19.395875 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 36126 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 722 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind722 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind722 test 0723...[IPFS with malformed gateway URL (bad function argument error)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind723 ../src/curl -q --output log/5/curl723.out --include --trace-ascii log/5/trace723 --trace-time --ipfs-gateway http://nonexisting,local:8080 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/5/stdout723 2> log/5/stderr723 curl returned 1, when expecting 43 723: exit FAILED == Contents of files in the log/5/ dir after test 723 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind723 ../src/curl -q --output log/5/curl723.out --include --trace-ascii log/5/trace723 --trace-time --ipfs-gateway http://nonexisting,local:8080 ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/5/stdout723 2> log/5/stderr723 === End of file commands.log === Start of file http_server.log 10:32:20.577947 ====> Client connect 10:32:20.578412 accept_connection 3 returned 4 10:32:20.578679 accept_coCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind714 ../src/curl -q --output log/2/curl714.out --include --trace-ascii log/2/trace714 --trace-time ftp://ftp.example.com.714/714 --connect-to ::connect.example.com.714:37959 --proxytunnel --proxy http://127.0.0.1:38053 > log/2/stdout714 2> log/2/stderr714 nnection 3 returned 0 10:32:20.578855 Read 93 bytes 10:32:20.579058 Process 93 bytes request 10:32:20.579179 Got request: GET /verifiedserver HTTP/1.1 10:32:20.579261 Are-we-friendly question received 10:32:20.579594 Wrote request (93 bytes) input to log/5/server.input 10:32:20.579842 Identifying ourselves as friends 10:32:20.580923 Response sent (56 bytes) and written to log/5/server.response 10:32:20.581107 special request received, no persistency 10:32:20.581213 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 49404 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 723 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind723 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind723 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/2/server/http2_server.pid" --logfile "log/2/http2_server.log" --logdir "log/2" --portfile log/2/server/http2_server.port --config log/2/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 110927 port 38053 * pid http-proxy => 110927 110927 test 0714...[FTP fetch with --proxy set to http:// and with --connect-to] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind714 ../src/curl -q --output log/2/curl714.out --include --trace-ascii log/2/trace714 --trace-time ftp://ftp.example.com.714/714 --connect-to ::connect.example.com.714:37959 --proxytunnel --proxy http://127.0.0.1:38053 > log/2/stdout714 2> log/2/stderr714 714: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 714 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind714 ../src/curl -q --output log/2/curl714.out --include --trace-ascii log/2/trace714 --trace-time ftp://ftp.example.com.714/714 --connect-to ::connect.example.com.714:37959 --proxytunnel --proxy http://127.0.0.1:38053 > log/2/stdout714 2> log/2/stderr714 === End of file commands.log === Start of file ftp_server.log 10:32:18.818134 ====> Client connect 10:32:18.819516 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:18.824034 < "USER anonymous" 10:32:18.824580 > "331 We are happy you popped in![CR][LF]" 10:32:18.829181 < "PASS ftp@example.com" 10:32:18.829920 > "230 Welcome you silly person[CR][LF]" 10:32:18.832548 < "PWD" 10:32:18.833036 > "257 "/" is current directory[CR][LF]" 10:32:18.836492 < "EPSV" 10:32:18.836915 ====> Passive DATA channel requested by client 10:32:18.837201 DATA sockfilt for passive data channel starting... 10:32:18.849167 DATA sockfilt for passive data channel started (pid 110902) 10:32:18.850734 DATA sockfilt for passive data channel listens on port 43319 10:32:18.851377 > "229 Entering Passive Mode (|||43319|)[LF]" 10:32:18.851726 Client has been notified that DATA conn will be accepted on port 43319 10:32:18.855043 Client connects to port 43319 10:32:18.855443 ====> Client established passive DATA connection on port 43319 10:32:18.856314 < "TYPE I" 10:32:18.856776 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:18.859281 < "SIZE verifiedserver" 10:32:18.859856 > "213 17[CR][LF]" 10:32:18.862430 < "RETR verifiedserver" 10:32:18.862919 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:18.863582 =====> Closing passive DATA connection... 10:32:18.863877 Server disconnects passive DATA connection 10:32:18.865071 Server disconnected passive DATA connection 10:32:18.866246 DATA sockfilt for passive data channel quits (pid 110902) 10:32:18.868258 DATA sockfilt for passive data channel quit (pid 110902) 10:32:18.868651 =====> Closed passive DATA connection 10:32:18.869130 > "226 File transfer complete[CR][LF]" 10:32:18.907763 < "QUIT" 10:32:18.908311 > "221 bye bye baby[CR][LF]" 10:32:18.914118 MAIN sockfilt said DISC 10:32:18.915384 ====> Client disconnected 10:32:18.916242 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:18.486859 ====> Client connect 10:32:18.489540 Received DATA (on stdin) 10:32:18.489745 > 160 bytes data, server => client 10:32:18.489840 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:18.489912 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:18.489982 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:18.492552 < 16 bytes data, client => server 10:32:18.494742 'USER anonymous\r\n' 10:32:18.494884 Received DATA (on stdin) 10:32:18.495052 > 33 bytes data, server => client 10:32:18.495165 '331 We are happy you popped in!\r\n' 10:32:18.497187 < 22 bytes data, client => server 10:32:18.497436 'PASS ftp@example.com\r\n' 10:32:18.499937 Received DATA (on stdin) 10:32:18.500190 > 30 bytes data, server => client 10:32:18.500304 '230 Welcome you silly person\r\n' 10:32:18.501077 < 5 bytes data, client => server 10:32:18.501230 'PWD\r\n' 10:32:18.502918 Received DATA (on stdin) 10:32:18.503560 > 30 bytes data, server => client 10:32:18.503708 '257 "/" is current directory\r\n' 10:32:18.504758 < 6 bytes data, client => server 10:32:18.505043 'EPSV\r\n' 10:32:18.521619 Received DATA (on stdin) 10:32:18.521882 > 38 bytes data, server => client 10:32:18.522037 '229 Entering Passive Mode (|||43319|)\n' 10:32:18.524470 < 8 bytes data, client => server 10:32:18.524710 'TYPE I\r\n' 10:32:18.526298 Received DATA (on stdin) 10:32:18.526468 > 33 bytes data, server => client 10:32:18.526572 '200 I modify TYPE as you wanted\r\n' 10:32:18.527660 < 21 bytes data, client => server 10:32:18.527852 'SIZE verifiedserver\r\n' 10:32:18.529825 Received DATA (on stdin) 10:32:18.530048 > 8 bytes data, server => client 10:32:18.530173 '213 17\r\n' CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind726 ../src/curl -q --output log/8/curl726.out --include --trace-ascii log/8/trace726 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/8/stdout726 2> log/8/stderr726 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind715 ../src/curl -q --output log/7/curl715.out --include --trace-ascii log/7/trace715 --trace-time ftp://ftp.example.com.715/715 --connect-to ::connect.example.com.715:38253 --proxytunnel --proxy 127.0.0.1:46821 --preproxy socks5://127.0.0.1:45923 > log/7/stdout715 2> log/7/stderr715 10:32:18.530916 < 21 bytes data, client => server 10:32:18.531217 'RETR verifiedserver\r\n' 10:32:18.532453 Received DATA (on stdin) 10:32:18.532617 > 29 bytes data, server => client 10:32:18.532762 '150 Binary junk (17 bytes).\r\n' 10:32:18.539163 Received DATA (on stdin) 10:32:18.539418 > 28 bytes data, server => client 10:32:18.539568 '226 File transfer complete\r\n' 10:32:18.576164 < 6 bytes data, client => server 10:32:18.576404 'QUIT\r\n' 10:32:18.578270 Received DATA (on stdin) 10:32:18.578490 > 18 bytes data, server => client 10:32:18.578590 '221 bye bye baby\r\n' 10:32:18.583162 ====> Client disconnect 10:32:18.584129 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:18.516847 Running IPv4 version 10:32:18.517491 Listening on port 43319 10:32:18.517984 Wrote pid 110902 to log/2/server/ftp_sockdata.pid 10:32:18.518242 Received PING (on stdin) 10:32:18.519505 Received PORT (on stdin) 10:32:18.523450 ====> Client connect 10:32:18.533218 Received DATA (on stdin) 10:32:18.533360 > 17 bytes data, server => client 10:32:18.533457 'WE ROOLZ: 79558\r\n' 10:32:18.533764 Received DISC (on stdin) 10:32:18.533985 ====> Client forcibly disconnected 10:32:18.536208 Received QUIT (on stdin) 10:32:18.536405 quits 10:32:18.536932 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http2_server.log 10:32:19.887768 Run as proxy, CONNECT to host 127.0.0.1 10:32:19.888620 Running HTTP IPv4 version on port 38053 10:32:19.889182 Wrote pid 110927 to log/2/server/http2_server.pid 10:32:19.889585 Wrote port 38053 to log/2/server/http2_server.port === End of file http2_server.log === Start of file server.cmd Testnum 714 === End of file server.cmd === Start of file valgrind714 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind714 setenv HOME = /build/curl/src/build-curl/tests test 0726...[IPFS with no gateway URL (no environment or home file either)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind726 ../src/curl -q --output log/8/curl726.out --include --trace-ascii log/8/trace726 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/8/stdout726 2> log/8/stderr726 curl returned 1, when expecting 37 726: exit FAILED == Contents of files in the log/8/ dir after test 726 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind726 ../src/curl -q --output log/8/curl726.out --include --trace-ascii log/8/trace726 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/8/stdout726 2> log/8/stderr726 === End of file commands.log === Start of file http_server.log 10:32:19.837274 ====> Client connect 10:32:19.837604 accept_connection 3 returned 4 10:32:19.837814 accept_connection 3 returned 0 10:32:19.837974 Read 93 bytes 10:32:19.838090 Process 93 bytes request 10:32:19.838171 Got request: GET /verifiedserver HTTP/1.1 10:32:19.838239 Are-we-friendly question received 10:32:19.838484 Wrote request (93 bytes) input to log/8/server.input 10:32:19.838685 Identifying ourselves as friends 10:32:19.839598 Response sent (56 bytes) and written to log/8/server.response 10:32:19.839770 special request received, no persistency 10:32:19.839846 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 48694 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 726 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind726 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind726 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/7/server/http2_server.pid" --logfile "log/7/http2_server.log" --logdir "log/7" --portfile log/7/server/http2_server.port --config log/7/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 110953 port 46821 * pid http-proxy => 110953 110953 test 0715...[FTP fetch with --preproxy, --proxy and --connect-to] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind715 ../src/curl -q --output log/7/curl715.out --include --trace-ascii log/7/trace715 --trace-time ftp://ftp.example.com.715/715 --connect-to ::connect.example.com.715:38253 --proxytunnel --proxy 127.0.0.1:46821 --preproxy socks5://127.0.0.1:45923 > log/7/stdout715 2> log/7/stderr715 715: protocol FAILED! There was no content at all in the file log/7/server.input. Server glCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind727 ../src/curl -q --output log/6/curl727.out --include --trace-ascii log/6/trace727 --trace-time --ipfs-gateway http://127.0.0.1:33363 ipns://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout727 2> log/6/stderr727 itch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 715 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind715 ../src/curl -q --output log/7/curl715.out --include --trace-ascii log/7/trace715 --trace-time ftp://ftp.example.com.715/715 --connect-to ::connect.example.com.715:38253 --proxytunnel --proxy 127.0.0.1:46821 --preproxy socks5://127.0.0.1:45923 > log/7/stdout715 2> log/7/stderr715 === End of file commands.log === Start of file ftp_server.log 10:32:18.920152 ====> Client connect 10:32:18.922239 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:18.926025 < "USER anonymous" 10:32:18.926650 > "331 We are happy you popped in![CR][LF]" 10:32:18.928588 < "PASS ftp@example.com" 10:32:18.929053 > "230 Welcome you silly person[CR][LF]" 10:32:18.930934 < "PWD" 10:32:18.931446 > "257 "/" is current directory[CR][LF]" 10:32:18.934975 < "EPSV" 10:32:18.935445 ====> Passive DATA channel requested by client 10:32:18.935810 DATA sockfilt for passive data channel starting... 10:32:18.952285 DATA sockfilt for passive data channel started (pid 110931) 10:32:18.953595 DATA sockfilt for passive data channel listens on port 44559 10:32:18.954177 > "229 Entering Passive Mode (|||44559|)[LF]" 10:32:18.954531 Client has been notified that DATA conn will be accepted on port 44559 10:32:18.958375 Client connects to port 44559 10:32:18.958942 ====> Client established passive DATA connection on port 44559 10:32:18.960283 < "TYPE I" 10:32:18.960833 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:18.962803 < "SIZE verifiedserver" 10:32:18.963380 > "213 17[CR][LF]" 10:32:18.965216 < "RETR verifiedserver" 10:32:18.966083 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:18.967272 =====> Closing passive DATA connection... 10:32:18.967686 Server disconnects passive DATA connection 10:32:18.969749 Server disconnected passive DATA connection 10:32:18.970361 DATA sockfilt for passive data channel quits (pid 110931) 10:32:18.978916 DATA sockfilt for passive data channel quit (pid 110931) 10:32:18.979404 =====> Closed passive DATA connection 10:32:18.979897 > "226 File transfer complete[CR][LF]" 10:32:19.018630 < "QUIT" 10:32:19.019399 > "221 bye bye baby[CR][LF]" 10:32:19.028563 MAIN sockfilt said DISC 10:32:19.028992 ====> Client disconnected 10:32:19.037235 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:19.588820 ====> Client connect 10:32:19.592696 Received DATA (on stdin) 10:32:19.592978 > 160 bytes data, server => client 10:32:19.593120 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:19.593204 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:19.593278 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:19.594183 < 16 bytes data, client => server 10:32:19.594407 'USER anonymous\r\n' 10:32:19.596157 Received DATA (on stdin) 10:32:19.596436 > 33 bytes data, server => client 10:32:19.596545 '331 We are happy you popped in!\r\n' 10:32:19.597301 < 22 bytes data, client => server 10:32:19.597545 'PASS ftp@example.com\r\n' 10:32:19.598587 Received DATA (on stdin) 10:32:19.598749 > 30 bytes data, server => client 10:32:19.598850 '230 Welcome you silly person\r\n' 10:32:19.599708 < 5 bytes data, client => server 10:32:19.599975 'PWD\r\n' 10:32:19.602047 Received DATA (on stdin) 10:32:19.602327 > 30 bytes data, server => client 10:32:19.602471 '257 "/" is current directory\r\n' 10:32:19.603551 < 6 bytes data, client => server 10:32:19.603819 'EPSV\r\n' 10:32:19.624819 Received DATA (on stdin) 10:32:19.625106 > 38 bytes data, server => client 10:32:19.625267 '229 Entering Passive Mode (|||44559|)\n' 10:32:19.629037 < 8 bytes data, client => server 10:32:19.629317 'TYPE I\r\n' 10:32:19.630354 Received DATA (on stdin) 10:32:19.630603 > 33 bytes data, server => client 10:32:19.630730 '200 I modify TYPE as you wanted\r\n' 10:32:19.631533 < 21 bytes data, client => server 10:32:19.631768 'SIZE verifiedserver\r\n' 10:32:19.632914 Received DATA (on stdin) 10:32:19.633115 > 8 bytes data, server => client 10:32:19.633200 '213 17\r\n' 10:32:19.633993 < 21 bytes data, client => server 10:32:19.634207 'RETR verifiedserver\r\n' 10:32:19.635591 Received DATA (on stdin) 10:32:19.635859 > 29 bytes data, server => client 10:32:19.635994 '150 Binary junk (17 bytes).\r\n' 10:32:19.651096 Received DATA (on stdin) 10:32:19.651426 > 28 bytes data, server => client 10:32:19.651572 '226 File transfer complete\r\n' 10:32:19.685645 < 6 bytes data, client => server 10:32:19.685877 'QUIT\r\n' 10:32:19.693048 Received DATA (on stdin) 10:32:19.693305 > 18 bytes data, server => client 10:32:19.693417 '221 bye bye baby\r\n' 10:32:19.694328 ====> Client disconnect 10:32:19.698550 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:18.617678 Running IPv4 version 10:32:18.618376 Listening on port 44559 10:32:18.618833 Wrote pid 110931 to log/7/server/ftp_sockdata.pid 10:32:18.621168 Received PING (on stdin) 10:32:18.622377 Received PORT (on stdin) 10:32:18.627313 ====> Client connect 10:32:18.637594 Received DATA (on stdin) 10:32:18.637861 > 17 bytes data, server => client 10:32:18.638009 'WE ROOLZ: 79543\r\n' 10:32:18.638483 Received DISC (on stdin) 10:32:18.638815 ====> Client forcibly disconnected 10:32:18.640370 Received QUIT (on stdin) 10:32:18.640649 quits 10:32:18.647302 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http2_server.log 10:32:19.955625 Run as proxy, CONNECT to host 127.0.0.1 10:32:19.956474 Running HTTP IPv4 version on port 46821 10:32:19.960421 Wrote pid 110953 to log/7/server/http2_server.pid 10:32:19.960862 Wrote port 46821 to log/7/server/http2_server.port === End of file http2_server.log === Start of file server.cmd Testnum 715 === End of file server.cmd === Start of file valgrind715 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind715 test 0727...[IPNS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind727 ../src/curl -q --output log/6/curl727.out --include --trace-ascii log/6/trace727 --trace-time --ipfs-gateway http://127.0.0.1:33363 ipns://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout727 2> log/6/stderr727 727: protocol FAILED! There was no content at all in the file log/6/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind728 ../src/curl -q --output log/1/curl728.out --include --trace-ascii log/1/trace728 --trace-time --no-progress-meter --location --proxy socks5h://127.0.0.1:46193 http://127.0.0.1:36129/728 > log/1/stdout728 2> log/1/stderr728 server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 727 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind727 ../src/curl -q --output log/6/curl727.out --include --trace-ascii log/6/trace727 --trace-time --ipfs-gateway http://127.0.0.1:33363 ipns://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout727 2> log/6/stderr727 === End of file commands.log === Start of file http_server.log 10:32:19.874418 ====> Client connect 10:32:19.874770 accept_connection 3 returned 4 10:32:19.875057 accept_connection 3 returned 0 10:32:19.875240 Read 93 bytes 10:32:19.875342 Process 93 bytes request 10:32:19.875433 Got request: GET /verifiedserver HTTP/1.1 10:32:19.875509 Are-we-friendly question received 10:32:19.875784 Wrote request (93 bytes) input to log/6/server.input 10:32:19.876004 Identifying ourselves as friends 10:32:19.876695 Response sent (56 bytes) and written to log/6/server.response 10:32:19.876816 special request received, no persistency 10:32:19.876881 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47288 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 727 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind727 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind727 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind724 ../src/curl -q --output log/4/curl724.out --include --trace-ascii log/4/trace724 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/4/stdout724 2> log/4/stderr724 test 0728...[SOCKS5h with HTTP redirect to hostname too long] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind728 ../src/curl -q --output log/1/curl728.out --include --trace-ascii log/1/trace728 --trace-time --no-progress-meter --location --proxy socks5h://127.0.0.1:46193 http://127.0.0.1:36129/728 > log/1/stdout728 2> log/1/stderr728 728: stderr FAILED: --- log/1/check-expected 2025-09-11 10:32:21.424879090 +0000 +++ log/1/check-generated 2025-09-11 10:32:21.424879090 +0000 @@ -1 +0,0 @@ -curl: (97) SOCKS5: the destination hostname is too long to be resolved remotely by the proxy.[CR][LF] == Contents of files in the log/1/ dir after test 728 === Start of file check-expected curl: (97) SOCKS5: the destination hostname is too long to be resolved remotely by the proxy.[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind728 ../src/curl -q --output log/1/curl728.out --include --trace-ascii log/1/trace728 --trace-time --no-progress-meter --location --proxy socks5h://127.0.0.1:46193 http://127.0.0.1:36129/728 > log/1/stdout728 2> log/1/stderr728 === End of file commands.log === Start of file http_server.log 10:32:20.331275 ====> Client connect 10:32:20.331684 accept_connection 3 returned 4 10:32:20.331949 accept_connection 3 returned 0 10:32:20.332092 Read 93 bytes 10:32:20.332182 Process 93 bytes request 10:32:20.332285 Got request: GET /verifiedserver HTTP/1.1 10:32:20.332370 Are-we-friendly question received 10:32:20.332651 Wrote request (93 bytes) input to log/1/server.input 10:32:20.332842 Identifying ourselves as friends 10:32:20.333831 Response sent (56 bytes) and written to log/1/server.response 10:32:20.334009 special request received, no persistency 10:32:20.334102 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 34274 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 728 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind728 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind728 setenv HOME = /build/curl/src/build-curl/tests/log/4 test 0724...[IPFS with gateway URL from gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind724 ../src/curl -q --output log/4/curl724.out --include --trace-ascii log/4/trace724 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/4/stdout724 2> log/4/stderr724 724: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 724 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind724 ../src/curl -q --output log/4/curl724.out --include --trace-ascii log/4/trace724 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/4/stdout724 2> log/4/stderr724 === End of file commands.log === Start of file http_server.log 10:32:20.627821 ====> Client connect 10:32:20.628208 accept_connection 3 returned 4 10:32:20.628384 accept_connection 3 returned 0 10:32:20.628498 Read 93 bytes 10:32:20.628583 Process 93 bytes request 10:32:20.628658 Got request: GET /verifiedserver HTTP/1.1 10:32:20.628722 Are-we-friendly question received 10:32:20.628938 Wrote request (93 bytes) input to log/4/server.input 10:32:20.629108 Identifying ourselves as friends 10:32:20.629772 Response sent (56 bytes) and written to log/4/server.response 10:32:20.629916 special request received, no persistency 10:32:20.629984 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40924 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 724 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind724 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind729 ../src/curl -q --output log/5/curl729.out --include --trace-ascii log/5/trace729 --trace-time http://fake --limit-rate 1 -x socks4a://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@127.0.0.1:44697 > log/5/stdout729 2> log/5/stderr729 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind725 ../src/curl -q --output log/3/curl725.out --include --trace-ascii log/3/trace725 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/3/stdout725 2> log/3/stderr725 Cannot continue -- exiting now. Sorry. === End of file valgrind724 test 0729...[SOCKS4 with very long proxy user name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind729 ../src/curl -q --output log/5/curl729.out --include --trace-ascii log/5/trace729 --trace-time http://fake --limit-rate 1 -x socks4a://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@127.0.0.1:44697 > log/5/stdout729 2> log/5/stderr729 curl returned 1, when expecting 97 729: exit FAILED == Contents of files in the log/5/ dir after test 729 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind729 ../src/curl -q --output log/5/curl729.out --include --trace-ascii log/5/trace729 --trace-time http://fake --limit-rate 1 -x socks4a://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@127.0.0.1:44697 > log/5/stdout729 2> log/5/stderr729 === End of file commands.log === Start of file http_server.log 10:32:21.503461 ====> Client connect 10:32:21.503868 accept_connection 3 returned 4 10:32:21.504114 accept_connection 3 returned 0 10:32:21.504294 Read 93 bytes 10:32:21.504399 Process 93 bytes request 10:32:21.504497 Got request: GET /verifiedserver HTTP/1.1 10:32:21.504571 Are-we-friendly question received 10:32:21.504852 Wrote request (93 bytes) input to log/5/server.input 10:32:21.505060 Identifying ourselves as friends 10:32:21.505996 Response sent (56 bytes) and written to log/5/server.response 10:32:21.506154 special request received, no persistency 10:32:21.506415 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 42178 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 729 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind729 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind729 setenv HOME = /build/curl/src/build-curl/tests/log/3 test 0725...[IPFS with malformed gateway URL from gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind725 ../src/curl -q --output log/3/curl725.out --include --trace-ascii log/3/trace725 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/3/stdout725 2> log/3/stderr725 curl returned 1, when expecting 3 725: exit FAILED == Contents of files in the log/3/ dir after test 725 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind725 ../src/curl -q --output log/3/curl725.out --include --trace-ascii log/3/trace725 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/3/stdout725 2> log/3/stderr725 === End of file commands.log === Start of file http_server.log 10:32:19.800109 ====> Client connect 10:32:19.800430 accept_connection 3 returned 4 10:32:19.800625 accept_connection 3 returned 0 10:32:19.800792 Read 93 bytes 10:32:19.800899 Process 93 bytes request 10:32:19.800987 Got request: GET /verifiedserver HTTP/1.1 10:32:19.801051 Are-we-friendly question received 10:32:19.801281 Wrote request (93 bytes) input to log/3/server.input 10:32:19.801471 Identifying ourselves as friends 10:32:19.802235 Response sent (56 bytes) and written to log/3/server.response 10:32:19.802403 special request received, no persistency 10:32:19.802479 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 44974 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_vCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind730 ../src/curl -q --output log/2/curl730.out --include --trace-ascii log/2/trace730 --trace-time --ipfs-gateway http://127.0.0.1:43789/foo/bar ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/2/stdout730 2> log/2/stderr730 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind732 ../src/curl -q --output log/7/curl732.out --include --trace-ascii log/7/trace732 --trace-time --ipfs-gateway http://127.0.0.1:40129 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b" > log/7/stdout732 2> log/7/stderr732 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind733 ../src/curl -q --output log/6/curl733.out --include --trace-ascii log/6/trace733 --trace-time --ipfs-gateway http://127.0.0.1:33363 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/6/stdout733 2> log/6/stderr733 erify.out === Start of file server.cmd Testnum 725 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind725 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind725 test 0730...[IPFS arg gateway with path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind730 ../src/curl -q --output log/2/curl730.out --include --trace-ascii log/2/trace730 --trace-time --ipfs-gateway http://127.0.0.1:43789/foo/bar ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/2/stdout730 2> log/2/stderr730 730: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 730 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind730 ../src/curl -q --output log/2/curl730.out --include --trace-ascii log/2/trace730 --trace-time --ipfs-gateway http://127.0.0.1:43789/foo/bar ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/2/stdout730 2> log/2/stderr730 === End of file commands.log === Start of file http_server.log 10:32:20.643325 ====> Client connect 10:32:20.643630 accept_connection 3 returned 4 10:32:20.643797 accept_connection 3 returned 0 10:32:20.643915 Read 93 bytes 10:32:20.643990 Process 93 bytes request 10:32:20.644074 Got request: GET /verifiedserver HTTP/1.1 10:32:20.644143 Are-we-friendly question received 10:32:20.644423 Wrote request (93 bytes) input to log/2/server.input 10:32:20.644706 Identifying ourselves as friends 10:32:20.645647 Response sent (56 bytes) and written to log/2/server.response 10:32:20.645813 special request received, no persistency 10:32:20.645892 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 56220 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 730 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind730 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind730 test 0732...[IPFS with path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind732 ../src/curl -q --output log/7/curl732.out --include --trace-ascii log/7/trace732 --trace-time --ipfs-gateway http://127.0.0.1:40129 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b" > log/7/stdout732 2> log/7/stderr732 732: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 732 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind732 ../src/curl -q --output log/7/curl732.out --include --trace-ascii log/7/trace732 --trace-time --ipfs-gateway http://127.0.0.1:40129 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b" > log/7/stdout732 2> log/7/stderr732 === End of file commands.log === Start of file http_server.log 10:32:20.773617 ====> Client connect 10:32:20.773933 accept_connection 3 returned 4 10:32:20.774169 accept_connection 3 returned 0 10:32:20.775011 Read 93 bytes 10:32:20.775238 Process 93 bytes request 10:32:20.775332 Got request: GET /verifiedserver HTTP/1.1 10:32:20.775397 Are-we-friendly question received 10:32:20.775647 Wrote request (93 bytes) input to log/7/server.input 10:32:20.775828 Identifying ourselves as friends 10:32:20.776407 Response sent (56 bytes) and written to log/7/server.response 10:32:20.776544 special request received, no persistency 10:32:20.776614 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54358 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 732 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind73CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind734 ../src/curl -q --output log/1/curl734.out --include --trace-ascii log/1/trace734 --trace-time --ipfs-gateway http://127.0.0.1:36129/some/path "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/1/stdout734 2> log/1/stderr734 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind735 ../src/curl -q --output log/4/curl735.out --include --trace-ascii log/4/trace735 --trace-time --ipfs-gateway http://127.0.0.1:36757/some/path "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/4/stdout735 2> log/4/stderr735 2 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind732 test 0733...[IPFS with path and query args] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind733 ../src/curl -q --output log/6/curl733.out --include --trace-ascii log/6/trace733 --trace-time --ipfs-gateway http://127.0.0.1:33363 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/6/stdout733 2> log/6/stderr733 733: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 733 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind733 ../src/curl -q --output log/6/curl733.out --include --trace-ascii log/6/trace733 --trace-time --ipfs-gateway http://127.0.0.1:33363 "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/6/stdout733 2> log/6/stderr733 === End of file commands.log === Start of file http_server.log 10:32:20.827962 ====> Client connect 10:32:20.828323 accept_connection 3 returned 4 10:32:20.828542 accept_connection 3 returned 0 10:32:20.828678 Read 93 bytes 10:32:20.828752 Process 93 bytes request 10:32:20.828830 Got request: GET /verifiedserver HTTP/1.1 10:32:20.828893 Are-we-friendly question received 10:32:20.829248 Wrote request (93 bytes) input to log/6/server.input 10:32:20.829462 Identifying ourselves as friends 10:32:20.830271 Response sent (56 bytes) and written to log/6/server.response 10:32:20.830431 special request received, no persistency 10:32:20.830503 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47290 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 733 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind733 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind733 test 0734...[IPFS with path, query args and gateway with path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind734 ../src/curl -q --output log/1/curl734.out --include --trace-ascii log/1/trace734 --trace-time --ipfs-gateway http://127.0.0.1:36129/some/path "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/1/stdout734 2> log/1/stderr734 734: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 734 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind734 ../src/curl -q --output log/1/curl734.out --include --trace-ascii log/1/trace734 --trace-time --ipfs-gateway http://127.0.0.1:36129/some/path "ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u/a/b?foo=bar&aaa=bbb" > log/1/stdout734 2> log/1/stderr734 === End of file commands.log === Start of file http_server.log 10:32:21.300555 ====> Client connect 10:32:21.300902 accept_connection 3 returned 4 10:32:21.301072 accept_connection 3 returned 0 10:32:21.301222 Read 93 bytes 10:32:21.301311 Process 93 bytes request 10:32:21.301406 Got request: GET /verifiedserver HTTP/1.1 10:32:21.301482 Are-we-friendly question received 10:32:21.301754 Wrote request (93 bytes) input to log/1/server.input 10:32:21.301957 Identifying ourselves as friends 10:32:21.302884 Response sent (56 bytes) and written to log/1/server.response 10:32:21.303156 special request received, no persistency 10:32:21.303245 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 34280 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 734 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind734 valgrind: Fatal error at startup: a function redirection valgrind: which CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind731 ../src/curl -q --output log/8/curl731.out --include --trace-ascii log/8/trace731 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/8/stdout731 2> log/8/stderr731 is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind734 test 0735...[IPNS with path, query args and gateway with path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind735 ../src/curl -q --output log/4/curl735.out --include --trace-ascii log/4/trace735 --trace-time --ipfs-gateway http://127.0.0.1:36757/some/path "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/4/stdout735 2> log/4/stderr735 735: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 735 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind735 ../src/curl -q --output log/4/curl735.out --include --trace-ascii log/4/trace735 --trace-time --ipfs-gateway http://127.0.0.1:36757/some/path "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/4/stdout735 2> log/4/stderr735 === End of file commands.log === Start of file http_server.log 10:32:22.341191 ====> Client connect 10:32:22.341627 accept_connection 3 returned 4 10:32:22.341881 accept_connection 3 returned 0 10:32:22.342103 Read 93 bytes 10:32:22.342500 Process 93 bytes request 10:32:22.342684 Got request: GET /verifiedserver HTTP/1.1 10:32:22.342773 Are-we-friendly question received 10:32:22.343211 Wrote request (93 bytes) input to log/4/server.input 10:32:22.343559 Identifying ourselves as friends 10:32:22.347787 Response sent (56 bytes) and written to log/4/server.response 10:32:22.347971 special request received, no persistency 10:32:22.348068 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 58836 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 735 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind735 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind735 setenv HOME = /build/curl/src/build-curl/tests/log/8 test 0731...[IPFS with gateway URL and path from gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind731 ../src/curl -q --output log/8/curl731.out --include --trace-ascii log/8/trace731 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/8/stdout731 2> log/8/stderr731 731: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 731 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind731 ../src/curl -q --output log/8/curl731.out --include --trace-ascii log/8/trace731 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/8/stdout731 2> log/8/stderr731 === End of file commands.log === Start of file http_server.log 10:32:20.720077 ====> Client connect 10:32:20.720431 accept_connection 3 returned 4 10:32:20.720635 accept_connection 3 returned 0 10:32:20.720796 Read 93 bytes 10:32:20.720909 Process 93 bytes request 10:32:20.721020 Got request: GET /verifiedserver HTTP/1.1 10:32:20.721129 Are-we-friendly question received 10:32:20.721388 Wrote request (93 bytes) input to log/8/server.input 10:32:20.721594 Identifying ourselves as friends 10:32:20.722364 Response sent (56 bytes) and written to log/8/server.response 10:32:20.722496 special request received, no persistency 10:32:20.722566 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 48696 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 731 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind731 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind736 ../src/curl -q --output log/5/curl736.out --include --trace-ascii log/5/trace736 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/5/stdout736 2> log/5/stderr736 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind738 ../src/curl -q --output log/2/curl738.out --include --trace-ascii log/2/trace738 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/2/stdout738 2> log/2/stderr738 rind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind731 setenv IPFS_PATH = log/5/.ipfs test 0736...[IPFS with IPFS_PATH set, no trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind736 ../src/curl -q --output log/5/curl736.out --include --trace-ascii log/5/trace736 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/5/stdout736 2> log/5/stderr736 736: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 736 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind736 ../src/curl -q --output log/5/curl736.out --include --trace-ascii log/5/trace736 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/5/stdout736 2> log/5/stderr736 === End of file commands.log === Start of file http_server.log 10:32:22.443385 ====> Client connect 10:32:22.443780 accept_connection 3 returned 4 10:32:22.444004 accept_connection 3 returned 0 10:32:22.447524 Read 93 bytes 10:32:22.447792 Process 93 bytes request 10:32:22.447984 Got request: GET /verifiedserver HTTP/1.1 10:32:22.448102 Are-we-friendly question received 10:32:22.448374 Wrote request (93 bytes) input to log/5/server.input 10:32:22.448564 Identifying ourselves as friends 10:32:22.449410 Response sent (56 bytes) and written to log/5/server.response 10:32:22.449586 special request received, no persistency 10:32:22.449671 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 42190 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 736 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind736 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind736 setenv IPFS_PATH = log/2/.ipfs/ test 0738...[IPFS with IPFS_PATH, no gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind738 ../src/curl -q --output log/2/curl738.out --include --trace-ascii log/2/trace738 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/2/stdout738 2> log/2/stderr738 curl returned 1, when expecting 37 738: exit FAILED == Contents of files in the log/2/ dir after test 738 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind738 ../src/curl -q --output log/2/curl738.out --include --trace-ascii log/2/trace738 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/2/stdout738 2> log/2/stderr738 === End of file commands.log === Start of file http_server.log 10:32:21.554542 ====> Client connect 10:32:21.554888 accept_connection 3 returned 4 10:32:21.555313 accept_connection 3 returned 0 10:32:21.555484 Read 93 bytes 10:32:21.555588 Process 93 bytes request 10:32:21.555686 Got request: GET /verifiedserver HTTP/1.1 10:32:21.555757 Are-we-friendly question received 10:32:21.556137 Wrote request (93 bytes) input to log/2/server.input 10:32:21.556477 Identifying ourselves as friends 10:32:21.557380 Response sent (56 bytes) and written to log/2/server.response 10:32:21.557555 special request received, no persistency 10:32:21.557635 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 56234 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 738 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind738 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers vaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind737 ../src/curl -q --output log/3/curl737.out --include --trace-ascii log/3/trace737 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/3/stdout737 2> log/3/stderr737 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind739 ../src/curl -q --output log/7/curl739.out --include --trace-ascii log/7/trace739 --trace-time --ipfs-gateway "http://127.0.0.1:40129/some/path?biz=baz" "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/7/stdout739 2> log/7/stderr739 lgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind738 setenv IPFS_PATH = log/3/.ipfs/ test 0737...[IPFS with IPFS_PATH set, with trailing slash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind737 ../src/curl -q --output log/3/curl737.out --include --trace-ascii log/3/trace737 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/3/stdout737 2> log/3/stderr737 737: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 737 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind737 ../src/curl -q --output log/3/curl737.out --include --trace-ascii log/3/trace737 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/3/stdout737 2> log/3/stderr737 === End of file commands.log === Start of file http_server.log 10:32:21.528786 ====> Client connect 10:32:21.529106 accept_connection 3 returned 4 10:32:21.529311 accept_connection 3 returned 0 10:32:21.529441 Read 93 bytes 10:32:21.529525 Process 93 bytes request 10:32:21.529614 Got request: GET /verifiedserver HTTP/1.1 10:32:21.529697 Are-we-friendly question received 10:32:21.529933 Wrote request (93 bytes) input to log/3/server.input 10:32:21.530132 Identifying ourselves as friends 10:32:21.531024 Response sent (56 bytes) and written to log/3/server.response 10:32:21.531197 special request received, no persistency 10:32:21.531287 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 44986 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 737 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind737 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind737 test 0739...[IPNS path and query args for gateway and IPFS url (malformed gateway url)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind739 ../src/curl -q --output log/7/curl739.out --include --trace-ascii log/7/trace739 --trace-time --ipfs-gateway "http://127.0.0.1:40129/some/path?biz=baz" "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/7/stdout739 2> log/7/stderr739 curl returned 1, when expecting 3 739: exit FAILED == Contents of files in the log/7/ dir after test 739 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind739 ../src/curl -q --output log/7/curl739.out --include --trace-ascii log/7/trace739 --trace-time --ipfs-gateway "http://127.0.0.1:40129/some/path?biz=baz" "ipns://fancy.tld/a/b?foo=bar&aaa=bbb" > log/7/stdout739 2> log/7/stderr739 === End of file commands.log === Start of file http_server.log 10:32:21.687480 ====> Client connect 10:32:21.687913 accept_connection 3 returned 4 10:32:21.688156 accept_connection 3 returned 0 10:32:21.688356 Read 93 bytes 10:32:21.688466 Process 93 bytes request 10:32:21.688553 Got request: GET /verifiedserver HTTP/1.1 10:32:21.688630 Are-we-friendly question received 10:32:21.688902 Wrote request (93 bytes) input to log/7/server.input 10:32:21.689114 Identifying ourselves as friends 10:32:21.689864 Response sent (56 bytes) and written to log/7/server.response 10:32:21.689990 special request received, no persistency 10:32:21.690067 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54372 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 739 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind739 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need vaCMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test745.pl /build/curl/src/curl/tests/.. > log/2/stdout745 2> log/2/stderr745 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind746 ../src/curl -q --output log/3/curl746.out --include --trace-ascii log/3/trace746 --trace-time http://neverused.example/ -m 22222242222222222 > log/3/stdout746 2> log/3/stderr746 lgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind739 test 0745...[Verify that typecheck-gcc and curl.h are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test745.pl /build/curl/src/curl/tests/.. > log/2/stdout745 2> log/2/stderr745 valgrind SKIPPED s------e--- OK (715 out of 1725, remaining: 02:30, took 0.206s, duration: 01:46) CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind742 ../src/curl -q --output log/4/curl742.out --include --trace-ascii log/4/trace742 --trace-time http://cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc:36757 -x socks5h://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@127.0.0.1:39563 > log/4/stdout742 2> log/4/stderr742 test 0746...[too large numerical value passed to -m] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind746 ../src/curl -q --output log/3/curl746.out --include --trace-ascii log/3/trace746 --trace-time http://neverused.example/ -m 22222242222222222 > log/3/stdout746 2> log/3/stderr746 746: stderr FAILED: --- log/3/check-expected 2025-09-11 10:32:23.308916594 +0000 +++ log/3/check-generated 2025-09-11 10:32:23.308916594 +0000 @@ -1,2 +0,0 @@ -curl: option -m: expected a proper numerical parameter[CR][LF] -curl: try 'curl --help' for more information[CR][LF] == Contents of files in the log/3/ dir after test 746 === Start of file check-expected curl: option -m: expected a proper numerical parameter[CR][LF] curl: try 'curl --help' for more information[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind746 ../src/curl -q --output log/3/curl746.out --include --trace-ascii log/3/trace746 --trace-time http://neverused.example/ -m 22222242222222222 > log/3/stdout746 2> log/3/stderr746 === End of file commands.log === Start of file server.cmd Testnum 746 === End of file server.cmd === Start of file valgrind746 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind746 test 0742...[SOCKS5-hostname with max length credentials and max host name length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind742 ../src/curl -q --output log/4/curl742.out --include --trace-ascii log/4/trace742 --trace-time http://cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc:36757 -x socks5h://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@127.0.0.1:39563 > log/4/stdout742 2> log/4/stderr742 742: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 742 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind742 ../src/curl -q --output log/4/curl742.out --include --trace-ascii log/4/trace742 --trace-time http://cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc:36757 -x socks5h://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@127.0.0.1:39563 > log/4/stdout742 2> log/4/stderr742 === End of file commands.log === Start of file http_server.log 10:32:23.306829 ====> Client connect 10:32:23.307275 accept_connection 3 returned 4 10:32:23.307502 accept_connection 3 returned 0 10:32:23.307655 Read 93 bytes 10:32:23.307791 Process 93 bytes request 10:32:23.307894 Got request: GET /verifiedserver HTTP/1.1 10:32:23.307978 Are-we-friendly question received 10:32:23.308263 Wrote request (93 bytes) input to log/4/server.input 10:32:23.308517 Identifying ourselves as friends 10:32:23.309425 Response sent (56 bytes) and written to log/4/server.response 10:32:23.309564 special request received, no persistency 10:32:23.309632 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 58852 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd method 2 user aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa password bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb backendport 36757 Testnum 742 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind742 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind743 ../src/curl -q --output log/8/curl743.out --include --trace-ascii log/8/trace743 --trace-time http://127.0.0.1:36007/743 -K log/8/config > log/8/stdout743 2> log/8/stderr743 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind748 ../src/curl -q --output log/2/curl748.out --include --trace-ascii log/2/trace748 --trace-time -K log/2/cmd > log/2/stdout748 2> log/2/stderr748 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind740 ../src/curl -q --output log/6/curl740.out --include --trace-ascii log/6/trace740 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout740 2> log/6/stderr740 d: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind742 test 0748...[A --config file that uses -h and no URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind748 ../src/curl -q --output log/2/curl748.out --include --trace-ascii log/2/trace748 --trace-time -K log/2/cmd > log/2/stdout748 2> log/2/stderr748 curl returned 1, when expecting 2 748: exit FAILED == Contents of files in the log/2/ dir after test 748 === Start of file cmd -h all === End of file cmd === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind748 ../src/curl -q --output log/2/curl748.out --include --trace-ascii log/2/trace748 --trace-time -K log/2/cmd > log/2/stdout748 2> log/2/stderr748 === End of file commands.log === Start of file server.cmd Testnum 748 === End of file server.cmd === Start of file valgrind748 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind748 test 0743...[--config with a 127 byte line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind743 ../src/curl -q --output log/8/curl743.out --include --trace-ascii log/8/trace743 --trace-time http://127.0.0.1:36007/743 -K log/8/config > log/8/stdout743 2> log/8/stderr743 743: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 743 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind743 ../src/curl -q --output log/8/curl743.out --include --trace-ascii log/8/trace743 --trace-time http://127.0.0.1:36007/743 -K log/8/config > log/8/stdout743 2> log/8/stderr743 === End of file commands.log === Start of file config -A pointless data = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" === End of file config === Start of file http_server.log 10:32:22.402263 ====> Client connect 10:32:22.402513 accept_connection 3 returned 4 10:32:22.402673 accept_connection 3 returned 0 10:32:22.402799 Read 93 bytes 10:32:22.402935 Process 93 bytes request 10:32:22.403052 Got request: GET /verifiedserver HTTP/1.1 10:32:22.403127 Are-we-friendly question received 10:32:22.403360 Wrote request (93 bytes) input to log/8/server.input 10:32:22.403570 Identifying ourselves as friends 10:32:22.404277 Response sent (56 bytes) and written to log/8/server.response 10:32:22.404417 special request received, no persistency 10:32:22.404486 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 48704 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 743 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind743 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind743 setenv HOME = /build/curl/src/build-curl/tests/log/6 test 0740...[IPFS with gateway URL from multiline gateway file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind740 ../src/curl -q --output log/6/curl740.out --include --trace-ascii log/6/trace740 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout740 2> log/6/stderr740 740: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 740 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind740 ../src/curl -q --output log/6/curl740.out --include --trace-ascii log/6/trace740 --trace-time ipCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind741 ../src/curl -q --output log/1/curl741.out --include --trace-ascii log/1/trace741 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/1/stdout741 2> log/1/stderr741 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind747 ../src/curl -q --output log/7/curl747.out --include --trace-ascii log/7/trace747 --trace-time http://127.0.0.1:40129/747 > log/7/stdout747 2> log/7/stderr747 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind751 ./libtest/libtests lib751 - > log/8/stdout751 2> log/8/stderr751 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind749 ../src/curl -q --output log/3/curl749.out --include --trace-ascii log/3/trace749 --trace-time http://test.example --proxy http://127.0.0.1:36933 --proxytunnel -sS > log/3/stdout749 2> log/3/stderr749 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind750 ../src/curl -q --output log/4/curl750.out --include --trace-ascii log/4/trace750 --trace-time http://test.example --proxy http://127.0.0.1:36757 --proxytunnel -sS > log/4/stdout750 2> log/4/stderr750 fs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/6/stdout740 2> log/6/stderr740 === End of file commands.log === Start of file http_server.log 10:32:21.711289 ====> Client connect 10:32:21.711576 accept_connection 3 returned 4 10:32:21.711756 accept_connection 3 returned 0 10:32:21.711901 Read 93 bytes 10:32:21.712001 Process 93 bytes request 10:32:21.712091 Got request: GET /verifiedserver HTTP/1.1 10:32:21.712165 Are-we-friendly question received 10:32:21.712384 Wrote request (93 bytes) input to log/6/server.input 10:32:21.712553 Identifying ourselves as friends 10:32:21.713185 Response sent (56 bytes) and written to log/6/server.response 10:32:21.713351 special request received, no persistency 10:32:21.713422 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47304 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 740 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind740 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind740 setenv HOME = /build/curl/src/build-curl/tests/log/1 test 0741...[IPFS malformed gw URL from multiline gateway file, first line no url] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind741 ../src/curl -q --output log/1/curl741.out --include --trace-ascii log/1/trace741 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/1/stdout741 2> log/1/stderr741 curl returned 1, when expecting 3 741: exit FAILED == Contents of files in the log/1/ dir after test 741 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind741 ../src/curl -q --output log/1/curl741.out --include --trace-ascii log/1/trace741 --trace-time ipfs://bafybeidecnvkrygux6uoukouzps5ofkeevoqland7kopseiod6pzqvjg7u > log/1/stdout741 2> log/1/stderr741 === End of file commands.log === Start of file http_server.log 10:32:22.279412 ====> Client connect 10:32:22.279763 accept_connection 3 returned 4 10:32:22.279972 accept_connection 3 returned 0 10:32:22.280126 Read 93 bytes 10:32:22.280216 Process 93 bytes request 10:32:22.280307 Got request: GET /verifiedserver HTTP/1.1 10:32:22.280380 Are-we-friendly question received 10:32:22.280640 Wrote request (93 bytes) input to log/1/server.input 10:32:22.280866 Identifying ourselves as friends 10:32:22.281797 Response sent (56 bytes) and written to log/1/server.response 10:32:22.281934 special request received, no persistency 10:32:22.281996 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 34286 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 741 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind741 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind741 test 0747...[Reject too many HTTP response headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind747 ../src/curl -q --output log/7/curl747.out --include --trace-ascii log/7/trace747 --trace-time http://127.0.0.1:40129/747 > log/7/stdout747 2> log/7/stderr747 747: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 747 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind747 ../src/curl -q --output log/7/curl747.out --include --trace-ascii log/7/trace747 --trace-time http://127.0.0.1:40129/747 > log/7/stdout747 2> log/7/stderr747 === End of file commands.log === Start of file http_server.log 10:32:22.627366 ====> Client connect 10:32:22.627765 accept_connection 3 returned 4 10:32:22.628000 accept_connection 3 returned 0 10:32:22.628146 Read 93 bytes 10:32:22.628228 Process 93 bytes request 10:32:22.628314 Got request: GET /verifiedserver HTTP/1.1 10:32:22.628382 Are-we-friendly question received 10:32:22.628633 Wrote request (93 bytes) input to log/7/server.input 10:32:22.628814 Identifying ourselves as friends 10:32:22.629487 Response sent (56 bytes) and written to log/7/server.response 10:32:22.629589 special request received, no persistency 10:32:22.629647 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54376 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 747 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind747 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind747 test 0749...[HTTP CONNECT with proxy returning 400 and closing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind749 ../src/curl -q --output log/3/curl749.out --include --trace-ascii log/3/trace749 --trace-time http://test.example --proxy http://127.0.0.1:36933 --proxytunnel -sS > log/3/stdout749 2> log/3/stderr749 749: stderr FAILED: --- log/3/check-expected 2025-09-11 10:32:24.312936580 +0000 +++ log/3/check-generated 2025-09-11 10:32:24.308936500 +0000 @@ -1 +0,0 @@ -curl: (56) CONNECT tunnel failed, response 400[CR][LF] == Contents of files in the log/3/ dir after test 749 === Start of file check-expected curl: (56) CONNECT tunnel failed, response 400[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind749 ../src/curl -q --output log/3/curl749.out --include --trace-ascii log/3/trace749 --trace-time http://test.example --proxy http://127.0.0.1:36933 --proxytunnel -sS > log/3/stdout749 2> log/3/stderr749 === End of file commands.log === Start of file http_server.log 10:32:23.151361 ====> Client connect 10:32:23.151636 accept_connection 3 returned 4 10:32:23.151774 accept_connection 3 returned 0 10:32:23.151883 Read 93 bytes 10:32:23.151947 Process 93 bytes request 10:32:23.152028 Got request: GET /verifiedserver HTTP/1.1 10:32:23.152097 Are-we-friendly question received 10:32:23.152261 Wrote request (93 bytes) input to log/3/server.input 10:32:23.152389 Identifying ourselves as friends 10:32:23.152941 Response sent (56 bytes) and written to log/3/server.response 10:32:23.153040 special request received, no persistency 10:32:23.153102 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 44994 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 749 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind749 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind749 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind752 ../src/curl -q --output log/6/curl752.out --include --trace-ascii log/6/trace752 --trace-time http://127.0.0.1:33363/752 -f --retry 1 > log/6/stdout752 2> log/6/stderr752 test 0750...[HTTP CONNECT with proxy returning just HTML and closing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind750 ../src/curl -q --output log/4/curl750.out --include --trace-ascii log/4/trace750 --trace-time http://test.example --proxy http://127.0.0.1:36757 --proxytunnel -sS > log/4/stdout750 2> log/4/stderr750 750: stderr FAILED: --- log/4/check-expected 2025-09-11 10:32:24.352937376 +0000 +++ log/4/check-generated 2025-09-11 10:32:24.352937376 +0000 @@ -1 +0,0 @@ -curl: (43) Invalid response header[CR][LF] == Contents of files in the log/4/ dir after test 750 === Start of file check-expected curl: (43) Invalid response header[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind750 ../src/curl -q --output log/4/curl750.out --include --trace-ascii log/4/trace750 --trace-time http://test.example --proxy http://127.0.0.1:36757 --proxytunnel -sS > log/4/stdout750 2> log/4/stderr750 === End of file commands.log === Start of file http_server.log 10:32:24.242346 ====> Client connect 10:32:24.242643 accept_connection 3 returned 4 10:32:24.242818 accept_connection 3 returned 0 10:32:24.243086 Read 93 bytes 10:32:24.243195 Process 93 bytes request 10:32:24.243288 Got request: GET /verifiedserver HTTP/1.1 10:32:24.243363 Are-we-friendly question received 10:32:24.243617 Wrote request (93 bytes) input to log/4/server.input 10:32:24.243829 Identifying ourselves as friends 10:32:24.244555 Response sent (56 bytes) and written to log/4/server.response 10:32:24.244683 special request received, no persistency 10:32:24.244749 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 58858 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 750 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind750 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind750 test 0751...[multi - add many easy handles] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind751 ./libtest/libtests lib751 - > log/8/stdout751 2> log/8/stderr751 libtests returned 1, when expecting 0 751: exit FAILED == Contents of files in the log/8/ dir after test 751 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind751 ./libtest/libtests lib751 - > log/8/stdout751 2> log/8/stderr751 === End of file commands.log === Start of file server.cmd Testnum 751 === End of file server.cmd === Start of file valgrind751 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind751 test 0752...[--retry and -f on a HTTP 404 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind752 ../src/curl -q --output log/6/curl752.out --include --trace-ascii log/6/trace752 --trace-time http://127.0.0.1:33363/752 -f --retry 1 > log/6/stdout752 2> log/6/stderr752 752: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 752 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind752 ../src/curl -q --output log/6/curl752.out --include --trace-ascii log/6/trace752 --trace-time http://127.0.0.1:33363/752 -f --retry 1 > log/6/stdout752 2> log/6/stderr752 === End of file commands.log === Start of file http_server.log 10:32:23.404397 ====> Client connect 10:32:23.404659 accept_connection 3 returned 4 10:32:23.404799 accept_connection 3 returned 0 10:32:23.404916 Read 93 bytes 10:32:23.404998 Process 93 bytes request 10:32:23.405082 Got request: GET /verifiedserver HTTP/1.1 10:32:23.405149 Are-we-friendly question received 10:32:23.405370 Wrote request (93 bytes) input to log/6/server.input 10:32:23.405559 Identifying ourselves as friends 10:32:23.406252 Response sent (56 bytes) and written to log/6/server.response 10:32:23.406403 special request received, no persistency 10:32:23.406466 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 12CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind744 ../src/curl -q --output log/5/curl744.out --include --trace-ascii log/5/trace744 --trace-time http://foo.host:41733/744 -p --proxy1.0 127.0.0.1:43353 -A "" --netrc-file log/5/netrc744 > log/5/stdout744 2> log/5/stderr744 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind754 ../src/curl -q --output log/2/curl754.out --include --trace-ascii log/2/trace754 --trace-time ftp://127.0.0.1:37959/path/ -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/2/stdout754 2> log/2/stderr754 7.0.0.1 port 47314 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 752 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind752 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind752 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/5/server/http2_server.pid" --logfile "log/5/http2_server.log" --logdir "log/5" --portfile log/5/server/http2_server.port --config log/5/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 112645 port 43353 * pid http-proxy => 112645 112645 test 0744...[--netrc-file with a 127 byte line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind744 ../src/curl -q --output log/5/curl744.out --include --trace-ascii log/5/trace744 --trace-time http://foo.host:41733/744 -p --proxy1.0 127.0.0.1:43353 -A "" --netrc-file log/5/netrc744 > log/5/stdout744 2> log/5/stderr744 744: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 744 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind744 ../src/curl -q --output log/5/curl744.out --include --trace-ascii log/5/trace744 --trace-time http://foo.host:41733/744 -p --proxy1.0 127.0.0.1:43353 -A "" --netrc-file log/5/netrc744 > log/5/stdout744 2> log/5/stderr744 === End of file commands.log === Start of file http2_server.log 10:32:23.720871 Run as proxy, CONNECT to host 127.0.0.1 10:32:23.721729 Running HTTP IPv4 version on port 43353 10:32:23.722335 Wrote pid 112645 to log/5/server/http2_server.pid 10:32:23.722779 Wrote port 43353 to log/5/server/http2_server.port === End of file http2_server.log === Start of file http_server.log 10:32:23.399311 ====> Client connect 10:32:23.399629 accept_connection 3 returned 4 10:32:23.399810 accept_connection 3 returned 0 10:32:23.399945 Read 93 bytes 10:32:23.400028 Process 93 bytes request 10:32:23.400112 Got request: GET /verifiedserver HTTP/1.1 10:32:23.400189 Are-we-friendly question received 10:32:23.400429 Wrote request (93 bytes) input to log/5/server.input 10:32:23.400630 Identifying ourselves as friends 10:32:23.401408 Response sent (56 bytes) and written to log/5/server.response 10:32:23.401559 special request received, no persistency 10:32:23.401639 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 42198 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file netrc744 machine foo.host login foo password baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar === End of file netrc744 === Start of file server.cmd Testnum 744 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind744 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind744 test 0754...[FTP list with quote ops] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind754 ../src/curl -q --output log/2/curl754.out --include --trace-ascii log/2/trace754 --trace-time ftp://127.0.0.1:37959/path/ -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/2/stdout754 2> log/2/stderr754 754: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 754 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind754 ../src/curl -q --output log/2/curl754.out --include --trace-ascii log/2/trace754 --trace-time ftp://127.0.0.1:37959/path/ -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" > log/2/stdout754 2> log/2/stderr754 === End of file commands.log === Start of file ftp_server.log 10:32:23.747269 ====> Client connect 10:32:23.750656 > "220- _ _ ____ _ [CR][LF]220- ___| CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind755 ../src/curl -q --output log/1/curl755.out --include --trace-ascii log/1/trace755 --trace-time http://foo.host/755 --proxy 127.0.0.1:36129 -A "" --netrc > log/1/stdout755 2> log/1/stderr755 | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:23.753265 < "USER anonymous" 10:32:23.753998 > "331 We are happy you popped in![CR][LF]" 10:32:23.756802 < "PASS ftp@example.com" 10:32:23.757321 > "230 Welcome you silly person[CR][LF]" 10:32:23.760510 < "PWD" 10:32:23.761105 > "257 "/" is current directory[CR][LF]" 10:32:23.764094 < "EPSV" 10:32:23.764526 ====> Passive DATA channel requested by client 10:32:23.764794 DATA sockfilt for passive data channel starting... 10:32:23.777793 DATA sockfilt for passive data channel started (pid 113052) 10:32:23.779089 DATA sockfilt for passive data channel listens on port 36657 10:32:23.779592 > "229 Entering Passive Mode (|||36657|)[LF]" 10:32:23.779857 Client has been notified that DATA conn will be accepted on port 36657 10:32:23.785032 Client connects to port 36657 10:32:23.785419 ====> Client established passive DATA connection on port 36657 10:32:23.786492 < "TYPE I" 10:32:23.786964 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:23.790278 < "SIZE verifiedserver" 10:32:23.790865 > "213 17[CR][LF]" 10:32:23.795631 < "RETR verifiedserver" 10:32:23.796257 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:23.797189 =====> Closing passive DATA connection... 10:32:23.797415 Server disconnects passive DATA connection 10:32:23.801554 Server disconnected passive DATA connection 10:32:23.802031 DATA sockfilt for passive data channel quits (pid 113052) 10:32:23.803969 DATA sockfilt for passive data channel quit (pid 113052) 10:32:23.804366 =====> Closed passive DATA connection 10:32:23.804766 > "226 File transfer complete[CR][LF]" 10:32:23.843055 < "QUIT" 10:32:23.843521 > "221 bye bye baby[CR][LF]" 10:32:23.848493 MAIN sockfilt said DISC 10:32:23.848920 ====> Client disconnected 10:32:23.849586 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:23.416009 ====> Client connect 10:32:23.418109 Received DATA (on stdin) 10:32:23.418378 > 160 bytes data, server => client 10:32:23.419171 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:23.419420 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:23.419524 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:23.420264 < 16 bytes data, client => server 10:32:23.420441 'USER anonymous\r\n' 10:32:23.423399 Received DATA (on stdin) 10:32:23.423692 > 33 bytes data, server => client 10:32:23.423837 '331 We are happy you popped in!\r\n' 10:32:23.424846 < 22 bytes data, client => server 10:32:23.425089 'PASS ftp@example.com\r\n' 10:32:23.427411 Received DATA (on stdin) 10:32:23.427653 > 30 bytes data, server => client 10:32:23.427796 '230 Welcome you silly person\r\n' 10:32:23.428646 < 5 bytes data, client => server 10:32:23.428917 'PWD\r\n' 10:32:23.431016 Received DATA (on stdin) 10:32:23.431241 > 30 bytes data, server => client 10:32:23.431363 '257 "/" is current directory\r\n' 10:32:23.432335 < 6 bytes data, client => server 10:32:23.432548 'EPSV\r\n' 10:32:23.449031 Received DATA (on stdin) 10:32:23.449240 > 38 bytes data, server => client 10:32:23.449368 '229 Entering Passive Mode (|||36657|)\n' 10:32:23.454358 < 8 bytes data, client => server 10:32:23.454558 'TYPE I\r\n' 10:32:23.456389 Received DATA (on stdin) 10:32:23.456571 > 33 bytes data, server => client 10:32:23.456673 '200 I modify TYPE as you wanted\r\n' 10:32:23.458949 < 21 bytes data, client => server 10:32:23.459233 'SIZE verifiedserver\r\n' 10:32:23.461724 Received DATA (on stdin) 10:32:23.462012 > 8 bytes data, server => client 10:32:23.462157 '213 17\r\n' 10:32:23.463262 < 21 bytes data, client => server 10:32:23.463513 'RETR verifiedserver\r\n' 10:32:23.466469 Received DATA (on stdin) 10:32:23.466692 > 29 bytes data, server => client 10:32:23.466782 '150 Binary junk (17 bytes).\r\n' 10:32:23.474198 Received DATA (on stdin) 10:32:23.474385 > 28 bytes data, server => client 10:32:23.474492 '226 File transfer complete\r\n' 10:32:23.511741 < 6 bytes data, client => server 10:32:23.512012 'QUIT\r\n' 10:32:23.512935 Received DATA (on stdin) 10:32:23.513127 > 18 bytes data, server => client 10:32:23.513235 '221 bye bye baby\r\n' 10:32:23.517429 ====> Client disconnect 10:32:23.518365 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:23.444160 Running IPv4 version 10:32:23.444777 Listening on port 36657 10:32:23.445268 Wrote pid 113052 to log/2/server/ftp_sockdata.pid 10:32:23.445458 Received PING (on stdin) 10:32:23.447808 Received PORT (on stdin) 10:32:23.453859 ====> Client connect 10:32:23.467072 Received DATA (on stdin) 10:32:23.467260 > 17 bytes data, server => client 10:32:23.467362 'WE ROOLZ: 79558\r\n' 10:32:23.467758 Received DISC (on stdin) 10:32:23.467972 ====> Client forcibly disconnected 10:32:23.471856 Received QUIT (on stdin) 10:32:23.472058 quits 10:32:23.472501 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY FAIL 500 this might not be a failure Testnum 754 === End of file server.cmd === Start of file valgrind754 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind754 setenv NETRC = log/1/netrc755 test 0755...[netrc with NETRC pointing out the file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind755 ../src/curl -q --output log/1/curl755.out --include --trace-ascii log/1/trace755 --trace-time http://foo.host/755 --proxy 127.0.0.1:36129 -A "" --netrc > log/1/stdout755 2> log/1/stderr755 755: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 755 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind755 ../src/curl -q --output log/1/curl755.out --include --trace-ascii log/1/trace755 --trace-time http://foo.host/755 --proxy 127.0.0.1:36129 -A "" --netrc > log/1/stdout755 2> log/1/stderr755 === End of file commands.log === Start of file http_server.log 10:32:23.885299 ====> Client connect 10:32:23.885718 accept_connection 3 returned 4 10:32:23.885979 accept_connection 3 returned 0 10:32:23.886835 Read 93 bytes 10:32:23.887339 Process 93 bytes request 10:32:23.887445 Got request: GET /verifiedserver HTTP/1.1 10:32:23.887532 Are-we-friendly question received 10:32:23.887844 Wrote request (93 bytes) input to log/1/server.input 10:32:23.888097 Identifying ourselves as frCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind759 ../src/curl -q --output log/4/curl759.out --include --trace-ascii log/4/trace759 --trace-time "{,,,,,,,}" "{," "{,,," > log/4/stdout759 2> log/4/stderr759 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind760 ../src/curl -q --output log/3/curl760.out --include --trace-ascii log/3/trace760 --trace-time -no1 -no2 --url "Qttp://internal.dxample.lol/status" -: --url "http" > log/3/stdout760 2> log/3/stderr760 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind756 ../src/curl -q --include --trace-ascii log/7/trace756 --trace-time http://127.0.0.1:40129/want/756 http://127.0.0.1:40129/want/7560002 --out-null -o - > log/7/stdout756 2> log/7/stderr756 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind761 ../src/curl -q --output log/6/curl761.out --include --trace-ascii log/6/trace761 --trace-time http://testingthis/{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b > log/6/stdout761 2> log/6/stderr761 iends 10:32:23.888802 Response sent (56 bytes) and written to log/1/server.response 10:32:23.888984 special request received, no persistency 10:32:23.889072 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 34292 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file netrc755 machine foo.host login foo password alone-in-the-dark === End of file netrc755 === Start of file server.cmd Testnum 755 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind755 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind755 test 0759...[glob '{,'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind759 ../src/curl -q --output log/4/curl759.out --include --trace-ascii log/4/trace759 --trace-time "{,,,,,,,}" "{," "{,,," > log/4/stdout759 2> log/4/stderr759 curl returned 1, when expecting 3 759: exit FAILED == Contents of files in the log/4/ dir after test 759 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind759 ../src/curl -q --output log/4/curl759.out --include --trace-ascii log/4/trace759 --trace-time "{,,,,,,,}" "{," "{,,," > log/4/stdout759 2> log/4/stderr759 === End of file commands.log === Start of file server.cmd Testnum 759 === End of file server.cmd === Start of file valgrind759 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind759 test 0760...[more cmdline options than URLs and --next] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind760 ../src/curl -q --output log/3/curl760.out --include --trace-ascii log/3/trace760 --trace-time -no1 -no2 --url "Qttp://internal.dxample.lol/status" -: --url "http" > log/3/stdout760 2> log/3/stderr760 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/3/ dir after test 760 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind760 ../src/curl -q --output log/3/curl760.out --include --trace-ascii log/3/trace760 --trace-time -no1 -no2 --url "Qttp://internal.dxample.lol/status" -: --url "http" > log/3/stdout760 2> log/3/stderr760 === End of file commands.log === Start of file server.cmd Testnum 760 === End of file server.cmd === Start of file valgrind760 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind760 test 0761...[too many {} globs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind761 ../src/curl -q --output log/6/curl761.out --include --trace-ascii log/6/trace761 --trace-time http://testingthis/{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b > log/6/stdout761 2> log/6/stderr761 761: stderr FAILED: --- log/6/check-expected 2025-09-11 10:32:25.284955928 +0000 +++ log/6/check-generated 2025-09-11 10:32:25.284955928 +0000 @@ -1,2 +0,0 @@ -curl: (3) too many {} sets in URL position 403:[CR][LF] -http://testingthis/{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a[CR][LF] == Contents of files in the log/6/ dir after test 761 === Start of file check-expected curl: (3) too many {} sets in URL position 403:[CR][LF] http://testingthis/{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind761 ../src/curl -q --output log/6/curl761.out --include --trace-ascii log/6/trace761 --trace-time http://testingthis/{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b > log/6/stdout761 2> log/6/stderr761 === End of file commands.log === Start of file server.cmd Testnum 761 === End of file server.cmd === Start of file valgrind761 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind761 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind763 ../src/curl -q --output log/2/curl763.out --include --trace-ascii log/2/trace763 --trace-time '​‌' > log/2/stdout763 2> log/2/stderr763 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind757 ./libtest/libtests lib757 http://127.0.0.1:36007/we/want/757 > log/8/stdout757 2> log/8/stderr757 test 0756...[mix --output and --out-null] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind756 ../src/curl -q --include --trace-ascii log/7/trace756 --trace-time http://127.0.0.1:40129/want/756 http://127.0.0.1:40129/want/7560002 --out-null -o - > log/7/stdout756 2> log/7/stderr756 756: stdout FAILED: --- log/7/check-expected 2025-09-11 10:32:25.332956884 +0000 +++ log/7/check-generated 2025-09-11 10:32:25.332956884 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Thu, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Response: 1[LF] -Content-Type: text/html[LF] -Content-Length: 8[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Thu, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Response: 2[LF] -Content-Type: text/html[LF] -Content-Length: 8[LF] -[LF] -Hello2![LF] == Contents of files in the log/7/ dir after test 756 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Thu, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Response: 1[LF] Content-Type: text/html[LF] Content-Length: 8[LF] [LF] HTTP/1.1 200 OK[LF] Date: Thu, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Response: 2[LF] Content-Type: text/html[LF] Content-Length: 8[LF] [LF] Hello2![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind756 ../src/curl -q --include --trace-ascii log/7/trace756 --trace-time http://127.0.0.1:40129/want/756 http://127.0.0.1:40129/want/7560002 --out-null -o - > log/7/stdout756 2> log/7/stderr756 === End of file commands.log === Start of file http_server.log 10:32:24.105223 ====> Client connect 10:32:24.105604 accept_connection 3 returned 4 10:32:24.105815 accept_connection 3 returned 0 10:32:24.105977 Read 93 bytes 10:32:24.106090 Process 93 bytes request 10:32:24.106199 Got request: GET /verifiedserver HTTP/1.1 10:32:24.106296 Are-we-friendly question received 10:32:24.106571 Wrote request (93 bytes) input to log/7/server.input 10:32:24.106816 Identifying ourselves as friends 10:32:24.107909 Response sent (56 bytes) and written to log/7/server.response 10:32:24.108071 special request received, no persistency 10:32:24.108152 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54388 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 756 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind756 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind756 test 0763...[Unicode hostname ending up in a blank name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind763 ../src/curl -q --output log/2/curl763.out --include --trace-ascii log/2/trace763 --trace-time '​‌' > log/2/stdout763 2> log/2/stderr763 curl returned 1, when expecting 3 763: exit FAILED == Contents of files in the log/2/ dir after test 763 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind763 ../src/curl -q --output log/2/curl763.out --include --trace-ascii log/2/trace763 --trace-time '​‌' > log/2/stdout763 2> log/2/stderr763 === End of file commands.log === Start of file server.cmd Testnum 763 === End of file server.cmd === Start of file valgrind763 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind763 test 0757...[MIME parts reused as a child part, using data_cb] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind757 ./libtest/libtests lib757 http://127.0.0.1:36007/we/want/757 > log/8/stdout757 2> log/8/stderr757 757: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 757 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind757 ./libtest/libtests lib757 http://127.0.0.1:36007/we/want/757 > log/8/stdout757 2> log/8/stderr757 === End of file commands.log === Start of file http_server.log 10:32:24.219284 ====> Client connect 10:32:24.219643 accept_connection 3 returned 4 10:32:24.219853 accept_connection 3 returned 0 10:32:24.219991 Read 93 bytes 10:32:24.220093 Process 93 bytes requeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind762 ../src/curl -q --trace-ascii log/5/trace762 --trace-time http://127.0.0.1:41733/762 -O --remote-time --output-dir log/5 > log/5/stdout762 2> log/5/stderr762 CMD (256): /usr/bin/perl -e 'exit((stat("log/5/762"))[9] != -922349651)' CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind785 ../src/curl -q --output log/4/curl785.out --include --trace-ascii log/4/trace785 --trace-time http://127.0.0.1:36757/785 --variable "name[5-]@log/4/in785" --expand-data '{{name}}' > log/4/stdout785 2> log/4/stderr785 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind784 ../src/curl -q --output log/1/curl784.out --include --trace-ascii log/1/trace784 --trace-time http://127.0.0.1:36129/784 --variable "name[5-15]@log/1/in784" --expand-data '{{name}}' > log/1/stdout784 2> log/1/stderr784 st 10:32:24.220214 Got request: GET /verifiedserver HTTP/1.1 10:32:24.220327 Are-we-friendly question received 10:32:24.220602 Wrote request (93 bytes) input to log/8/server.input 10:32:24.220801 Identifying ourselves as friends 10:32:24.221507 Response sent (56 bytes) and written to log/8/server.response 10:32:24.221637 special request received, no persistency 10:32:24.221700 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 48714 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 757 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind757 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind757 test 0762...[HTTP GET with --remote-time with file date from 1940] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind762 ../src/curl -q --trace-ascii log/5/trace762 --trace-time http://127.0.0.1:41733/762 -O --remote-time --output-dir log/5 > log/5/stdout762 2> log/5/stderr762 postcheck /usr/bin/perl -e 'exit((stat("log/5/762"))[9] != -922349651)' 762: postcheck FAILED == Contents of files in the log/5/ dir after test 762 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind762 ../src/curl -q --trace-ascii log/5/trace762 --trace-time http://127.0.0.1:41733/762 -O --remote-time --output-dir log/5 > log/5/stdout762 2> log/5/stderr762 === End of file commands.log === Start of file http_server.log 10:32:25.464268 ====> Client connect 10:32:25.464644 accept_connection 3 returned 4 10:32:25.464879 accept_connection 3 returned 0 10:32:25.465053 Read 93 bytes 10:32:25.465157 Process 93 bytes request 10:32:25.465256 Got request: GET /verifiedserver HTTP/1.1 10:32:25.465354 Are-we-friendly question received 10:32:25.465662 Wrote request (93 bytes) input to log/5/server.input 10:32:25.465935 Identifying ourselves as friends 10:32:25.466782 Response sent (56 bytes) and written to log/5/server.response 10:32:25.470218 special request received, no persistency 10:32:25.470388 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 42208 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 762 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind762 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind762 test 0785...[--variable with a file byte range without end] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind785 ../src/curl -q --output log/4/curl785.out --include --trace-ascii log/4/trace785 --trace-time http://127.0.0.1:36757/785 --variable "name[5-]@log/4/in785" --expand-data '{{name}}' > log/4/stdout785 2> log/4/stderr785 785: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 785 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind785 ../src/curl -q --output log/4/curl785.out --include --trace-ascii log/4/trace785 --trace-time http://127.0.0.1:36757/785 --variable "name[5-]@log/4/in785" --expand-data '{{name}}' > log/4/stdout785 2> log/4/stderr785 === End of file commands.log === Start of file http_server.log 10:32:26.024572 ====> Client connect 10:32:26.024855 accept_connection 3 returned 4 10:32:26.025009 accept_connection 3 returned 0 10:32:26.025116 Read 93 bytes 10:32:26.025186 Process 93 bytes request 10:32:26.025264 Got request: GET /verifiedserver HTTP/1.1 10:32:26.025333 Are-we-friendly question received 10:32:26.025508 Wrote request (93 bytes) input to log/4/server.input 10:32:26.025638 Identifying ourselves as friends 10:32:26.026161 Response sent (56 bytes) and written to log/4/server.response 10:32:26.026250 special request received, no persistency 10:32:26.026316 ====> Client disCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind786 ../src/curl -q --output log/3/curl786.out --include --trace-ascii log/3/trace786 --trace-time http://127.0.0.1:36933/786 --variable "name[5-15]@-" --expand-data '{{name}}' log/3/stdout786 2> log/3/stderr786 connect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 58870 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file in785 On the first Monday of the month of April, 1625, the market town of Meung === End of file in785 === Start of file server.cmd Testnum 785 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind785 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind785 test 0784...[--variable with a file byte range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind784 ../src/curl -q --output log/1/curl784.out --include --trace-ascii log/1/trace784 --trace-time http://127.0.0.1:36129/784 --variable "name[5-15]@log/1/in784" --expand-data '{{name}}' > log/1/stdout784 2> log/1/stderr784 784: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 784 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind784 ../src/curl -q --output log/1/curl784.out --include --trace-ascii log/1/trace784 --trace-time http://127.0.0.1:36129/784 --variable "name[5-15]@log/1/in784" --expand-data '{{name}}' > log/1/stdout784 2> log/1/stderr784 === End of file commands.log === Start of file http_server.log 10:32:24.998015 ====> Client connect 10:32:24.998337 accept_connection 3 returned 4 10:32:24.998520 accept_connection 3 returned 0 10:32:24.998674 Read 93 bytes 10:32:24.998802 Process 93 bytes request 10:32:24.999148 Got request: GET /verifiedserver HTTP/1.1 10:32:24.999281 Are-we-friendly question received 10:32:24.999551 Wrote request (93 bytes) input to log/1/server.input 10:32:24.999767 Identifying ourselves as friends 10:32:25.000539 Response sent (56 bytes) and written to log/1/server.response 10:32:25.000718 special request received, no persistency 10:32:25.000803 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 34300 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file in784 On the first Monday of the month of April, 1625, the market town of Meung === End of file in784 === Start of file server.cmd Testnum 784 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind784 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind784 test 0786...[--variable with a file byte range, reading from stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind786 ../src/curl -q --output log/3/curl786.out --include --trace-ascii log/3/trace786 --trace-time http://127.0.0.1:36933/786 --variable "name[5-15]@-" --expand-data '{{name}}' log/3/stdout786 2> log/3/stderr786 786: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 786 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind786 ../src/curl -q --output log/3/curl786.out --include --trace-ascii log/3/trace786 --trace-time http://127.0.0.1:36933/786 --variable "name[5-15]@-" --expand-data '{{name}}' log/3/stdout786 2> log/3/stderr786 === End of file commands.log === Start of file http_server.log 10:32:25.075312 ====> Client connect 10:32:25.075632 accept_connection 3 returned 4 10:32:25.075819 accept_connection 3 returned 0 10:32:25.075951 Read 93 bytes 10:32:25.076030 Process 93 bytes request 10:32:25.076121 Got request: GET /verifiedserver HTTP/1.1 10:32:25.076194 Are-we-friendly question received 10:32:25.076437 Wrote request (93 bytes) input to log/3/server.input 10:32:25.076632 Identifying ourselves as friends 10:32:25.077432 Response sent (56 bytes) and written to log/3/server.response 10:32:25.077577 special request received, no persistency 10:32:25.077645CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind787 ../src/curl -q --output log/7/curl787.out --include --trace-ascii log/7/trace787 --trace-time http://127.0.0.1:40129/787 --variable "name[15-14]@&LOGDIR/fooo" --expand-data '{{name}}' > log/7/stdout787 2> log/7/stderr787 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind788 ../src/curl -q --output log/8/curl788.out --include --trace-ascii log/8/trace788 --trace-time http://127.0.0.1:36007/788 --variable "name[15-15]@log/8/in788" --expand-data '{{name}}' > log/8/stdout788 2> log/8/stderr788 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45002 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 786 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file stdin-for-786 On the first Monday of the month of April, 1625, the market town of Meung === End of file stdin-for-786 === Start of file valgrind786 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind786 test 0787...[--variable with a file byte range, bad range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind787 ../src/curl -q --output log/7/curl787.out --include --trace-ascii log/7/trace787 --trace-time http://127.0.0.1:40129/787 --variable "name[15-14]@&LOGDIR/fooo" --expand-data '{{name}}' > log/7/stdout787 2> log/7/stderr787 curl returned 1, when expecting 2 787: exit FAILED == Contents of files in the log/7/ dir after test 787 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind787 ../src/curl -q --output log/7/curl787.out --include --trace-ascii log/7/trace787 --trace-time http://127.0.0.1:40129/787 --variable "name[15-14]@&LOGDIR/fooo" --expand-data '{{name}}' > log/7/stdout787 2> log/7/stderr787 === End of file commands.log === Start of file http_server.log 10:32:25.181753 ====> Client connect 10:32:25.182229 accept_connection 3 returned 4 10:32:25.182489 accept_connection 3 returned 0 10:32:25.182632 Read 93 bytes 10:32:25.182769 Process 93 bytes request 10:32:25.182998 Got request: GET /verifiedserver HTTP/1.1 10:32:25.183120 Are-we-friendly question received 10:32:25.183440 Wrote request (93 bytes) input to log/7/server.input 10:32:25.183726 Identifying ourselves as friends 10:32:25.184568 Response sent (56 bytes) and written to log/7/server.response 10:32:25.184762 special request received, no persistency 10:32:25.184856 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54398 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 787 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind787 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind787 test 0788...[--variable with a file and single-byte byte range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind788 ../src/curl -q --output log/8/curl788.out --include --trace-ascii log/8/trace788 --trace-time http://127.0.0.1:36007/788 --variable "name[15-15]@log/8/in788" --expand-data '{{name}}' > log/8/stdout788 2> log/8/stderr788 788: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 788 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind788 ../src/curl -q --output log/8/curl788.out --include --trace-ascii log/8/trace788 --trace-time http://127.0.0.1:36007/788 --variable "name[15-15]@log/8/in788" --expand-data '{{name}}' > log/8/stdout788 2> log/8/stderr788 === End of file commands.log === Start of file http_server.log 10:32:25.249916 ====> Client connect 10:32:25.250213 accept_connection 3 returned 4 10:32:25.250408 accept_connection 3 returned 0 10:32:25.250589 Read 93 bytes 10:32:25.250713 Process 93 bytes request 10:32:25.250901 Got request: GET /verifiedserver HTTP/1.1 10:32:25.251048 Are-we-friendly question received 10:32:25.251364 Wrote request (93 bytes) input to log/8/server.input 10:32:25.251720 Identifying ourselves as friends 10:32:25.252632 Response sent (56 bytes) and written to log/8/server.response 10:32:25.252837 special request received, no persistency 10:32:25.252928 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 poCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind790 ../src/curl -q --output log/6/curl790.out --include --trace-ascii log/6/trace790 --trace-time http://127.0.0.1:33363/790 --variable "name[5-9]=0123456789abcdef" --expand-data '{{name}}' > log/6/stdout790 2> log/6/stderr790 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind789 ../src/curl -q --output log/2/curl789.out --include --trace-ascii log/2/trace789 --trace-time http://127.0.0.1:43789/789 --variable "name[75-85]@log/2/in789" --expand-data '{{name}}' > log/2/stdout789 2> log/2/stderr789 rt 36007) from 127.0.0.1 port 48720 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file in788 On the first Monday of the month of April, 1625, the market town of Meung === End of file in788 === Start of file server.cmd Testnum 788 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind788 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind788 test 0790...[--variable with a byte range using plain assign] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind790 ../src/curl -q --output log/6/curl790.out --include --trace-ascii log/6/trace790 --trace-time http://127.0.0.1:33363/790 --variable "name[5-9]=0123456789abcdef" --expand-data '{{name}}' > log/6/stdout790 2> log/6/stderr790 790: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 790 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind790 ../src/curl -q --output log/6/curl790.out --include --trace-ascii log/6/trace790 --trace-time http://127.0.0.1:33363/790 --variable "name[5-9]=0123456789abcdef" --expand-data '{{name}}' > log/6/stdout790 2> log/6/stderr790 === End of file commands.log === Start of file http_server.log 10:32:25.300917 ====> Client connect 10:32:25.301273 accept_connection 3 returned 4 10:32:25.301514 accept_connection 3 returned 0 10:32:25.301682 Read 93 bytes 10:32:25.301803 Process 93 bytes request 10:32:25.301915 Got request: GET /verifiedserver HTTP/1.1 10:32:25.302032 Are-we-friendly question received 10:32:25.302280 Wrote request (93 bytes) input to log/6/server.input 10:32:25.302493 Identifying ourselves as friends 10:32:25.303446 Response sent (56 bytes) and written to log/6/server.response 10:32:25.303632 special request received, no persistency 10:32:25.303722 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 47328 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 790 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind790 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind790 test 0789...[--variable with a file and byte range out of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind789 ../src/curl -q --output log/2/curl789.out --include --trace-ascii log/2/trace789 --trace-time http://127.0.0.1:43789/789 --variable "name[75-85]@log/2/in789" --expand-data '{{name}}' > log/2/stdout789 2> log/2/stderr789 789: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 789 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind789 ../src/curl -q --output log/2/curl789.out --include --trace-ascii log/2/trace789 --trace-time http://127.0.0.1:43789/789 --variable "name[75-85]@log/2/in789" --expand-data '{{name}}' > log/2/stdout789 2> log/2/stderr789 === End of file commands.log === Start of file http_server.log 10:32:25.321838 ====> Client connect 10:32:25.322152 accept_connection 3 returned 4 10:32:25.322329 accept_connection 3 returned 0 10:32:25.322451 Read 93 bytes 10:32:25.322524 Process 93 bytes request 10:32:25.322608 Got request: GET /verifiedserver HTTP/1.1 10:32:25.322677 Are-we-friendly question received 10:32:25.322988 Wrote request (93 bytes) input to log/2/server.input 10:32:25.323196 Identifying ourselves as friends 10:32:25.323881 Response sent (56 bytes) and written to log/2/server.response 10:32:25.324025 special request received, no persistency 10:32:25.324096 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 56244 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind791 ../src/curl -q --output log/5/curl791.out --include --trace-ascii log/5/trace791 --trace-time http://127.0.0.1:41733/791 --variable "name[10-30]=0123456789abcdef" --expand-data '{{name}}' > log/5/stdout791 2> log/5/stderr791 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind792 ../src/curl -q --output log/4/curl792.out --include --trace-ascii log/4/trace792 --trace-time --netrc --netrc-file log/4/netrc792 ftp://127.0.0.1:42635/792 > log/4/stdout792 2> log/4/stderr792 :43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file in789 On the first Monday of the month of April, 1625, the market town of Meung === End of file in789 === Start of file server.cmd Testnum 789 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind789 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind789 test 0791...[--variable with a byte range using plain assign, out of range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind791 ../src/curl -q --output log/5/curl791.out --include --trace-ascii log/5/trace791 --trace-time http://127.0.0.1:41733/791 --variable "name[10-30]=0123456789abcdef" --expand-data '{{name}}' > log/5/stdout791 2> log/5/stderr791 791: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 791 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind791 ../src/curl -q --output log/5/curl791.out --include --trace-ascii log/5/trace791 --trace-time http://127.0.0.1:41733/791 --variable "name[10-30]=0123456789abcdef" --expand-data '{{name}}' > log/5/stdout791 2> log/5/stderr791 === End of file commands.log === Start of file http_server.log 10:32:26.453116 ====> Client connect 10:32:26.453496 accept_connection 3 returned 4 10:32:26.453731 accept_connection 3 returned 0 10:32:26.453919 Read 93 bytes 10:32:26.454042 Process 93 bytes request 10:32:26.454145 Got request: GET /verifiedserver HTTP/1.1 10:32:26.454236 Are-we-friendly question received 10:32:26.454677 Wrote request (93 bytes) input to log/5/server.input 10:32:26.455285 Identifying ourselves as friends 10:32:26.456341 Response sent (56 bytes) and written to log/5/server.response 10:32:26.456535 special request received, no persistency 10:32:26.456655 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 42224 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 791 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind791 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind791 test 0792...[.netrc with embedded NULL byte] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind792 ../src/curl -q --output log/4/curl792.out --include --trace-ascii log/4/trace792 --trace-time --netrc --netrc-file log/4/netrc792 ftp://127.0.0.1:42635/792 > log/4/stdout792 2> log/4/stderr792 792: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 792 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind792 ../src/curl -q --output log/4/curl792.out --include --trace-ascii log/4/trace792 --trace-time --netrc --netrc-file log/4/netrc792 ftp://127.0.0.1:42635/792 > log/4/stdout792 2> log/4/stderr792 === End of file commands.log === Start of file ftp_server.log 10:32:26.316979 ====> Client connect 10:32:26.318922 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:26.324289 < "USER anonymous" 10:32:26.325882 > "331 We are happy you popped in![CR][LF]" 10:32:26.329439 < "PASS ftp@example.com" 10:32:26.330338 > "230 Welcome you silly person[CR][LF]" 10:32:26.333748 < "PWD" 10:32:26.334393 > "257 "/" is current directory[CR][LF]" 10:32:26.337300 < "EPSV" 10:32:26.337961 ====> Passive DATA channel requested by client 10:32:26.338295 DATA sockfilt for passive data channel starting... 10:32:26.353119 DATA sockfilt for passive data channel started (pid 114304) 10:32:26.355162 DATA sockfilt for passive data channel listens on port 34997 10:32:26.355853 > "229 Entering Passive Mode (|||34997|)[LF]" 10:32:26.356160 Client has been notified that DATA conn will be accepted on port 34997 10:32:26.358065 Client connects to poCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind794 ../src/curl -q --output log/3/curl794.out --include --trace-ascii log/3/trace794 --trace-time http://127.0.0.1:36933/794 --no-progress-meter -X IGLOO -d moo --location --follow > log/3/stdout794 2> log/3/stderr794 rt 34997 10:32:26.358618 ====> Client established passive DATA connection on port 34997 10:32:26.359732 < "TYPE I" 10:32:26.360343 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:26.367539 < "SIZE verifiedserver" 10:32:26.368219 > "213 17[CR][LF]" 10:32:26.372227 < "RETR verifiedserver" 10:32:26.372957 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:26.374093 =====> Closing passive DATA connection... 10:32:26.374449 Server disconnects passive DATA connection 10:32:26.379376 Server disconnected passive DATA connection 10:32:26.379830 DATA sockfilt for passive data channel quits (pid 114304) 10:32:26.385822 DATA sockfilt for passive data channel quit (pid 114304) 10:32:26.386363 =====> Closed passive DATA connection 10:32:26.387104 > "226 File transfer complete[CR][LF]" 10:32:26.427651 < "QUIT" 10:32:26.428078 > "221 bye bye baby[CR][LF]" 10:32:26.429342 MAIN sockfilt said DISC 10:32:26.429798 ====> Client disconnected 10:32:26.430337 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:26.985451 ====> Client connect 10:32:26.989038 Received DATA (on stdin) 10:32:26.989387 > 160 bytes data, server => client 10:32:26.989680 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:26.989889 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:26.990096 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:26.991729 < 16 bytes data, client => server 10:32:26.992032 'USER anonymous\r\n' 10:32:26.994416 Received DATA (on stdin) 10:32:26.994676 > 33 bytes data, server => client 10:32:26.995928 '331 We are happy you popped in!\r\n' 10:32:26.997374 < 22 bytes data, client => server 10:32:26.997632 'PASS ftp@example.com\r\n' 10:32:27.000329 Received DATA (on stdin) 10:32:27.000667 > 30 bytes data, server => client 10:32:27.000818 '230 Welcome you silly person\r\n' 10:32:27.001659 < 5 bytes data, client => server 10:32:27.001896 'PWD\r\n' 10:32:27.004186 Received DATA (on stdin) 10:32:27.004423 > 30 bytes data, server => client 10:32:27.004550 '257 "/" is current directory\r\n' 10:32:27.005497 < 6 bytes data, client => server 10:32:27.005732 'EPSV\r\n' 10:32:27.025232 Received DATA (on stdin) 10:32:27.025469 > 38 bytes data, server => client 10:32:27.025584 '229 Entering Passive Mode (|||34997|)\n' 10:32:27.027917 < 8 bytes data, client => server 10:32:27.028109 'TYPE I\r\n' 10:32:27.031002 Received DATA (on stdin) 10:32:27.031210 > 33 bytes data, server => client 10:32:27.031342 '200 I modify TYPE as you wanted\r\n' 10:32:27.035558 < 21 bytes data, client => server 10:32:27.035898 'SIZE verifiedserver\r\n' 10:32:27.038187 Received DATA (on stdin) 10:32:27.038406 > 8 bytes data, server => client 10:32:27.038543 '213 17\r\n' 10:32:27.040063 < 21 bytes data, client => server 10:32:27.040385 'RETR verifiedserver\r\n' 10:32:27.044171 Received DATA (on stdin) 10:32:27.044407 > 29 bytes data, server => client 10:32:27.044513 '150 Binary junk (17 bytes).\r\n' 10:32:27.056442 Received DATA (on stdin) 10:32:27.056659 > 28 bytes data, server => client 10:32:27.056780 '226 File transfer complete\r\n' 10:32:27.096305 < 6 bytes data, client => server 10:32:27.096498 'QUIT\r\n' 10:32:27.097555 Received DATA (on stdin) 10:32:27.097695 > 18 bytes data, server => client 10:32:27.097800 '221 bye bye baby\r\n' 10:32:27.098409 ====> Client disconnect 10:32:27.099861 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:26.018563 Running IPv4 version 10:32:26.019177 Listening on port 34997 10:32:26.019539 Wrote pid 114304 to log/4/server/ftp_sockdata.pid 10:32:26.019730 Received PING (on stdin) 10:32:26.023200 Received PORT (on stdin) 10:32:26.026986 ====> Client connect 10:32:26.047050 Received DATA (on stdin) 10:32:26.047434 > 17 bytes data, server => client 10:32:26.047617 'WE ROOLZ: 79516\r\n' 10:32:26.048055 Received DISC (on stdin) 10:32:26.048308 ====> Client forcibly disconnected 10:32:26.049601 Received QUIT (on stdin) 10:32:26.049821 quits 10:32:26.050378 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc792 machine 127.0.0.1 login username password hello === End of file netrc792 === Start of file server.cmd Testnum 792 === End of file server.cmd === Start of file valgrind792 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind792 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind793 ../src/curl -q --output log/1/curl793.out --include --trace-ascii log/1/trace793 --trace-time --netrc --netrc-file log/1/netrc793 ftp://127.0.0.1:38733/793 > log/1/stdout793 2> log/1/stderr793 test 0794...[--follow + --location with custom POST method, 302 => GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind794 ../src/curl -q --output log/3/curl794.out --include --trace-ascii log/3/trace794 --trace-time http://127.0.0.1:36933/794 --no-progress-meter -X IGLOO -d moo --location --follow > log/3/stdout794 2> log/3/stderr794 794: stderr FAILED: --- log/3/check-expected 2025-09-11 10:32:27.240994865 +0000 +++ log/3/check-generated 2025-09-11 10:32:27.240994865 +0000 @@ -1 +0,0 @@ -Warning: --follow overrides --location[CR][LF] == Contents of files in the log/3/ dir after test 794 === Start of file check-expected Warning: --follow overrides --location[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind794 ../src/curl -q --output log/3/curl794.out --include --trace-ascii log/3/trace794 --trace-time http://127.0.0.1:36933/794 --no-progress-meter -X IGLOO -d moo --location --follow > log/3/stdout794 2> log/3/stderr794 === End of file commands.log === Start of file http_server.log 10:32:26.058547 ====> Client connect 10:32:26.058887 accept_connection 3 returned 4 10:32:26.059112 accept_connection 3 returned 0 10:32:26.059228 Read 93 bytes 10:32:26.059311 Process 93 bytes request 10:32:26.059389 Got request: GET /verifiedserver HTTP/1.1 10:32:26.059455 Are-we-friendly question received 10:32:26.059678 Wrote request (93 bytes) input to log/3/server.input 10:32:26.059834 Identifying ourselves as friends 10:32:26.060477 Response sent (56 bytes) and written to log/3/server.response 10:32:26.060636 special request received, no persistency 10:32:26.060723 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45014 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 794 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind794 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind794 test 0793...[.netrc with embedded NULL byte, with quoted token] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind793 ../src/curl -q --output log/1/curl793.out --include --trace-ascii log/1/trace793 --trace-time --netrc --netrc-file log/1/netrc793 ftp://127.0.0.1:38733/793 > log/1/stdout793 2> log/1/stderr793 793: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 793 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind793 ../src/curl -q --output log/1/curl793.out --include --trace-ascii log/1/trace793 --trace-time --netrc --netrc-file log/1/netrc793 ftp://127.0.0.1:38733/793 > log/1/stdout793 2> log/1/stderr793 === End of file commands.log === Start of file ftp_server.log 10:32:26.346566 ====> Client connect 10:32:26.350318 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:26.359156 < "USER anonymous" 10:32:26.360968 > "331 We are happy you popped in![CR][LF]" 10:32:26.367004 < "PASS ftp@example.com" 10:32:26.368234 > "230 Welcome you silly person[CR][LF]" 10:32:26.373452 < "PWD" 10:32:26.374258 > "257 "/" is current directory[CR][LF]" 10:32:26.380115 < "EPSV" 10:32:26.380644 ====> Passive DATA channel requested by client 10:32:26.381080 DATA sockfilt for passive data channel starting... 10:32:26.398028 DATA sockfilt for passive data channel started (pid 114313) 10:32:26.399180 DATA sockfilt for passive data channel listens on port 34985 10:32:26.399781 > "229 Entering Passive Mode (|||34985|)[LF]" 10:32:26.400089 Client has been notified that DATA conn will be accepted on port 34985 10:32:26.401944 Client connects to port 34985 10:32:26.402382 ====> Client established passive DATA connection on port 34985 10:32:26.403368 < "TYPE I" 10:32:26.405198 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:26.410364 < "SIZE verifiedserver" 10:32:26.410957 > "213 17[CR][LF]" 10:32:26.418397 < "RETR verifiedserver" 10:32:26.418939 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:26.419666 =====> Closing passive DATA connection... 10:32:26.420052 Server disconnects passive DATA connection 10:32:26.425640 Server disconnected passive DATA connection 10:32:26.426113 DATA sockfilt for passive data channel quits (pid 114313) 10:32:26.427861 DATA sockfilt for passive data channel quit (pid 114313) 10:32:26.428172 =====> Closed passive DATA connection 10:32:26.428488 > "226 File transfer complete[CR][LF]" 10:32:26.470324 < "QUIT" 10:32:26.470859 > "221 bye bye baby[CR][LF]" 10:32:26.476885 MAIN sockfilt said DISC 10:32:26.477404 ====> Client disconnected 10:32:26.478399 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:26.015217 ====> Client connect 10:32:26.017866 Received DATA (on stdin) 10:32:26.018194 > 160 bytes data, server => client 10:32:26.018584 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:26.018791 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:26.019084 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:26.027008 < 16 bytes data, client => server 10:32:26.027241 'USER anonymous\r\n' 10:32:26.029218 Received DATA (on stdin) 10:32:26.029431 > 33 bytes data, server => client 10:32:26.029673 '331 We are happy you popped in!\r\n' 10:32:26.030728 < 22 bytes data, client => server 10:32:26.031058 'PASS ftp@example.com\r\n' 10:32:26.037031 Received DATA (on stdin) 10:32:26.037253 > 30 bytes data, server => client 10:32:26.038163 '230 Welcome you silly person\r\n' 10:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind796 ../src/curl -q --output log/7/curl796.out --include --trace-ascii log/7/trace796 --trace-time http://127.0.0.1:40129/796 -X IGLOO -d moo --follow > log/7/stdout796 2> log/7/stderr796 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind799 ../src/curl -q --output log/6/curl799.out --include --trace-ascii log/6/trace799 --trace-time 'imap://127.0.0.1:34025/799/;MAILINDEX=1' -u user:secret --login-options AUTH=+LOGIN > log/6/stdout799 2> log/6/stderr799 32:26.040067 < 5 bytes data, client => server 10:32:26.040384 'PWD\r\n' 10:32:26.047164 Received DATA (on stdin) 10:32:26.047434 > 30 bytes data, server => client 10:32:26.047620 '257 "/" is current directory\r\n' 10:32:26.048621 < 6 bytes data, client => server 10:32:26.048880 'EPSV\r\n' 10:32:26.069134 Received DATA (on stdin) 10:32:26.069391 > 38 bytes data, server => client 10:32:26.069515 '229 Entering Passive Mode (|||34985|)\n' 10:32:26.071289 < 8 bytes data, client => server 10:32:26.071534 'TYPE I\r\n' 10:32:26.074533 Received DATA (on stdin) 10:32:26.074769 > 33 bytes data, server => client 10:32:26.075008 '200 I modify TYPE as you wanted\r\n' 10:32:26.075733 < 21 bytes data, client => server 10:32:26.075927 'SIZE verifiedserver\r\n' 10:32:26.083136 Received DATA (on stdin) 10:32:26.083407 > 8 bytes data, server => client 10:32:26.083499 '213 17\r\n' 10:32:26.084352 < 21 bytes data, client => server 10:32:26.084541 'RETR verifiedserver\r\n' 10:32:26.088328 Received DATA (on stdin) 10:32:26.088515 > 29 bytes data, server => client 10:32:26.088632 '150 Binary junk (17 bytes).\r\n' 10:32:26.097886 Received DATA (on stdin) 10:32:26.098033 > 28 bytes data, server => client 10:32:26.098131 '226 File transfer complete\r\n' 10:32:26.136271 < 6 bytes data, client => server 10:32:26.136474 'QUIT\r\n' 10:32:26.140234 Received DATA (on stdin) 10:32:26.140432 > 18 bytes data, server => client 10:32:26.140547 '221 bye bye baby\r\n' 10:32:26.145440 ====> Client disconnect 10:32:26.150906 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:26.064644 Running IPv4 version 10:32:26.065234 Listening on port 34985 10:32:26.065633 Wrote pid 114313 to log/1/server/ftp_sockdata.pid 10:32:26.066866 Received PING (on stdin) 10:32:26.067899 Received PORT (on stdin) 10:32:26.070686 ====> Client connect 10:32:26.089589 Received DATA (on stdin) 10:32:26.089765 > 17 bytes data, server => client 10:32:26.089881 'WE ROOLZ: 79585\r\n' 10:32:26.090288 Received DISC (on stdin) 10:32:26.090542 ====> Client forcibly disconnected 10:32:26.095789 Received QUIT (on stdin) 10:32:26.095970 quits 10:32:26.096422 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc793 machine 127.0.0.1 login username "password" hello === End of file netrc793 === Start of file server.cmd Testnum 793 === End of file server.cmd === Start of file valgrind793 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind793 test 0796...[--follow with custom POST method, 302 => GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind796 ../src/curl -q --output log/7/curl796.out --include --trace-ascii log/7/trace796 --trace-time http://127.0.0.1:40129/796 -X IGLOO -d moo --follow > log/7/stdout796 2> log/7/stderr796 796: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 796 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind796 ../src/curl -q --output log/7/curl796.out --include --trace-ascii log/7/trace796 --trace-time http://127.0.0.1:40129/796 -X IGLOO -d moo --follow > log/7/stdout796 2> log/7/stderr796 === End of file commands.log === Start of file http_server.log 10:32:26.158621 ====> Client connect 10:32:26.159104 accept_connection 3 returned 4 10:32:26.159281 accept_connection 3 returned 0 10:32:26.159402 Read 93 bytes 10:32:26.159529 Process 93 bytes request 10:32:26.159631 Got request: GET /verifiedserver HTTP/1.1 10:32:26.159752 Are-we-friendly question received 10:32:26.160003 Wrote request (93 bytes) input to log/7/server.input 10:32:26.160194 Identifying ourselves as friends 10:32:26.161017 Response sent (56 bytes) and written to log/7/server.response 10:32:26.161199 special request received, no persistency 10:32:26.161281 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54404 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 796 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind796 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind796 test 0799...[IMAP with --login-options 'AUTH=+LOGIN'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind799 ../src/curl -q --output log/6/curl799.out --include --trace-ascii log/6/trace799 --trace-time 'imap://127.0.0.1:34025/799/;MAILINDEX=1' -u user:secret --login-CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind797 ../src/curl -q --output log/8/curl797.out --include --trace-ascii log/8/trace797 --trace-time http://127.0.0.1:36007/797 -X IGLOO -d moo --follow > log/8/stdout797 2> log/8/stderr797 options AUTH=+LOGIN > log/6/stdout799 2> log/6/stderr799 799: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 799 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind799 ../src/curl -q --output log/6/curl799.out --include --trace-ascii log/6/trace799 --trace-time 'imap://127.0.0.1:34025/799/;MAILINDEX=1' -u user:secret --login-options AUTH=+LOGIN > log/6/stdout799 2> log/6/stderr799 === End of file commands.log === Start of file imap_server.log 10:32:26.598277 ====> Client connect 10:32:26.599350 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:26.601799 < "A001 CAPABILITY" 10:32:26.602331 > "A001 BAD Command[CR][LF]" 10:32:26.604248 < "A002 LIST "verifiedserver" *" 10:32:26.604645 LIST_imap got "verifiedserver" * 10:32:26.605044 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:26.605392 > "A002 OK LIST Completed[CR][LF]" 10:32:26.605652 return proof we are we 10:32:26.654363 < "A003 LOGOUT" 10:32:26.654796 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:26.655116 > "A003 OK LOGOUT completed[CR][LF]" 10:32:26.662170 MAIN sockfilt said DISC 10:32:26.662616 ====> Client disconnected 10:32:26.663218 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:27.266937 ====> Client connect 10:32:27.268705 Received DATA (on stdin) 10:32:27.268939 > 178 bytes data, server => client 10:32:27.269053 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:27.269138 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:27.269214 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:27.269282 'rve\r\n' 10:32:27.270058 < 17 bytes data, client => server 10:32:27.270287 'A001 CAPABILITY\r\n' 10:32:27.271752 Received DATA (on stdin) 10:32:27.271924 > 18 bytes data, server => client 10:32:27.272040 'A001 BAD Command\r\n' 10:32:27.272916 < 30 bytes data, client => server 10:32:27.273173 'A002 LIST "verifiedserver" *\r\n' 10:32:27.274421 Received DATA (on stdin) 10:32:27.274615 > 34 bytes data, server => client 10:32:27.274714 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:27.275076 Received DATA (on stdin) 10:32:27.275217 > 24 bytes data, server => client 10:32:27.275310 'A002 OK LIST Completed\r\n' 10:32:27.320058 < 13 bytes data, client => server 10:32:27.320322 'A003 LOGOUT\r\n' 10:32:27.324174 Received DATA (on stdin) 10:32:27.324370 > 36 bytes data, server => client 10:32:27.324476 '* BYE curl IMAP server signing off\r\n' 10:32:27.324809 Received DATA (on stdin) 10:32:27.325041 > 26 bytes data, server => client 10:32:27.325181 'A003 OK LOGOUT completed\r\n' 10:32:27.331097 ====> Client disconnect 10:32:27.332810 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY LOGIN A002 OK LOGIN completed Testnum 799 === End of file server.cmd === Start of file valgrind799 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind799 test 0797...[--follow with custom POST method, 308 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind797 ../src/curl -q --output log/8/curl797.out --include --trace-ascii log/8/trace797 --trace-time http://127.0.0.1:36007/797 -X IGLOO -d moo --follow > log/8/stdout797 2> log/8/stderr797 797: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 797 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind797 ../src/curl -q --output log/8/curl797.out --include --trace-ascii log/8/trace797 --trace-time http://127.0.0.1:36007/797 -X IGLOO -d moo --follow > log/8/stdout797 2> log/8/stderr797 === End of file commands.log === Start of file http_server.log 10:32:26.241096 ====> Client connect 10:32:26.241429 accept_connection 3 returned 4 10:32:26.241641 accept_connection 3 returned 0 10:32:26.241808 Read 93 bytes 10:32:26.241907 Process 93 bytes request 10:32:26.242016 Got request: GET /verifiedserver HTTP/1.1 10:32:26.242096 Are-we-friendly question received 10:32:26.242330 Wrote request (93 bytes) input to log/8/server.input 10:32:26.242518 Identifying ourselves as friends 10:32:26.243353 Response sent (56 bytes) and written to log/8/server.response 10:32:26.243482 special request received, no persistency 10:32:26.243559 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 48734 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 797 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind797 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you nCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind802 ../src/curl -q --output log/4/curl802.out --include --trace-ascii log/4/trace802 --trace-time 'imap://127.0.0.1:45271/802;UIDVALIDITY=3857529045/;MAILINDEX=123/;SECTION=TEXT' -u user:secret > log/4/stdout802 2> log/4/stderr802 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind800 ../src/curl -q --output log/2/curl800.out --include --trace-ascii log/2/trace800 --trace-time 'imap://127.0.0.1:41491/800/;MAILINDEX=1' -u '"user:sec"ret{' > log/2/stdout800 2> log/2/stderr800 eed valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind797 test 0802...[IMAP SELECT UIDVALIDITY Success] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind802 ../src/curl -q --output log/4/curl802.out --include --trace-ascii log/4/trace802 --trace-time 'imap://127.0.0.1:45271/802;UIDVALIDITY=3857529045/;MAILINDEX=123/;SECTION=TEXT' -u user:secret > log/4/stdout802 2> log/4/stderr802 802: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 802 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind802 ../src/curl -q --output log/4/curl802.out --include --trace-ascii log/4/trace802 --trace-time 'imap://127.0.0.1:45271/802;UIDVALIDITY=3857529045/;MAILINDEX=123/;SECTION=TEXT' -u user:secret > log/4/stdout802 2> log/4/stderr802 === End of file commands.log === Start of file imap_server.log 10:32:27.354373 ====> Client connect 10:32:27.356171 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:27.359037 < "A001 CAPABILITY" 10:32:27.359694 > "A001 BAD Command[CR][LF]" 10:32:27.362696 < "A002 LIST "verifiedserver" *" 10:32:27.363192 LIST_imap got "verifiedserver" * 10:32:27.363673 > "* LIST () "/" "WE ROOLZ: 107654"[CR][LF]" 10:32:27.364006 > "A002 OK LIST Completed[CR][LF]" 10:32:27.364179 return proof we are we 10:32:27.407406 < "A003 LOGOUT" 10:32:27.407844 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:27.408123 > "A003 OK LOGOUT completed[CR][LF]" 10:32:27.414168 MAIN sockfilt said DISC 10:32:27.414960 ====> Client disconnected 10:32:27.415642 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:27.023008 ====> Client connect 10:32:27.025472 Received DATA (on stdin) 10:32:27.025759 > 178 bytes data, server => client 10:32:27.025866 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:27.025960 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:27.026042 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:27.026110 'rve\r\n' 10:32:27.027080 < 17 bytes data, client => server 10:32:27.027358 'A001 CAPABILITY\r\n' 10:32:27.029072 Received DATA (on stdin) 10:32:27.029301 > 18 bytes data, server => client 10:32:27.029411 'A001 BAD Command\r\n' 10:32:27.031050 < 30 bytes data, client => server 10:32:27.031299 'A002 LIST "verifiedserver" *\r\n' 10:32:27.033063 Received DATA (on stdin) 10:32:27.033250 > 34 bytes data, server => client 10:32:27.033345 '* LIST () "/" "WE ROOLZ: 107654"\r\n' 10:32:27.033708 Received DATA (on stdin) 10:32:27.033843 > 24 bytes data, server => client 10:32:27.033936 'A002 OK LIST Completed\r\n' 10:32:27.075818 < 13 bytes data, client => server 10:32:27.076038 'A003 LOGOUT\r\n' 10:32:27.077727 Received DATA (on stdin) 10:32:27.077884 > 36 bytes data, server => client 10:32:27.077967 '* BYE curl IMAP server signing off\r\n' 10:32:27.078293 Received DATA (on stdin) 10:32:27.078436 > 26 bytes data, server => client 10:32:27.078523 'A003 OK LOGOUT completed\r\n' 10:32:27.083005 ====> Client disconnect 10:32:27.083963 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 802 === End of file server.cmd === Start of file valgrind802 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind802 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/2/server/imap_server.pid" --logfile "log/2/imap_server.log" --logdir "log/2" --portfile "log/2/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 41491 (log/2/server/imap_server.port) RUN: IMAP server is PID 114358 port 41491 * pid imap => 114358 114358 test 0800...[IMAP FETCH message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind800 ../src/curl -q --output log/2/curl800.out --include --trace-ascii log/2/trace800 --trace-time 'imap://127.0.0.1:41491/800/;MAILINDEX=1' -u '"user:sec"ret{' > log/2/stdout800 2> log/2/stderr800 800: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 800 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind800 ../src/curl -q --output log/2/curl800.out --include --trace-ascii log/2/trace800 --trace-time 'imap://127.0.0.1:41491/800/;MAILINDEX=1' -u '"user:sec"ret{' > log/2/stdout800 2> log/2/stderr800 === End of file commands.log === Start of file imap_server.log 10:32:27.094198 IMAP server listens on port IPv4/41491 10:32:27.095649 logged pid 114358 in log/2/server/imap_server.pid 10:32:27.096165 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:27.759546 Running IPv4 version 10:32:27.760301 Listening on port 41491 10:32:27.761074 Wrote pid 114615 to log/2/server/imap_sockfilt.pid 10:32:27.761789 Wrote port 41491 to log/2/server/imap_server.port 10:32:27.762194 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 800 === End of file server.cmd === Start of file valgrind800 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the objecCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind806 ../src/curl -q --output log/6/curl806.out --include --trace-ascii log/6/trace806 --trace-time imap://127.0.0.1:34025/806 -u user:secret > log/6/stdout806 2> log/6/stderr806 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind801 ../src/curl -q --output log/5/curl801.out --include --trace-ascii log/5/trace801 --trace-time 'imap://127.0.0.1:44021/801/;MAILINDEX=123/;SECTION=1' -u user:secret > log/5/stdout801 2> log/5/stderr801 t with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind800 test 0806...[IMAP LIST mailbox] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind806 ../src/curl -q --output log/6/curl806.out --include --trace-ascii log/6/trace806 --trace-time imap://127.0.0.1:34025/806 -u user:secret > log/6/stdout806 2> log/6/stderr806 806: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 806 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind806 ../src/curl -q --output log/6/curl806.out --include --trace-ascii log/6/trace806 --trace-time imap://127.0.0.1:34025/806 -u user:secret > log/6/stdout806 2> log/6/stderr806 === End of file commands.log === Start of file imap_server.log 10:32:27.561706 ====> Client connect 10:32:27.562963 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:27.565267 < "A001 CAPABILITY" 10:32:27.565853 > "A001 BAD Command[CR][LF]" 10:32:27.569233 < "A002 LIST "verifiedserver" *" 10:32:27.570441 LIST_imap got "verifiedserver" * 10:32:27.571012 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:27.571397 > "A002 OK LIST Completed[CR][LF]" 10:32:27.571591 return proof we are we 10:32:27.618408 < "A003 LOGOUT" 10:32:27.618908 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:27.619270 > "A003 OK LOGOUT completed[CR][LF]" 10:32:27.620799 MAIN sockfilt said DISC 10:32:27.621241 ====> Client disconnected 10:32:27.621966 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:28.227419 ====> Client connect 10:32:28.232309 Received DATA (on stdin) 10:32:28.232565 > 178 bytes data, server => client 10:32:28.232699 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:28.232795 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:28.232874 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:28.232940 'rve\r\n' 10:32:28.233719 < 17 bytes data, client => server 10:32:28.233975 'A001 CAPABILITY\r\n' 10:32:28.235177 Received DATA (on stdin) 10:32:28.235405 > 18 bytes data, server => client 10:32:28.235512 'A001 BAD Command\r\n' 10:32:28.237786 < 30 bytes data, client => server 10:32:28.238053 'A002 LIST "verifiedserver" *\r\n' 10:32:28.240357 Received DATA (on stdin) 10:32:28.240615 > 34 bytes data, server => client 10:32:28.240738 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:28.241093 Received DATA (on stdin) 10:32:28.241300 > 24 bytes data, server => client 10:32:28.241424 'A002 OK LIST Completed\r\n' 10:32:28.287036 < 13 bytes data, client => server 10:32:28.287291 'A003 LOGOUT\r\n' 10:32:28.288288 Received DATA (on stdin) 10:32:28.288511 > 36 bytes data, server => client 10:32:28.288640 '* BYE curl IMAP server signing off\r\n' 10:32:28.288994 Received DATA (on stdin) 10:32:28.289226 > 26 bytes data, server => client 10:32:28.289347 'A003 OK LOGOUT completed\r\n' 10:32:28.289730 ====> Client disconnect 10:32:28.290613 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 806 === End of file server.cmd === Start of file valgrind806 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind806 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/5/server/imap_server.pid" --logfile "log/5/imap_server.log" --logdir "log/5" --portfile "log/5/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44021 (log/5/server/imap_server.port) RUN: IMAP server is PID 114397 port 44021 * pid imap => 114397 114397 test 0801...[IMAP FETCH message by MAILINDEX and SECTION] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind801 ../src/curl -q --output log/5/curl801.out --include --trace-ascii log/5/trace801 --trace-time 'imap://127.0.0.1:44021/801/;MAILINDEX=123/;SECTION=1' -u user:secret > log/5/stdout801 2> log/5/stderr801 801: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 801 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind801 ../src/curl -q --output log/5/curl801.out --include --trace-ascii log/5/trace801 --trace-time 'imap://127.0.0.1:44021/801/;MAILINDEX=123/;SECTION=1' -u user:secret > log/5/stdout801 2> log/5/stderr801 === End of file commands.log === Start of file imap_server.log 10:32:27.313323 IMAP server listens on port IPv4/44021 10:32:27.314777 logged pid 114397 in log/5/server/imap_server.pid 10:32:27.315284 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:27.978986 Running IPv4 version 10:32:27.979843 Listening on port 44021 10:32:27.980663 Wrote pid 114674 to log/5/server/imap_sockfilt.pid 10:32:27.981486 Wrote port 44021 to log/5/server/imap_server.port 10:32:27.981816 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 801 === End of file server.cmd === Start of file valgrind801 valgrind: Fatal error at startup: a function redCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind808 ../src/curl -q --output log/4/curl808.out --include --trace-ascii log/4/trace808 --trace-time imap://127.0.0.1:45271 -u user:secret -X 'EXAMINE 808' > log/4/stdout808 2> log/4/stderr808 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind803 ../src/curl -q --output log/3/curl803.out --include --trace-ascii log/3/trace803 --trace-time 'imap://127.0.0.1:43065/803;UIDVALIDITY=12345/;MAILINDEX=123' -u user:secret > log/3/stdout803 2> log/3/stderr803 irection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind801 test 0808...[IMAP EXAMINE mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind808 ../src/curl -q --output log/4/curl808.out --include --trace-ascii log/4/trace808 --trace-time imap://127.0.0.1:45271 -u user:secret -X 'EXAMINE 808' > log/4/stdout808 2> log/4/stderr808 808: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 808 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind808 ../src/curl -q --output log/4/curl808.out --include --trace-ascii log/4/trace808 --trace-time imap://127.0.0.1:45271 -u user:secret -X 'EXAMINE 808' > log/4/stdout808 2> log/4/stderr808 === End of file commands.log === Start of file imap_server.log 10:32:28.207624 ====> Client connect 10:32:28.209919 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:28.212085 < "A001 CAPABILITY" 10:32:28.212587 > "A001 BAD Command[CR][LF]" 10:32:28.214689 < "A002 LIST "verifiedserver" *" 10:32:28.215104 LIST_imap got "verifiedserver" * 10:32:28.215458 > "* LIST () "/" "WE ROOLZ: 107654"[CR][LF]" 10:32:28.215744 > "A002 OK LIST Completed[CR][LF]" 10:32:28.215915 return proof we are we 10:32:28.259270 < "A003 LOGOUT" 10:32:28.259695 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:28.259934 > "A003 OK LOGOUT completed[CR][LF]" 10:32:28.262575 MAIN sockfilt said DISC 10:32:28.262932 ====> Client disconnected 10:32:28.263423 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:27.875568 ====> Client connect 10:32:27.878181 Received DATA (on stdin) 10:32:27.878410 > 178 bytes data, server => client 10:32:27.879168 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:27.879360 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:27.879452 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:27.879523 'rve\r\n' 10:32:27.880367 < 17 bytes data, client => server 10:32:27.880577 'A001 CAPABILITY\r\n' 10:32:27.881939 Received DATA (on stdin) 10:32:27.882103 > 18 bytes data, server => client 10:32:27.882197 'A001 BAD Command\r\n' 10:32:27.883182 < 30 bytes data, client => server 10:32:27.883387 'A002 LIST "verifiedserver" *\r\n' 10:32:27.884794 Received DATA (on stdin) 10:32:27.884970 > 34 bytes data, server => client 10:32:27.885062 '* LIST () "/" "WE ROOLZ: 107654"\r\n' 10:32:27.885416 Received DATA (on stdin) 10:32:27.885553 > 24 bytes data, server => client 10:32:27.885648 'A002 OK LIST Completed\r\n' 10:32:27.927760 < 13 bytes data, client => server 10:32:27.928033 'A003 LOGOUT\r\n' 10:32:27.929002 Received DATA (on stdin) 10:32:27.929142 > 36 bytes data, server => client 10:32:27.929243 '* BYE curl IMAP server signing off\r\n' 10:32:27.931018 Received DATA (on stdin) 10:32:27.931259 > 26 bytes data, server => client 10:32:27.931345 'A003 OK LOGOUT completed\r\n' 10:32:27.931632 ====> Client disconnect 10:32:27.932283 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 808 === End of file server.cmd === Start of file valgrind808 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind808 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/3/server/imap_server.pid" --logfile "log/3/imap_server.log" --logdir "log/3" --portfile "log/3/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43065 (log/3/server/imap_server.port) RUN: IMAP server is PID 114678 port 43065 * pid imap => 114678 114678 test 0803...[IMAP SELECT UIDVALIDITY Failure] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind803 ../src/curl -q --output log/3/curl803.out --include --trace-ascii log/3/trace803 --trace-time 'imap://127.0.0.1:43065/803;UIDVALIDITY=12345/;MAILINDEX=123' -u user:secret > log/3/stdout803 2> log/3/stderr803 803: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 803 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind803 ../src/curl -q --output log/3/curl803.out --include --trace-ascii log/3/trace803 --trace-time 'imap://127.0.0.1:43065/803;UIDVALIDITY=12345/;MAILINDEX=123' -u user:secret > log/3/stdout803 2> log/3/stderr803 === End of file commands.log === Start of file imap_server.log 10:32:27.759777 IMAP server listens on port IPv4/43065 10:32:27.760908 logged pid 114678 in log/3/server/imap_server.pid 10:32:27.761331 Awaiting input === End of file imap_server.log === Start of file imap_sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind804 ../src/curl -q --output log/1/curl804.out --include --trace-ascii log/1/trace804 --trace-time 'imap://127.0.0.1:33191/804/;MAILINDEX=123/;SECTION=1' 'imap://127.0.0.1:33191/804/;MAILINDEX=456/;SECTION=2.3' -u user:secret > log/1/stdout804 2> log/1/stderr804 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind810 ../src/curl -q --output log/6/curl810.out --include --trace-ascii log/6/trace810 --trace-time imap://127.0.0.1:34025/810?NEW -u user:secret > log/6/stdout810 2> log/6/stderr810 ockfilt.log 10:32:27.426543 Running IPv4 version 10:32:27.427286 Listening on port 43065 10:32:27.427830 Wrote pid 114738 to log/3/server/imap_sockfilt.pid 10:32:27.428261 Wrote port 43065 to log/3/server/imap_server.port 10:32:27.428444 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 803 === End of file server.cmd === Start of file valgrind803 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind803 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/1/server/imap_server.pid" --logfile "log/1/imap_server.log" --logdir "log/1" --portfile "log/1/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 33191 (log/1/server/imap_server.port) RUN: IMAP server is PID 114681 port 33191 * pid imap => 114681 114681 test 0804...[IMAP doesn't perform SELECT if reusing the same mailbox] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind804 ../src/curl -q --output log/1/curl804.out --include --trace-ascii log/1/trace804 --trace-time 'imap://127.0.0.1:33191/804/;MAILINDEX=123/;SECTION=1' 'imap://127.0.0.1:33191/804/;MAILINDEX=456/;SECTION=2.3' -u user:secret > log/1/stdout804 2> log/1/stderr804 804: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 804 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind804 ../src/curl -q --output log/1/curl804.out --include --trace-ascii log/1/trace804 --trace-time 'imap://127.0.0.1:33191/804/;MAILINDEX=123/;SECTION=1' 'imap://127.0.0.1:33191/804/;MAILINDEX=456/;SECTION=2.3' -u user:secret > log/1/stdout804 2> log/1/stderr804 === End of file commands.log === Start of file imap_server.log 10:32:27.810166 IMAP server listens on port IPv4/33191 10:32:27.811424 logged pid 114681 in log/1/server/imap_server.pid 10:32:27.811857 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:27.471270 Running IPv4 version 10:32:27.471918 Listening on port 33191 10:32:27.472526 Wrote pid 114755 to log/1/server/imap_sockfilt.pid 10:32:27.472937 Wrote port 33191 to log/1/server/imap_server.port 10:32:27.473108 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 804 === End of file server.cmd === Start of file valgrind804 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind804 test 0810...[IMAP SEARCH for NEW messages] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind810 ../src/curl -q --output log/6/curl810.out --include --trace-ascii log/6/trace810 --trace-time imap://127.0.0.1:34025/810?NEW -u user:secret > log/6/stdout810 2> log/6/stderr810 810: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 810 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind810 ../src/curl -q --output log/6/curl810.out --include --trace-ascii log/6/trace810 --trace-time imap://127.0.0.1:34025/810?NEW -u user:secret > log/6/stdout810 2> log/6/stderr810 === End of file commands.log === Start of file imap_server.log 10:32:28.387946 ====> Client connect 10:32:28.388962 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:28.391283 < "A001 CAPABILITY" 10:32:28.391742 > "A001 BAD Command[CR][LF]" 10:32:28.393985 < "A002 LIST "verifiedserver" *" 10:32:28.394287 LIST_imap got "verifiedserver" * 10:32:28.394571 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:28.394852 > "A002 OK LIST Completed[CR][LF]" 10:32:28.395035 return proof we are we 10:32:28.441578 < "A003 LOGOUT" 10:32:28.442775 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:28.443208 > "A003 OK LOGOUT completed[CR][LF]" 10:32:28.448688 MAIN sockfilt said DISC 10:32:28.449422 ====> Client disconnected 10:32:28.450074 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:29.056698 ====> Client connect 10:32:29.058233 Received DATA (on stdin) 10:32:29.058439 > 178 bytes data, server => client 10:32:29.058543 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:29.058631 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:29.058705 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:29.058951 'rve\r\n' 10:32:29.059680 < 17 bytes data, client => server 10:32:29.059878 'A001 CAPABILITY\r\n' 10:32:29.061060 Received DATA (on stdin) 10:32:29.061238 > 18 bytes data, server => client 10:32:29.061321 'A001 BAD Command\r\n' 10:32:29.062140 < 30 bytes data, cCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind809 ../src/curl -q --output log/2/curl809.out --include --trace-ascii log/2/trace809 --trace-time imap://127.0.0.1:41491 -u user:secret -X 'STATUS 809 (UIDNEXT MESSAGES)' > log/2/stdout809 2> log/2/stderr809 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind805 ../src/curl -q --output log/7/curl805.out --include --trace-ascii log/7/trace805 --trace-time imap://127.0.0.1:38743/805 -T log/7/upload805 -u user:secret > log/7/stdout805 2> log/7/stderr805 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind807 ../src/curl -q --output log/8/curl807.out --include --trace-ascii log/8/trace807 --trace-time imap://127.0.0.1:44267 -u user:secret -X 'LSUB "807" *' > log/8/stdout807 2> log/8/stderr807 lient => server 10:32:29.062342 'A002 LIST "verifiedserver" *\r\n' 10:32:29.064676 Received DATA (on stdin) 10:32:29.064847 > 34 bytes data, server => client 10:32:29.064940 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:29.065270 Received DATA (on stdin) 10:32:29.065428 > 24 bytes data, server => client 10:32:29.065507 'A002 OK LIST Completed\r\n' 10:32:29.109846 < 13 bytes data, client => server 10:32:29.110034 'A003 LOGOUT\r\n' 10:32:29.111495 Received DATA (on stdin) 10:32:29.111720 > 36 bytes data, server => client 10:32:29.112804 '* BYE curl IMAP server signing off\r\n' 10:32:29.117060 Received DATA (on stdin) 10:32:29.117291 > 26 bytes data, server => client 10:32:29.117377 'A003 OK LOGOUT completed\r\n' 10:32:29.117702 ====> Client disconnect 10:32:29.118408 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 810 === End of file server.cmd === Start of file valgrind810 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind810 test 0809...[IMAP mailbox STATUS (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind809 ../src/curl -q --output log/2/curl809.out --include --trace-ascii log/2/trace809 --trace-time imap://127.0.0.1:41491 -u user:secret -X 'STATUS 809 (UIDNEXT MESSAGES)' > log/2/stdout809 2> log/2/stderr809 809: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 809 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind809 ../src/curl -q --output log/2/curl809.out --include --trace-ascii log/2/trace809 --trace-time imap://127.0.0.1:41491 -u user:secret -X 'STATUS 809 (UIDNEXT MESSAGES)' > log/2/stdout809 2> log/2/stderr809 === End of file commands.log === Start of file imap_server.log 10:32:28.365738 ====> Client connect 10:32:28.367078 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:28.370129 < "A001 CAPABILITY" 10:32:28.370674 > "A001 BAD Command[CR][LF]" 10:32:28.372506 < "A002 LIST "verifiedserver" *" 10:32:28.373005 LIST_imap got "verifiedserver" * 10:32:28.373686 > "* LIST () "/" "WE ROOLZ: 114358"[CR][LF]" 10:32:28.374060 > "A002 OK LIST Completed[CR][LF]" 10:32:28.374342 return proof we are we 10:32:28.423964 < "A003 LOGOUT" 10:32:28.424466 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:28.424787 > "A003 OK LOGOUT completed[CR][LF]" 10:32:28.430341 MAIN sockfilt said DISC 10:32:28.431847 ====> Client disconnected 10:32:28.432515 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:29.028975 ====> Client connect 10:32:29.036406 Received DATA (on stdin) 10:32:29.036664 > 178 bytes data, server => client 10:32:29.036798 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:29.036883 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:29.036961 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:29.037019 'rve\r\n' 10:32:29.037978 < 17 bytes data, client => server 10:32:29.038250 'A001 CAPABILITY\r\n' 10:32:29.040010 Received DATA (on stdin) 10:32:29.040238 > 18 bytes data, server => client 10:32:29.040327 'A001 BAD Command\r\n' 10:32:29.041099 < 30 bytes data, client => server 10:32:29.041324 'A002 LIST "verifiedserver" *\r\n' 10:32:29.042858 Received DATA (on stdin) 10:32:29.043066 > 34 bytes data, server => client 10:32:29.043152 '* LIST () "/" "WE ROOLZ: 114358"\r\n' 10:32:29.043480 Received DATA (on stdin) 10:32:29.043618 > 24 bytes data, server => client 10:32:29.043722 'A002 OK LIST Completed\r\n' 10:32:29.091690 < 13 bytes data, client => server 10:32:29.091935 'A003 LOGOUT\r\n' 10:32:29.093822 Received DATA (on stdin) 10:32:29.094012 > 36 bytes data, server => client 10:32:29.094107 '* BYE curl IMAP server signing off\r\n' 10:32:29.098447 Received DATA (on stdin) 10:32:29.098728 > 26 bytes data, server => client 10:32:29.098959 'A003 OK LOGOUT completed\r\n' 10:32:29.099317 ====> Client disconnect 10:32:29.100079 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 809 === End of file server.cmd === Start of file valgrind809 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind809 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/7/server/imap_server.pid" --logfile "log/7/imap_server.log" --logdir "log/7" --portfile "log/7/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 38743 (log/7/server/imap_server.port) RUN: IMAP server is PID 114683 port 38743 * pid imap => 114683 114683 test 0805...[IMAP APPEND message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind805 ../src/curl -q --output log/7/curl805.out --include --trace-ascii log/7/trCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind811 ../src/curl -q --output log/5/curl811.out --include --trace-ascii log/5/trace811 --trace-time imap://127.0.0.1:44021 -u user:secret -X 'CREATE 811' > log/5/stdout811 2> log/5/stderr811 ace805 --trace-time imap://127.0.0.1:38743/805 -T log/7/upload805 -u user:secret > log/7/stdout805 2> log/7/stderr805 805: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 805 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind805 ../src/curl -q --output log/7/curl805.out --include --trace-ascii log/7/trace805 --trace-time imap://127.0.0.1:38743/805 -T log/7/upload805 -u user:secret > log/7/stdout805 2> log/7/stderr805 === End of file commands.log === Start of file imap_server.log 10:32:27.860438 IMAP server listens on port IPv4/38743 10:32:27.861651 logged pid 114683 in log/7/server/imap_server.pid 10:32:27.862134 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:27.526734 Running IPv4 version 10:32:27.527421 Listening on port 38743 10:32:27.527924 Wrote pid 114788 to log/7/server/imap_sockfilt.pid 10:32:27.528258 Wrote port 38743 to log/7/server/imap_server.port 10:32:27.528460 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 805 === End of file server.cmd === Start of file upload805 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? === End of file upload805 === Start of file valgrind805 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind805 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/8/server/imap_server.pid" --logfile "log/8/imap_server.log" --logdir "log/8" --portfile "log/8/server/imap_server.port" --srcdir "/build/curl/src/curl/tests" --proto imap --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44267 (log/8/server/imap_server.port) RUN: IMAP server is PID 114695 port 44267 * pid imap => 114695 114695 test 0807...[IMAP LSUB mailbox] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind807 ../src/curl -q --output log/8/curl807.out --include --trace-ascii log/8/trace807 --trace-time imap://127.0.0.1:44267 -u user:secret -X 'LSUB "807" *' > log/8/stdout807 2> log/8/stderr807 807: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 807 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind807 ../src/curl -q --output log/8/curl807.out --include --trace-ascii log/8/trace807 --trace-time imap://127.0.0.1:44267 -u user:secret -X 'LSUB "807" *' > log/8/stdout807 2> log/8/stderr807 === End of file commands.log === Start of file imap_server.log 10:32:27.978380 IMAP server listens on port IPv4/44267 10:32:27.979626 logged pid 114695 in log/8/server/imap_server.pid 10:32:27.980098 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:27.644742 Running IPv4 version 10:32:27.645457 Listening on port 44267 10:32:27.646092 Wrote pid 114846 to log/8/server/imap_sockfilt.pid 10:32:27.646567 Wrote port 44267 to log/8/server/imap_server.port 10:32:27.646857 Received PING (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 807 === End of file server.cmd === Start of file valgrind807 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind807 test 0811...[IMAP CREATE mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind811 ../src/curl -q --output log/5/curl811.out --include --trace-ascii log/5/trace811 --trace-time imap://127.0.0.1:44021 -u user:secret -X 'CREATE 811' > log/5/stdout811 2> log/5/stderr811 811: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 811 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind811 ../src/curl -q --output log/5/curl811.out --include --trace-ascii log/5/trace811 --trace-time imap://127.0.0.1:44021 -u user:secret -X 'CREATE 811' > log/5/stdout811 2> log/5/stderr811 === End of file commands.log === Start of file imap_server.log 10:32:28.443947 ====> Client connect 10:32:28.445294 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:28.451909 < "A001 CAPABILITY" 10:32:28.452385 > "A001 BAD Command[CR][LF]" 10:32:28.454178 < "A002 LIST "verifiedserver" *" 10:32:28.454582 LCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind812 ../src/curl -q --output log/4/curl812.out --include --trace-ascii log/4/trace812 --trace-time imap://127.0.0.1:45271 -u user:secret -X 'DELETE 812' > log/4/stdout812 2> log/4/stderr812 IST_imap got "verifiedserver" * 10:32:28.455053 > "* LIST () "/" "WE ROOLZ: 114397"[CR][LF]" 10:32:28.455385 > "A002 OK LIST Completed[CR][LF]" 10:32:28.455568 return proof we are we 10:32:28.506383 < "A003 LOGOUT" 10:32:28.506891 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:28.507290 > "A003 OK LOGOUT completed[CR][LF]" 10:32:28.517630 MAIN sockfilt said DISC 10:32:28.518108 ====> Client disconnected 10:32:28.518726 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:29.112718 ====> Client connect 10:32:29.118862 Received DATA (on stdin) 10:32:29.119090 > 178 bytes data, server => client 10:32:29.119197 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:29.119284 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:29.119369 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:29.119449 'rve\r\n' 10:32:29.120172 < 17 bytes data, client => server 10:32:29.120380 'A001 CAPABILITY\r\n' 10:32:29.121740 Received DATA (on stdin) 10:32:29.121933 > 18 bytes data, server => client 10:32:29.122066 'A001 BAD Command\r\n' 10:32:29.122818 < 30 bytes data, client => server 10:32:29.123026 'A002 LIST "verifiedserver" *\r\n' 10:32:29.124393 Received DATA (on stdin) 10:32:29.124595 > 34 bytes data, server => client 10:32:29.124704 '* LIST () "/" "WE ROOLZ: 114397"\r\n' 10:32:29.125031 Received DATA (on stdin) 10:32:29.125143 > 24 bytes data, server => client 10:32:29.125231 'A002 OK LIST Completed\r\n' 10:32:29.169071 < 13 bytes data, client => server 10:32:29.169325 'A003 LOGOUT\r\n' 10:32:29.177567 Received DATA (on stdin) 10:32:29.177795 > 36 bytes data, server => client 10:32:29.177903 '* BYE curl IMAP server signing off\r\n' 10:32:29.178223 Received DATA (on stdin) 10:32:29.178373 > 26 bytes data, server => client 10:32:29.178464 'A003 OK LOGOUT completed\r\n' 10:32:29.183649 ====> Client disconnect 10:32:29.187551 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 811 === End of file server.cmd === Start of file valgrind811 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind811 test 0812...[IMAP DELETE mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind812 ../src/curl -q --output log/4/curl812.out --include --trace-ascii log/4/trace812 --trace-time imap://127.0.0.1:45271 -u user:secret -X 'DELETE 812' > log/4/stdout812 2> log/4/stderr812 812: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 812 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind812 ../src/curl -q --output log/4/curl812.out --include --trace-ascii log/4/trace812 --trace-time imap://127.0.0.1:45271 -u user:secret -X 'DELETE 812' > log/4/stdout812 2> log/4/stderr812 === End of file commands.log === Start of file imap_server.log 10:32:29.106470 ====> Client connect 10:32:29.108619 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:29.116061 < "A001 CAPABILITY" 10:32:29.117152 > "A001 BAD Command[CR][LF]" 10:32:29.120826 < "A002 LIST "verifiedserver" *" 10:32:29.121307 LIST_imap got "verifiedserver" * 10:32:29.122200 > "* LIST () "/" "WE ROOLZ: 107654"[CR][LF]" 10:32:29.122815 > "A002 OK LIST Completed[CR][LF]" 10:32:29.123195 return proof we are we 10:32:29.178381 < "A003 LOGOUT" 10:32:29.178942 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:29.179324 > "A003 OK LOGOUT completed[CR][LF]" 10:32:29.185913 MAIN sockfilt said DISC 10:32:29.186430 ====> Client disconnected 10:32:29.189894 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:28.774953 ====> Client connect 10:32:28.777918 Received DATA (on stdin) 10:32:28.778266 > 178 bytes data, server => client 10:32:28.778443 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:28.778585 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:28.778675 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:28.778872 'rve\r\n' 10:32:28.783653 < 17 bytes data, client => server 10:32:28.783964 'A001 CAPABILITY\r\n' 10:32:28.787578 Received DATA (on stdin) 10:32:28.787890 > 18 bytes data, server => client 10:32:28.788080 'A001 BAD Command\r\n' 10:32:28.789208 < 30 bytes data, client => server 10:32:28.789488 'A002 LIST "verifiedserver" *\r\n' 10:32:28.791496 Received DATA (on stdin) 10:32:28.791829 > 34 bytes data, server => client 10:32:28.791998 '* LIST () "/" "WE ROOLZ: 107654"\r\n' 10:32:28.792465 Received DATA (on stdin) 10:32:28.792706 > 24 bytes data, server => client 10:32:28.792815 'A002 OK LIST Completed\r\n' 10:32:28.842968 < 13 bytes data, client => server 10:32:28.843188 'A003 LOGOUT\r\n' 10:32:28.848287 Received DATA (on stdin) 10:32:28.848508 > 36 bytes data, server => client 10:32:28.848657 '* BYE curl IMAP server signing off\r\n' 10:32:28.849075 Received DATA (on stdin) 10:32:28.849347 > 26 bytes data, server => client 10:32:28.849495 'A003 OK LOGOUT completed\r\n' 10:32:28.854702 ====> Client disconnect 10:32:28.855748 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 812 === End of file server.cmd === Start of file valgrind812 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind813 ../src/curl -q --output log/3/curl813.out --include --trace-ascii log/3/trace813 --trace-time imap://127.0.0.1:43065 -u user:secret -X 'RENAME 666 813' > log/3/stdout813 2> log/3/stderr813 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind814 ../src/curl -q --output log/1/curl814.out --include --trace-ascii log/1/trace814 --trace-time imap://127.0.0.1:33191/814 -u user:secret -X 'CHECK' > log/1/stdout814 2> log/1/stderr814 On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind812 test 0813...[IMAP RENAME mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind813 ../src/curl -q --output log/3/curl813.out --include --trace-ascii log/3/trace813 --trace-time imap://127.0.0.1:43065 -u user:secret -X 'RENAME 666 813' > log/3/stdout813 2> log/3/stderr813 813: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 813 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind813 ../src/curl -q --output log/3/curl813.out --include --trace-ascii log/3/trace813 --trace-time imap://127.0.0.1:43065 -u user:secret -X 'RENAME 666 813' > log/3/stdout813 2> log/3/stderr813 === End of file commands.log === Start of file imap_server.log 10:32:29.253624 ====> Client connect 10:32:29.254934 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:29.260113 < "A001 CAPABILITY" 10:32:29.260556 > "A001 BAD Command[CR][LF]" 10:32:29.263274 < "A002 LIST "verifiedserver" *" 10:32:29.263831 LIST_imap got "verifiedserver" * 10:32:29.264360 > "* LIST () "/" "WE ROOLZ: 114678"[CR][LF]" 10:32:29.264799 > "A002 OK LIST Completed[CR][LF]" 10:32:29.265067 return proof we are we 10:32:29.313607 < "A003 LOGOUT" 10:32:29.315967 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:29.316513 > "A003 OK LOGOUT completed[CR][LF]" 10:32:29.318250 MAIN sockfilt said DISC 10:32:29.319110 ====> Client disconnected 10:32:29.319795 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:28.918594 ====> Client connect 10:32:28.924440 Received DATA (on stdin) 10:32:28.924613 > 178 bytes data, server => client 10:32:28.924720 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:28.924805 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:28.924881 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:28.924941 'rve\r\n' 10:32:28.928409 < 17 bytes data, client => server 10:32:28.928606 'A001 CAPABILITY\r\n' 10:32:28.929887 Received DATA (on stdin) 10:32:28.930069 > 18 bytes data, server => client 10:32:28.930165 'A001 BAD Command\r\n' 10:32:28.931110 < 30 bytes data, client => server 10:32:28.931394 'A002 LIST "verifiedserver" *\r\n' 10:32:28.934787 Received DATA (on stdin) 10:32:28.935030 > 34 bytes data, server => client 10:32:28.935160 '* LIST () "/" "WE ROOLZ: 114678"\r\n' 10:32:28.935500 Received DATA (on stdin) 10:32:28.935692 > 24 bytes data, server => client 10:32:28.935809 'A002 OK LIST Completed\r\n' 10:32:28.981654 < 13 bytes data, client => server 10:32:28.981886 'A003 LOGOUT\r\n' 10:32:28.983570 Received DATA (on stdin) 10:32:28.983807 > 36 bytes data, server => client 10:32:28.984660 '* BYE curl IMAP server signing off\r\n' 10:32:28.986247 Received DATA (on stdin) 10:32:28.986447 > 26 bytes data, server => client 10:32:28.986553 'A003 OK LOGOUT completed\r\n' 10:32:28.987190 ====> Client disconnect 10:32:28.988008 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 813 === End of file server.cmd === Start of file valgrind813 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind813 test 0814...[IMAP CHECK mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind814 ../src/curl -q --output log/1/curl814.out --include --trace-ascii log/1/trace814 --trace-time imap://127.0.0.1:33191/814 -u user:secret -X 'CHECK' > log/1/stdout814 2> log/1/stderr814 814: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 814 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind814 ../src/curl -q --output log/1/curl814.out --include --trace-ascii log/1/trace814 --trace-time imap://127.0.0.1:33191/814 -u user:secret -X 'CHECK' > log/1/stdout814 2> log/1/stderr814 === End of file commands.log === Start of file imap_server.log 10:32:29.318971 ====> Client connect 10:32:29.320593 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:29.323348 < "A001 CAPABILITY" 10:32:29.323865 > "A001 BAD Command[CR][LF]" 10:32:29.330842 < "A002 LIST "verifiedserver" *" 10:32:29.331331 LIST_imap got "verifiedserver" * 10:32:29.331815 > "* LIST () "/" "WE ROOLZ: 114681"[CR][LF]" 10:32:29.332148 > "A002 OK LIST Completed[CR][LF]" 10:32:29.332426 return proof we are we 10:32:29.376882 < "A003 LOGOUT" 10:32:29.377594 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:29.378050 > "A003 OK LOGOUT completed[CR][LF]" 10:32:29.383327 MAIN sockfilt said DISC 10:32:29.383809 ====> Client disconnected 10:32:29.384400 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:28.984090 ====> Client connect 10:32:28.989827 Received DATA (on stdin) 10:32:28.990080 > 178 bytes data, server => client 10:32:28.990197 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:28.990299 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:28.990383 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:28.990451 'rve\r\n' 10:32:28.991549 < 17 bytes data, client => server 10:32:28.991742 'A001 CAPABILITY\r\n' 10:32:28.993191 Received DATA (on stdin) 10:32:28.993392 > 18 bytes data, server => client 10:32:28.993495 'A001 BAD Command\r\n' 10:32:28.994375 < 30 bytes data, client => server 10:32:28.994566 'A002 LIST "verifiedservCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind815 ../src/curl -q --output log/6/curl815.out --include --trace-ascii log/6/trace815 --trace-time imap://127.0.0.1:34025/815 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:34025/815 -X CLOSE -u user:secret > log/6/stdout815 2> log/6/stderr815 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind817 ../src/curl -q --output log/7/curl817.out --include --trace-ascii log/7/trace817 --trace-time imap://127.0.0.1:38743 -u user:secret -X 'COPY 123 817' > log/7/stdout817 2> log/7/stderr817 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind818 ../src/curl -q --output log/8/curl818.out --include --trace-ascii log/8/trace818 --trace-time imap://127.0.0.1:44267 -X NOOP -u user:secret > log/8/stdout818 2> log/8/stderr818 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind816 ../src/curl -q --output log/2/curl816.out --include --trace-ascii log/2/trace816 --trace-time imap://127.0.0.1:41491/816 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:41491/816 -X EXPUNGE -u user:secret > log/2/stdout816 2> log/2/stderr816 er" *\r\n' 10:32:29.001808 Received DATA (on stdin) 10:32:29.001953 > 34 bytes data, server => client 10:32:29.002053 '* LIST () "/" "WE ROOLZ: 114681"\r\n' 10:32:29.002450 Received DATA (on stdin) 10:32:29.002617 > 24 bytes data, server => client 10:32:29.002703 'A002 OK LIST Completed\r\n' 10:32:29.045339 < 13 bytes data, client => server 10:32:29.045626 'A003 LOGOUT\r\n' 10:32:29.047216 Received DATA (on stdin) 10:32:29.047424 > 36 bytes data, server => client 10:32:29.047521 '* BYE curl IMAP server signing off\r\n' 10:32:29.047899 Received DATA (on stdin) 10:32:29.048104 > 26 bytes data, server => client 10:32:29.048197 'A003 OK LOGOUT completed\r\n' 10:32:29.048567 ====> Client disconnect 10:32:29.054132 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 814 === End of file server.cmd === Start of file valgrind814 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind814 test 0815...[IMAP STORE - delete message (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind815 ../src/curl -q --output log/6/curl815.out --include --trace-ascii log/6/trace815 --trace-time imap://127.0.0.1:34025/815 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:34025/815 -X CLOSE -u user:secret > log/6/stdout815 2> log/6/stderr815 815: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 815 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind815 ../src/curl -q --output log/6/curl815.out --include --trace-ascii log/6/trace815 --trace-time imap://127.0.0.1:34025/815 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:34025/815 -X CLOSE -u user:secret > log/6/stdout815 2> log/6/stderr815 === End of file commands.log === Start of file imap_server.log 10:32:29.352146 ====> Client connect 10:32:29.353375 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:29.359084 < "A001 CAPABILITY" 10:32:29.359620 > "A001 BAD Command[CR][LF]" 10:32:29.368596 < "A002 LIST "verifiedserver" *" 10:32:29.369060 LIST_imap got "verifiedserver" * 10:32:29.369684 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:29.370093 > "A002 OK LIST Completed[CR][LF]" 10:32:29.370357 return proof we are we 10:32:29.418965 < "A003 LOGOUT" 10:32:29.419412 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:29.419720 > "A003 OK LOGOUT completed[CR][LF]" 10:32:29.422439 MAIN sockfilt said DISC 10:32:29.423144 ====> Client disconnected 10:32:29.423739 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:30.020800 ====> Client connect 10:32:30.022666 Received DATA (on stdin) 10:32:30.023039 > 178 bytes data, server => client 10:32:30.023197 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:30.023319 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:30.023421 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:30.023503 'rve\r\n' 10:32:30.026113 < 17 bytes data, client => server 10:32:30.026340 'A001 CAPABILITY\r\n' 10:32:30.030444 Received DATA (on stdin) 10:32:30.030694 > 18 bytes data, server => client 10:32:30.030920 'A001 BAD Command\r\n' 10:32:30.035369 < 30 bytes data, client => server 10:32:30.035612 'A002 LIST "verifiedserver" *\r\n' 10:32:30.038967 Received DATA (on stdin) 10:32:30.039245 > 34 bytes data, server => client 10:32:30.039380 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:30.039738 Received DATA (on stdin) 10:32:30.039877 > 24 bytes data, server => client 10:32:30.039989 'A002 OK LIST Completed\r\n' 10:32:30.087177 < 13 bytes data, client => server 10:32:30.087397 'A003 LOGOUT\r\n' 10:32:30.089299 Received DATA (on stdin) 10:32:30.089454 > 36 bytes data, server => client 10:32:30.089540 '* BYE curl IMAP server signing off\r\n' 10:32:30.089878 Received DATA (on stdin) 10:32:30.090054 > 26 bytes data, server => client 10:32:30.090140 'A003 OK LOGOUT completed\r\n' 10:32:30.091336 ====> Client disconnect 10:32:30.092123 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 815 === End of file server.cmd === Start of file valgrind815 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind815 test 0817...[IMAP COPY message to mailbox (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind817 ../src/curl -q --output log/7/curl817.out --include --trace-ascii log/7/trace817 --trace-time imap://127.0.0.1:38743 -u user:secret -X 'COPY 123 817' > log/7/stdout817 2> log/7/stderr817 817: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 817 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind817 ../src/curl -q --output log/7/curl817.out --include --trace-ascii log/7/trace817 --trace-time imap://127.0.0.1:38743 -u user:secret -X 'COPY 123 817' > log/7/stdout817 2> log/7/stderr817 === End of file commands.log === Start of file imap_server.log 10:32:29.398005 ====> Client connect 10:32:29.399497 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:29.402296 < "A001 CAPABILITY" 10:32:29.402803 > "A001 BAD Command[CR][LF]" 10:32:29.404538 < "A002 LIST "verifiedserver" *" 10:32:29.404887 LIST_imap got "verifiedserver" * 10:32:29.405188 > "* LIST () "/" "WE ROOLZ: 114683"[CR][LF]" 10:32:29.405403 > "A002 OK LIST Completed[CR][LF]" 10:32:29.405677 return proof we are we 10:32:29.454240 < "A003 LOGOUT" 10:32:29.454732 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:29.455032 > "A003 OK LOGOUT completed[CR][LF]" 10:32:29.473622 MAIN sockfilt said DISC 10:32:29.474097 ====> Client disconnected 10:32:29.474734 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:29.061588 ====> Client connect 10:32:29.068796 Received DATA (on stdin) 10:32:29.069059 > 178 bytes data, server => client 10:32:29.069178 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:29.069262 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:29.069345 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:29.069421 'rve\r\n' 10:32:29.070382 < 17 bytes data, client => server 10:32:29.070581 'A001 CAPABILITY\r\n' 10:32:29.072141 Received DATA (on stdin) 10:32:29.072344 > 18 bytes data, server => client 10:32:29.072467 'A001 BAD Command\r\n' 10:32:29.073155 < 30 bytes data, client => server 10:32:29.073347 'A002 LIST "verifiedserver" *\r\n' 10:32:29.074504 Received DATA (on stdin) 10:32:29.074630 > 34 bytes data, server => client 10:32:29.074713 '* LIST () "/" "WE ROOLZ: 114683"\r\n' 10:32:29.075115 Received DATA (on stdin) 10:32:29.075245 > 24 bytes data, server => client 10:32:29.075338 'A002 OK LIST Completed\r\n' 10:32:29.120755 < 13 bytes data, client => server 10:32:29.120958 'A003 LOGOUT\r\n' 10:32:29.133730 Received DATA (on stdin) 10:32:29.133979 > 36 bytes data, server => client 10:32:29.134076 '* BYE curl IMAP server signing off\r\n' 10:32:29.134386 Received DATA (on stdin) 10:32:29.134516 > 26 bytes data, server => client 10:32:29.134594 'A003 OK LOGOUT completed\r\n' 10:32:29.139679 ====> Client disconnect 10:32:29.144257 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 817 === End of file server.cmd === Start of file valgrind817 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind817 test 0816...[IMAP STORE - delete message with confirmation (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind816 ../src/curl -q --output log/2/curl816.out --include --trace-ascii log/2/trace816 --trace-time imap://127.0.0.1:41491/816 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:41491/816 -X EXPUNGE -u user:secret > log/2/stdout816 2> log/2/stderr816 816: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 816 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind816 ../src/curl -q --output log/2/curl816.out --include --trace-ascii log/2/trace816 --trace-time imap://127.0.0.1:41491/816 -X 'STORE 123 +Flags \Deleted' -u user:secret -: imap://127.0.0.1:41491/816 -X EXPUNGE -u user:secret > log/2/stdout816 2> log/2/stderr816 === End of file commands.log === Start of file imap_server.log 10:32:29.385984 ====> Client connect 10:32:29.388678 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:29.390782 < "A001 CAPABILITY" 10:32:29.391250 > "A001 BAD Command[CR][LF]" 10:32:29.394329 < "A002 LIST "verifiedserver" *" 10:32:29.394742 LIST_imap got "verifiedserver" * 10:32:29.395139 > "* LIST () "/" "WE ROOLZ: 114358"[CR][LF]" 10:32:29.395483 > "A002 OK LIST Completed[CR][LF]" 10:32:29.395708 return proof we are we 10:32:29.442444 < "A003 LOGOUT" 10:32:29.444395 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:29.445709 > "A003 OK LOGOUT completed[CR][LF]" 10:32:29.447131 MAIN sockfilt said DISC 10:32:29.447615 ====> Client disconnected 10:32:29.448263 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:30.054535 ====> Client connect 10:32:30.056674 Received DATA (on stdin) 10:32:30.056926 > 178 bytes data, server => client 10:32:30.057123 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:30.057244 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:30.057332 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:30.057404 'rve\r\n' 10:32:30.058622 < 17 bytes data, client => server 10:32:30.058995 'A001 CAPABILITY\r\n' 10:32:30.060935 Received DATA (on stdin) 10:32:30.061091 > 18 bytes data, server => client 10:32:30.061177 'A001 BAD Command\r\n' 10:32:30.062511 < 30 bytes data, client => server 10:32:30.062703 'A002 LIST "verifiedserver" *\r\n' 10:32:30.065254 Received DATA (on stdin) 10:32:30.065426 > 34 bytes data, server => client 10:32:30.065509 '* LIST () "/" "WE ROOLZ: 114358"\r\n' 10:32:30.065826 Received DATA (on stdin) 10:32:30.065972 > 24 bytes data, server => client 10:32:30.066054 'A002 OK LIST Completed\r\n' 10:32:30.110647 < 13 bytes data, client => server 10:32:30.110914 'A003 LOGOUT\r\n' 10:32:30.112189 Received DATA (on stdin) 10:32:30.112386 > 36 bytes data, server => client 10:32:30.113065 '* BYE curl IMAP server signing off\r\n' 10:32:30.114198 Received DATA (on stdin) 10:32:30.114401 > 26 bytes data, server => client 10:32:30.114627 'A003 OK LOGOUT completed\r\n' 10:32:30.116035 ====> Client disconnect 10:32:30.117984 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 816 === End of file server.cmd === Start of file valgrind816 valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind819 ../src/curl -q --output log/5/curl819.out --include --trace-ascii log/5/trace819 --trace-time 'imap://127.0.0.1:44021/819/;MAILINDEX=1' -u user:secret > log/5/stdout819 2> log/5/stderr819 nd: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind816 test 0818...[IMAP NOOP (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind818 ../src/curl -q --output log/8/curl818.out --include --trace-ascii log/8/trace818 --trace-time imap://127.0.0.1:44267 -X NOOP -u user:secret > log/8/stdout818 2> log/8/stderr818 818: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 818 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind818 ../src/curl -q --output log/8/curl818.out --include --trace-ascii log/8/trace818 --trace-time imap://127.0.0.1:44267 -X NOOP -u user:secret > log/8/stdout818 2> log/8/stderr818 === End of file commands.log === Start of file imap_server.log 10:32:29.427593 ====> Client connect 10:32:29.429021 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:29.434612 < "A001 CAPABILITY" 10:32:29.435069 > "A001 BAD Command[CR][LF]" 10:32:29.438435 < "A002 LIST "verifiedserver" *" 10:32:29.438911 LIST_imap got "verifiedserver" * 10:32:29.439332 > "* LIST () "/" "WE ROOLZ: 114695"[CR][LF]" 10:32:29.439679 > "A002 OK LIST Completed[CR][LF]" 10:32:29.439870 return proof we are we 10:32:29.486223 < "A003 LOGOUT" 10:32:29.486598 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:29.486871 > "A003 OK LOGOUT completed[CR][LF]" 10:32:29.491017 MAIN sockfilt said DISC 10:32:29.491492 ====> Client disconnected 10:32:29.492223 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:29.095764 ====> Client connect 10:32:29.098286 Received DATA (on stdin) 10:32:29.098532 > 178 bytes data, server => client 10:32:29.098634 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:29.098721 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:29.099008 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:29.099091 'rve\r\n' 10:32:29.099837 < 17 bytes data, client => server 10:32:29.100067 'A001 CAPABILITY\r\n' 10:32:29.105367 Received DATA (on stdin) 10:32:29.105584 > 18 bytes data, server => client 10:32:29.105680 'A001 BAD Command\r\n' 10:32:29.106946 < 30 bytes data, client => server 10:32:29.107217 'A002 LIST "verifiedserver" *\r\n' 10:32:29.108645 Received DATA (on stdin) 10:32:29.108960 > 34 bytes data, server => client 10:32:29.109075 '* LIST () "/" "WE ROOLZ: 114695"\r\n' 10:32:29.109410 Received DATA (on stdin) 10:32:29.109579 > 24 bytes data, server => client 10:32:29.109679 'A002 OK LIST Completed\r\n' 10:32:29.152306 < 13 bytes data, client => server 10:32:29.152495 'A003 LOGOUT\r\n' 10:32:29.155914 Received DATA (on stdin) 10:32:29.156079 > 36 bytes data, server => client 10:32:29.156170 '* BYE curl IMAP server signing off\r\n' 10:32:29.159072 Received DATA (on stdin) 10:32:29.159346 > 26 bytes data, server => client 10:32:29.159464 'A003 OK LOGOUT completed\r\n' 10:32:29.159886 ====> Client disconnect 10:32:29.162248 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 818 === End of file server.cmd === Start of file valgrind818 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind818 test 0819...[IMAP plain authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind819 ../src/curl -q --output log/5/curl819.out --include --trace-ascii log/5/trace819 --trace-time 'imap://127.0.0.1:44021/819/;MAILINDEX=1' -u user:secret > log/5/stdout819 2> log/5/stderr819 819: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 819 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind819 ../src/curl -q --output log/5/curl819.out --include --trace-ascii log/5/trace819 --trace-time 'imap://127.0.0.1:44021/819/;MAILINDEX=1' -u user:secret > log/5/stdout819 2> log/5/stderr819 === End of file commands.log === Start of file imap_server.log 10:32:29.481042 ====> Client connect 10:32:29.482468 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:29.486139 < "A001 CAPABILITY" 10:32:29.486600 > "A001 BAD Command[CR][LF]" 10:32:29.492290 < "A002 LIST "verifiedserver" *" 10:32:29.492667 LIST_imap got "verifiedserver" * 10:32:29.493064 > "* LIST () "/" "WE ROOLZ: 114397"[CR][LF]" 10:32:29.493339 > "A002 OK LIST Completed[CR][LF]" 10:32:29.497739 return proof we are we 10:32:29.542589 < "A003 LOGOUT" 10:32:29.543248 > "* BYE curl IMAP server signCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind820 ../src/curl -q --output log/4/curl820.out --include --trace-ascii log/4/trace820 --trace-time 'imap://127.0.0.1:45271/820/;MAILINDEX=1' -u user:secret > log/4/stdout820 2> log/4/stderr820 ing off[CR][LF]" 10:32:29.543631 > "A003 OK LOGOUT completed[CR][LF]" 10:32:29.549631 MAIN sockfilt said DISC 10:32:29.550159 ====> Client disconnected 10:32:29.550780 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:30.149697 ====> Client connect 10:32:30.152728 Received DATA (on stdin) 10:32:30.152947 > 178 bytes data, server => client 10:32:30.153064 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:30.153162 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:30.153241 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:30.153315 'rve\r\n' 10:32:30.154404 < 17 bytes data, client => server 10:32:30.154626 'A001 CAPABILITY\r\n' 10:32:30.155913 Received DATA (on stdin) 10:32:30.156079 > 18 bytes data, server => client 10:32:30.156167 'A001 BAD Command\r\n' 10:32:30.156954 < 30 bytes data, client => server 10:32:30.157157 'A002 LIST "verifiedserver" *\r\n' 10:32:30.162649 Received DATA (on stdin) 10:32:30.163051 > 34 bytes data, server => client 10:32:30.163225 '* LIST () "/" "WE ROOLZ: 114397"\r\n' 10:32:30.163607 Received DATA (on stdin) 10:32:30.163782 > 24 bytes data, server => client 10:32:30.163870 'A002 OK LIST Completed\r\n' 10:32:30.210989 < 13 bytes data, client => server 10:32:30.211224 'A003 LOGOUT\r\n' 10:32:30.212555 Received DATA (on stdin) 10:32:30.212797 > 36 bytes data, server => client 10:32:30.212915 '* BYE curl IMAP server signing off\r\n' 10:32:30.213918 Received DATA (on stdin) 10:32:30.214210 > 26 bytes data, server => client 10:32:30.214336 'A003 OK LOGOUT completed\r\n' 10:32:30.214813 ====> Client disconnect 10:32:30.221357 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTHENTICATE + REPLY AHVzZXIAc2VjcmV0 A002 OK AUTHENTICATE completed Testnum 819 === End of file server.cmd === Start of file valgrind819 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind819 test 0820...[IMAP login authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind820 ../src/curl -q --output log/4/curl820.out --include --trace-ascii log/4/trace820 --trace-time 'imap://127.0.0.1:45271/820/;MAILINDEX=1' -u user:secret > log/4/stdout820 2> log/4/stderr820 820: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 820 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind820 ../src/curl -q --output log/4/curl820.out --include --trace-ascii log/4/trace820 --trace-time 'imap://127.0.0.1:45271/820/;MAILINDEX=1' -u user:secret > log/4/stdout820 2> log/4/stderr820 === End of file commands.log === Start of file imap_server.log 10:32:30.125991 ====> Client connect 10:32:30.128661 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:30.132814 < "A001 CAPABILITY" 10:32:30.134191 > "A001 BAD Command[CR][LF]" 10:32:30.142104 < "A002 LIST "verifiedserver" *" 10:32:30.142682 LIST_imap got "verifiedserver" * 10:32:30.143311 > "* LIST () "/" "WE ROOLZ: 107654"[CR][LF]" 10:32:30.143744 > "A002 OK LIST Completed[CR][LF]" 10:32:30.144090 return proof we are we 10:32:30.195400 < "A003 LOGOUT" 10:32:30.195830 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:30.196134 > "A003 OK LOGOUT completed[CR][LF]" 10:32:30.208093 MAIN sockfilt said DISC 10:32:30.209865 ====> Client disconnected 10:32:30.210607 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:29.794366 ====> Client connect 10:32:29.797928 Received DATA (on stdin) 10:32:29.798391 > 178 bytes data, server => client 10:32:29.798605 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:29.798830 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:29.798981 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:29.799107 'rve\r\n' 10:32:29.800329 < 17 bytes data, client => server 10:32:29.800680 'A001 CAPABILITY\r\n' 10:32:29.803443 Received DATA (on stdin) 10:32:29.803851 > 18 bytes data, server => client 10:32:29.804068 'A001 BAD Command\r\n' 10:32:29.805795 < 30 bytes data, client => server 10:32:29.806076 'A002 LIST "verifiedserver" *\r\n' 10:32:29.814073 Received DATA (on stdin) 10:32:29.814404 > 34 bytes data, server => client 10:32:29.814541 '* LIST () "/" "WE ROOLZ: 107654"\r\n' 10:32:29.815107 Received DATA (on stdin) 10:32:29.815460 > 24 bytes data, server => client 10:32:29.815595 'A002 OK LIST Completed\r\n' 10:32:29.863572 < 13 bytes data, client => server 10:32:29.863809 'A003 LOGOUT\r\n' 10:32:29.870985 Received DATA (on stdin) 10:32:29.871264 > 36 bytes data, server => client 10:32:29.871399 '* BYE curl IMAP server signing off\r\n' 10:32:29.871759 Received DATA (on stdin) 10:32:29.871945 > 26 bytes data, server => client 10:32:29.872056 'A003 OK LOGOUT completed\r\n' 10:32:29.876978 ====> Client disconnect 10:32:29.877858 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH LOGIN REPLY AUTHENTICATE + VXNlcm5hbWU6 REPLY dXNlcg== + UGFzc3dvcmQ6 REPLY c2VjcmV0 A002 OK AUTHENTICATE completed Testnum 820 === End of file server.cmd === Start of file valgrind820 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind821 ../src/curl -q --output log/3/curl821.out --include --trace-ascii log/3/trace821 --trace-time 'imap://127.0.0.1:43065/821/;MAILINDEX=1' -u user:secret > log/3/stdout821 2> log/3/stderr821 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind822 ../src/curl -q --output log/1/curl822.out --include --trace-ascii log/1/trace822 --trace-time 'imap://127.0.0.1:33191/822/;MAILINDEX=1' -u testuser:testpass > log/1/stdout822 2> log/1/stderr822 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind825 ../src/curl -q --output log/7/curl825.out --include --trace-ascii log/7/trace825 --trace-time 'imap://127.0.0.1:38743/825/;MAILINDEX=1' -u user:secret > log/7/stdout825 2> log/7/stderr825 On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind820 test 0821...[IMAP CRAM-MD5 authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind821 ../src/curl -q --output log/3/curl821.out --include --trace-ascii log/3/trace821 --trace-time 'imap://127.0.0.1:43065/821/;MAILINDEX=1' -u user:secret > log/3/stdout821 2> log/3/stderr821 821: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 821 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind821 ../src/curl -q --output log/3/curl821.out --include --trace-ascii log/3/trace821 --trace-time 'imap://127.0.0.1:43065/821/;MAILINDEX=1' -u user:secret > log/3/stdout821 2> log/3/stderr821 === End of file commands.log === Start of file imap_server.log 10:32:30.299152 ====> Client connect 10:32:30.300336 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:30.307539 < "A001 CAPABILITY" 10:32:30.308123 > "A001 BAD Command[CR][LF]" 10:32:30.311470 < "A002 LIST "verifiedserver" *" 10:32:30.311933 LIST_imap got "verifiedserver" * 10:32:30.312494 > "* LIST () "/" "WE ROOLZ: 114678"[CR][LF]" 10:32:30.312931 > "A002 OK LIST Completed[CR][LF]" 10:32:30.313192 return proof we are we 10:32:30.362776 < "A003 LOGOUT" 10:32:30.367178 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:30.368364 > "A003 OK LOGOUT completed[CR][LF]" 10:32:30.370784 MAIN sockfilt said DISC 10:32:30.374343 ====> Client disconnected 10:32:30.376365 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:29.965857 ====> Client connect 10:32:29.970083 Received DATA (on stdin) 10:32:29.973929 > 178 bytes data, server => client 10:32:29.974165 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:29.974259 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:29.974338 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:29.974402 'rve\r\n' 10:32:29.975727 < 17 bytes data, client => server 10:32:29.975915 'A001 CAPABILITY\r\n' 10:32:29.977930 Received DATA (on stdin) 10:32:29.978199 > 18 bytes data, server => client 10:32:29.978352 'A001 BAD Command\r\n' 10:32:29.979387 < 30 bytes data, client => server 10:32:29.979712 'A002 LIST "verifiedserver" *\r\n' 10:32:29.982851 Received DATA (on stdin) 10:32:29.983055 > 34 bytes data, server => client 10:32:29.983149 '* LIST () "/" "WE ROOLZ: 114678"\r\n' 10:32:29.983480 Received DATA (on stdin) 10:32:29.983632 > 24 bytes data, server => client 10:32:29.983714 'A002 OK LIST Completed\r\n' 10:32:30.030888 < 13 bytes data, client => server 10:32:30.031112 'A003 LOGOUT\r\n' 10:32:30.032440 Received DATA (on stdin) 10:32:30.032630 > 36 bytes data, server => client 10:32:30.035866 '* BYE curl IMAP server signing off\r\n' 10:32:30.036848 Received DATA (on stdin) 10:32:30.037043 > 26 bytes data, server => client 10:32:30.037246 'A003 OK LOGOUT completed\r\n' 10:32:30.039101 ====> Client disconnect 10:32:30.040519 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTHENTICATE + PDE5NzIuOTg3NjU0MzIxQGN1cmw+ REPLY dXNlciA3MDMxNzI1NTk5ZmRiYjVkNDEyNjg5YWEzMjNlM2UwYg== A002 OK AUTHENTICATE completed Testnum 821 === End of file server.cmd === Start of file valgrind821 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind821 test 0822...[IMAP NTLM authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind822 ../src/curl -q --output log/1/curl822.out --include --trace-ascii log/1/trace822 --trace-time 'imap://127.0.0.1:33191/822/;MAILINDEX=1' -u testuser:testpass > log/1/stdout822 2> log/1/stderr822 822: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 822 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind822 ../src/curl -q --output log/1/curl822.out --include --trace-ascii log/1/trace822 --trace-time 'imap://127.0.0.1:33191/822/;MAILINDEX=1' -u testuser:testpass > log/1/stdout822 2> log/1/stderr822 === End of file commands.log === Start of file imap_server.log 10:32:30.362309 ====> Client connect 10:32:30.363380 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:30.366573 < "A001 CAPABILITY" 10:32:30.367538 > "A001 BAD Command[CR][LF]" 10:32:30.372375 < "A002 LIST "verifiedserver" *" 10:32:30.372848 LIST_imap got "verifiedserver" * 10:32:30.373301 > "* LIST () "/" "WE ROOLZ: 114681"[CR][LF]" 10:32:30.373745 > "A002 OK LIST Completed[CR][LF]" 10:32:30.374015 return proof we are we 10:32:30.430089 < "A003 LOGOUT" 10:32:30.430478 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:30.430744 > "A003 OK LOGOUT completed[CR][LF]" 10:32:30.432199 MAIN sockfilt said DISC 10:32:30.432638 ====> Client disconnected 10:32:30.433194 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:30.030992 ====> Client connect 10:32:30.032966 Received DATA (on stdin) 10:32:30.033148 > 178 bytes data, server => client 10:32:30.033254 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:30.033330 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:30.033400 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:30.033462 'rve\r\n' 10:32:30.034357 < 17 bytes data, client => server 10:32:30.034540 'A001 CAPABILITY\r\n' 10:32:30.036304 Received DATA (on stdin) 10:32:30.036526 > 18 bytes data, server => client 10:32:30.037350 'A001 BAD ComCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind824 ../src/curl -q --output log/6/curl824.out --include --trace-ascii log/6/trace824 --trace-time 'imap://127.0.0.1:34025/824/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/6/stdout824 2> log/6/stderr824 mand\r\n' 10:32:30.039608 < 30 bytes data, client => server 10:32:30.039792 'A002 LIST "verifiedserver" *\r\n' 10:32:30.044417 Received DATA (on stdin) 10:32:30.044602 > 34 bytes data, server => client 10:32:30.044707 '* LIST () "/" "WE ROOLZ: 114681"\r\n' 10:32:30.045049 Received DATA (on stdin) 10:32:30.045225 > 24 bytes data, server => client 10:32:30.045334 'A002 OK LIST Completed\r\n' 10:32:30.092280 < 13 bytes data, client => server 10:32:30.092582 'A003 LOGOUT\r\n' 10:32:30.099960 Received DATA (on stdin) 10:32:30.100099 > 36 bytes data, server => client 10:32:30.100178 '* BYE curl IMAP server signing off\r\n' 10:32:30.100478 Received DATA (on stdin) 10:32:30.100673 > 26 bytes data, server => client 10:32:30.100777 'A003 OK LOGOUT completed\r\n' 10:32:30.101138 ====> Client disconnect 10:32:30.101926 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH NTLM REPLY AUTHENTICATE + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= A002 OK AUTHENTICATE completed Testnum 822 === End of file server.cmd === Start of file valgrind822 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind822 test 0825...[IMAP plain authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind825 ../src/curl -q --output log/7/curl825.out --include --trace-ascii log/7/trace825 --trace-time 'imap://127.0.0.1:38743/825/;MAILINDEX=1' -u user:secret > log/7/stdout825 2> log/7/stderr825 825: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 825 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind825 ../src/curl -q --output log/7/curl825.out --include --trace-ascii log/7/trace825 --trace-time 'imap://127.0.0.1:38743/825/;MAILINDEX=1' -u user:secret > log/7/stdout825 2> log/7/stderr825 === End of file commands.log === Start of file imap_server.log 10:32:30.411693 ====> Client connect 10:32:30.413045 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:30.423983 < "A001 CAPABILITY" 10:32:30.424664 > "A001 BAD Command[CR][LF]" 10:32:30.428786 < "A002 LIST "verifiedserver" *" 10:32:30.429116 LIST_imap got "verifiedserver" * 10:32:30.429398 > "* LIST () "/" "WE ROOLZ: 114683"[CR][LF]" 10:32:30.429801 > "A002 OK LIST Completed[CR][LF]" 10:32:30.429993 return proof we are we 10:32:30.479340 < "A003 LOGOUT" 10:32:30.479829 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:30.480175 > "A003 OK LOGOUT completed[CR][LF]" 10:32:30.482352 MAIN sockfilt said DISC 10:32:30.483209 ====> Client disconnected 10:32:30.483875 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:30.079041 ====> Client connect 10:32:30.086229 Received DATA (on stdin) 10:32:30.086503 > 178 bytes data, server => client 10:32:30.086649 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:30.087269 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:30.087434 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:30.087533 'rve\r\n' 10:32:30.088417 < 17 bytes data, client => server 10:32:30.088649 'A001 CAPABILITY\r\n' 10:32:30.094213 Received DATA (on stdin) 10:32:30.094381 > 18 bytes data, server => client 10:32:30.094501 'A001 BAD Command\r\n' 10:32:30.095384 < 30 bytes data, client => server 10:32:30.095646 'A002 LIST "verifiedserver" *\r\n' 10:32:30.098701 Received DATA (on stdin) 10:32:30.099120 > 34 bytes data, server => client 10:32:30.099218 '* LIST () "/" "WE ROOLZ: 114683"\r\n' 10:32:30.099522 Received DATA (on stdin) 10:32:30.099626 > 24 bytes data, server => client 10:32:30.099765 'A002 OK LIST Completed\r\n' 10:32:30.147564 < 13 bytes data, client => server 10:32:30.147778 'A003 LOGOUT\r\n' 10:32:30.149831 Received DATA (on stdin) 10:32:30.150044 > 36 bytes data, server => client 10:32:30.150185 '* BYE curl IMAP server signing off\r\n' 10:32:30.150517 Received DATA (on stdin) 10:32:30.150677 > 26 bytes data, server => client 10:32:30.150858 'A003 OK LOGOUT completed\r\n' 10:32:30.151261 ====> Client disconnect 10:32:30.152077 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 825 === End of file server.cmd === Start of file valgrind825 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind825 test 0824...[IMAP OAuth 2.0 (XOAUTH2) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet -CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind826 ../src/curl -q --output log/8/curl826.out --include --trace-ascii log/8/trace826 --trace-time 'imap://127.0.0.1:44267/826/;MAILINDEX=1' -u user:secret > log/8/stdout826 2> log/8/stderr826 -leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind824 ../src/curl -q --output log/6/curl824.out --include --trace-ascii log/6/trace824 --trace-time 'imap://127.0.0.1:34025/824/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/6/stdout824 2> log/6/stderr824 824: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 824 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind824 ../src/curl -q --output log/6/curl824.out --include --trace-ascii log/6/trace824 --trace-time 'imap://127.0.0.1:34025/824/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/6/stdout824 2> log/6/stderr824 === End of file commands.log === Start of file imap_server.log 10:32:30.390074 ====> Client connect 10:32:30.391513 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:30.395413 < "A001 CAPABILITY" 10:32:30.395938 > "A001 BAD Command[CR][LF]" 10:32:30.399181 < "A002 LIST "verifiedserver" *" 10:32:30.399724 LIST_imap got "verifiedserver" * 10:32:30.400232 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:30.400645 > "A002 OK LIST Completed[CR][LF]" 10:32:30.400904 return proof we are we 10:32:30.451053 < "A003 LOGOUT" 10:32:30.453747 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:30.454232 > "A003 OK LOGOUT completed[CR][LF]" 10:32:30.455593 MAIN sockfilt said DISC 10:32:30.456349 ====> Client disconnected 10:32:30.457060 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:31.058430 ====> Client connect 10:32:31.061281 Received DATA (on stdin) 10:32:31.061526 > 178 bytes data, server => client 10:32:31.061671 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:31.061801 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:31.061933 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:31.062031 'rve\r\n' 10:32:31.063439 < 17 bytes data, client => server 10:32:31.063724 'A001 CAPABILITY\r\n' 10:32:31.065548 Received DATA (on stdin) 10:32:31.065717 > 18 bytes data, server => client 10:32:31.065833 'A001 BAD Command\r\n' 10:32:31.067184 < 30 bytes data, client => server 10:32:31.067407 'A002 LIST "verifiedserver" *\r\n' 10:32:31.070368 Received DATA (on stdin) 10:32:31.070593 > 34 bytes data, server => client 10:32:31.070812 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:31.071212 Received DATA (on stdin) 10:32:31.071427 > 24 bytes data, server => client 10:32:31.071537 'A002 OK LIST Completed\r\n' 10:32:31.119469 < 13 bytes data, client => server 10:32:31.119585 'A003 LOGOUT\r\n' 10:32:31.120766 Received DATA (on stdin) 10:32:31.120926 > 36 bytes data, server => client 10:32:31.122386 '* BYE curl IMAP server signing off\r\n' 10:32:31.123906 Received DATA (on stdin) 10:32:31.124120 > 26 bytes data, server => client 10:32:31.124220 'A003 OK LOGOUT completed\r\n' 10:32:31.124567 ====> Client disconnect 10:32:31.125283 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTHENTICATE + REPLY dXNlcj11c2VyAWF1dGg9QmVhcmVyIG1GXzkuQjVmLTQuMUpxTQEB A002 OK AUTHENTICATE completed Testnum 824 === End of file server.cmd === Start of file valgrind824 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind824 test 0826...[IMAP login authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind826 ../src/curl -q --output log/8/curl826.out --include --trace-ascii log/8/trace826 --trace-time 'imap://127.0.0.1:44267/826/;MAILINDEX=1' -u user:secret > log/8/stdout826 2> log/8/stderr826 826: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 826 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind826 ../src/curl -q --output log/8/curl826.out --include --trace-ascii log/8/trace826 --trace-time 'imap://127.0.0.1:44267/826/;MAILINDEX=1' -u user:secret > log/8/stdout826 2> log/8/stderr826 === End of file commands.log === Start of file imap_server.log 10:32:30.438330 ====> Client connect 10:32:30.439704 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:30.446826 < "A001 CAPABILITY" 10:32:30.448688 > "A001 BAD Command[CR][LF]" 10:32:30.450690 < "A002 LIST "verifiedserver" *" 10:32:30.451046 LIST_imap got "verifiedserver" * 10:32:30.451404 > "* LIST () "/" "WE ROOLZ: 114695"[CR][LF]" 10:32:30.451673 > "A002 OK LIST Completed[CR][LF]" 10:32:30.451832 return proof we are we 10:32:30.503550 < "A003 LOGOUT" 10:32:30.503994 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:30.504358 > "A003 OK LOGOUT completed[CR][LF]" 10:32:30.506229 MAIN sockfilt said DISC 10:32:30.506626 ====> Client disconnected 10:32:30.508526 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:30.106697 ====> Client connect 10:32:30.109007 Received DATA (on stdin) 10:32:30.109282 > 178 bytes data, server => client 10:32:30.109426 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:30.109533 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:30.109616 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:30.109687 'rve\r\n' 10:32:30.114973 < 17 bytes data, client => server 10:32:30.115182 'A001 CAPABILITY\r\n' 10:32:30.117983 Received DATA (on stdin) 10:32:30.118194 > 18 bytes data, server => client 10:32:30.118298 'A001 BAD Command\r\n' 10:32:30.119271 < 30 bytes data, client => server 10:32:30.119483 'A002 LIST "verifiedserver" *\r\n' 10:32:30.121055 Received DATA (on stdin) 10:32:30.121201 > 34 bytes data, server => client 10:32:30.121360 '* LIST () "/" "WE ROOLZ: 114695"\r\n' 10:32:30.121708 Received DATA (on stdin) 10:32:30.121872 > 24 bytes data, server => client 10:32:30.121963 'A002 OK LIST Completed\r\n' 10:32:30.171014 < 13 bCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind827 ../src/curl -q --output log/2/curl827.out --include --trace-ascii log/2/trace827 --trace-time 'imap://127.0.0.1:41491/827/;MAILINDEX=1' -u testuser:testpass > log/2/stdout827 2> log/2/stderr827 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind828 ../src/curl -q --output log/5/curl828.out --include --trace-ascii log/5/trace828 --trace-time 'imap://127.0.0.1:44021/828/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/5/stdout828 2> log/5/stderr828 ytes data, client => server 10:32:30.171245 'A003 LOGOUT\r\n' 10:32:30.173319 Received DATA (on stdin) 10:32:30.173525 > 36 bytes data, server => client 10:32:30.173633 '* BYE curl IMAP server signing off\r\n' 10:32:30.173965 Received DATA (on stdin) 10:32:30.174142 > 26 bytes data, server => client 10:32:30.174243 'A003 OK LOGOUT completed\r\n' 10:32:30.174556 ====> Client disconnect 10:32:30.175963 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH LOGIN CAPA SASL-IR REPLY AUTHENTICATE + UGFzc3dvcmQ6 REPLY c2VjcmV0 A002 OK AUTHENTICATE completed Testnum 826 === End of file server.cmd === Start of file valgrind826 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind826 test 0827...[IMAP NTLM authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind827 ../src/curl -q --output log/2/curl827.out --include --trace-ascii log/2/trace827 --trace-time 'imap://127.0.0.1:41491/827/;MAILINDEX=1' -u testuser:testpass > log/2/stdout827 2> log/2/stderr827 827: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 827 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind827 ../src/curl -q --output log/2/curl827.out --include --trace-ascii log/2/trace827 --trace-time 'imap://127.0.0.1:41491/827/;MAILINDEX=1' -u testuser:testpass > log/2/stdout827 2> log/2/stderr827 === End of file commands.log === Start of file imap_server.log 10:32:30.502047 ====> Client connect 10:32:30.504320 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:30.510684 < "A001 CAPABILITY" 10:32:30.511220 > "A001 BAD Command[CR][LF]" 10:32:30.515947 < "A002 LIST "verifiedserver" *" 10:32:30.516399 LIST_imap got "verifiedserver" * 10:32:30.516771 > "* LIST () "/" "WE ROOLZ: 114358"[CR][LF]" 10:32:30.517039 > "A002 OK LIST Completed[CR][LF]" 10:32:30.517219 return proof we are we 10:32:30.564092 < "A003 LOGOUT" 10:32:30.564532 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:30.564805 > "A003 OK LOGOUT completed[CR][LF]" 10:32:30.570255 MAIN sockfilt said DISC 10:32:30.570609 ====> Client disconnected 10:32:30.571150 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:31.167618 ====> Client connect 10:32:31.172270 Received DATA (on stdin) 10:32:31.172506 > 178 bytes data, server => client 10:32:31.172734 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:31.172860 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:31.172950 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:31.173046 'rve\r\n' 10:32:31.178266 < 17 bytes data, client => server 10:32:31.178407 'A001 CAPABILITY\r\n' 10:32:31.180920 Received DATA (on stdin) 10:32:31.181106 > 18 bytes data, server => client 10:32:31.181201 'A001 BAD Command\r\n' 10:32:31.184185 < 30 bytes data, client => server 10:32:31.184356 'A002 LIST "verifiedserver" *\r\n' 10:32:31.187412 Received DATA (on stdin) 10:32:31.187585 > 34 bytes data, server => client 10:32:31.187671 '* LIST () "/" "WE ROOLZ: 114358"\r\n' 10:32:31.187943 Received DATA (on stdin) 10:32:31.188078 > 24 bytes data, server => client 10:32:31.188166 'A002 OK LIST Completed\r\n' 10:32:31.232072 < 13 bytes data, client => server 10:32:31.232344 'A003 LOGOUT\r\n' 10:32:31.235404 Received DATA (on stdin) 10:32:31.235688 > 36 bytes data, server => client 10:32:31.235812 '* BYE curl IMAP server signing off\r\n' 10:32:31.236113 Received DATA (on stdin) 10:32:31.236278 > 26 bytes data, server => client 10:32:31.236371 'A003 OK LOGOUT completed\r\n' 10:32:31.239097 ====> Client disconnect 10:32:31.240826 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH NTLM CAPA SASL-IR REPLY AUTHENTICATE + TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= A002 OK AUTHENTICATE completed Testnum 827 === End of file server.cmd === Start of file valgrind827 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind827 test 0828...[IMAP OAuth 2.0 (XOAUTH2) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind828 ../src/curl -q --output log/5/curl828.out --include --trace-ascii log/5/trace828 --trace-time 'imap://127.0.0.1:44021/828/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/5/stdout828 2> log/5/stderr828 828: protocol FAILED! There was no content at all in the file logCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind829 ../src/curl -q --output log/4/curl829.out --include --trace-ascii log/4/trace829 --trace-time imap://127.0.0.1:45271/%0d%0a/829 > log/4/stdout829 2> log/4/stderr829 /5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 828 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind828 ../src/curl -q --output log/5/curl828.out --include --trace-ascii log/5/trace828 --trace-time 'imap://127.0.0.1:44021/828/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/5/stdout828 2> log/5/stderr828 === End of file commands.log === Start of file imap_server.log 10:32:30.506191 ====> Client connect 10:32:30.508904 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:30.514071 < "A001 CAPABILITY" 10:32:30.514624 > "A001 BAD Command[CR][LF]" 10:32:30.520876 < "A002 LIST "verifiedserver" *" 10:32:30.521291 LIST_imap got "verifiedserver" * 10:32:30.521755 > "* LIST () "/" "WE ROOLZ: 114397"[CR][LF]" 10:32:30.522057 > "A002 OK LIST Completed[CR][LF]" 10:32:30.522230 return proof we are we 10:32:30.570339 < "A003 LOGOUT" 10:32:30.570682 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:30.570893 > "A003 OK LOGOUT completed[CR][LF]" 10:32:30.572316 MAIN sockfilt said DISC 10:32:30.572763 ====> Client disconnected 10:32:30.573380 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:31.174629 ====> Client connect 10:32:31.178156 Received DATA (on stdin) 10:32:31.178397 > 178 bytes data, server => client 10:32:31.178501 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:31.178593 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:31.178672 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:31.178904 'rve\r\n' 10:32:31.182209 < 17 bytes data, client => server 10:32:31.182419 'A001 CAPABILITY\r\n' 10:32:31.183898 Received DATA (on stdin) 10:32:31.186844 > 18 bytes data, server => client 10:32:31.187026 'A001 BAD Command\r\n' 10:32:31.188895 < 30 bytes data, client => server 10:32:31.189098 'A002 LIST "verifiedserver" *\r\n' 10:32:31.191013 Received DATA (on stdin) 10:32:31.191217 > 34 bytes data, server => client 10:32:31.191318 '* LIST () "/" "WE ROOLZ: 114397"\r\n' 10:32:31.192007 Received DATA (on stdin) 10:32:31.192211 > 24 bytes data, server => client 10:32:31.192311 'A002 OK LIST Completed\r\n' 10:32:31.238995 < 13 bytes data, client => server 10:32:31.239271 'A003 LOGOUT\r\n' 10:32:31.239969 Received DATA (on stdin) 10:32:31.240096 > 36 bytes data, server => client 10:32:31.240184 '* BYE curl IMAP server signing off\r\n' 10:32:31.240535 Received DATA (on stdin) 10:32:31.240705 > 26 bytes data, server => client 10:32:31.240805 'A003 OK LOGOUT completed\r\n' 10:32:31.241255 ====> Client disconnect 10:32:31.242660 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH XOAUTH2 CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 828 === End of file server.cmd === Start of file valgrind828 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind828 test 0829...[IMAP with URL-encoded CR LF in the URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind829 ../src/curl -q --output log/4/curl829.out --include --trace-ascii log/4/trace829 --trace-time imap://127.0.0.1:45271/%0d%0a/829 > log/4/stdout829 2> log/4/stderr829 curl returned 1, when expecting 3 829: exit FAILED == Contents of files in the log/4/ dir after test 829 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind829 ../src/curl -q --output log/4/curl829.out --include --trace-ascii log/4/trace829 --trace-time imap://127.0.0.1:45271/%0d%0a/829 > log/4/stdout829 2> log/4/stderr829 === End of file commands.log === Start of file imap_server.log 10:32:31.155578 ====> Client connect 10:32:31.158035 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:31.170787 < "A001 CAPABILITY" 10:32:31.177772 > "A001 BAD Command[CR][LF]" 10:32:31.181311 < "A002 LIST "verifiedserver" *" 10:32:31.181876 LIST_imap got "verifiedserver" * 10:32:31.183719 > "* LIST () "/" "WE ROOLZ: 107654"[CR][LF]" 10:32:31.185341 > "A002 OK LIST Completed[CR][LF]" 10:32:31.185895 return proof we are we 10:32:31.228773 < "A003 LOGOUT" 10:32:31.229256 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:31.229799 > "A003 OK LOGOUT completed[CR][LF]" 10:32:31.238138 MAIN sockfilt said DISC 10:32:31.238677 ====> Client disconnected 10:32:31.239436 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:30.824168 ====> Client connect 10:32:30.826367 Received DATA (on stdin) 10:32:30.826676 > 178 bytes data, server => client 10:32:30.828046 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:30.828268 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:30.828395 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:30.828490 'rve\r\n' 10:32:30.834937 < 17 bytes data, client => server 10:32:30.835212 'A001 CAPABILITY\r\n' 10:32:30.840625 Received DATA (on stdin) 10:32:30.840824 > 18 bytes data, server => client 10:32:30.847561 'A001 BAD Command\r\n' 10:32:30.849301 < 30 bytes data, client => server 10:32:30.849550 'A002 LIST "verifiedserver" *\r\n' 10:32:30.851771 Received DATA (on stdin) 10:32:30.852046 > 34 bytes data, server => client 10:32:30.852330 '* LIST () "/" "WE ROOLZ: 107654"\r\n' 10:32:30.853644 Received DATA (on stdin) 10:32:30.853909 > 24 bytes data, server => client 10:32:30.854204 'A002 OK LIST Completed\r\n' 10:32:30.896985 < 13 bytes data, client => server 10:32:30.897201 'A003 LOGOUT\r\n' 10:32:30.901853 Received DATA (on stdin) 10:32:30.902117 > 36 bytes data, server => client 10:32:30.902226 '* BYE curl IMAP server signing off\r\n' 10:32:30.902585 Received DATA (on stdin) 10:32:30.902842 > 26 bytes data, server => client 10:32:30.902986 'A003 OK LOGOUT completed\r\n' 10:32:30.906860 ====> Client disconnect 10:32:30.907953 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 829 === End of file server.cmd === Start of file valgrind829 valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind830 ../src/curl -q --output log/3/curl830.out --include --trace-ascii log/3/trace830 --trace-time 'imap://127.0.0.1:43065/830/;MAILINDEX=1' -u user:secret > log/3/stdout830 2> log/3/stderr830 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind831 ../src/curl -q --output log/1/curl831.out --include --trace-ascii log/1/trace831 --trace-time 'imap://127.0.0.1:33191/831/;MAILINDEX=1' -u testuser:testpass > log/1/stdout831 2> log/1/stderr831 Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind829 test 0830...[IMAP CRAM-MD5 graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind830 ../src/curl -q --output log/3/curl830.out --include --trace-ascii log/3/trace830 --trace-time 'imap://127.0.0.1:43065/830/;MAILINDEX=1' -u user:secret > log/3/stdout830 2> log/3/stderr830 830: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 830 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind830 ../src/curl -q --output log/3/curl830.out --include --trace-ascii log/3/trace830 --trace-time 'imap://127.0.0.1:43065/830/;MAILINDEX=1' -u user:secret > log/3/stdout830 2> log/3/stderr830 === End of file commands.log === Start of file imap_server.log 10:32:31.344656 ====> Client connect 10:32:31.346533 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:31.356168 < "A001 CAPABILITY" 10:32:31.356772 > "A001 BAD Command[CR][LF]" 10:32:31.362325 < "A002 LIST "verifiedserver" *" 10:32:31.362856 LIST_imap got "verifiedserver" * 10:32:31.363406 > "* LIST () "/" "WE ROOLZ: 114678"[CR][LF]" 10:32:31.363900 > "A002 OK LIST Completed[CR][LF]" 10:32:31.364293 return proof we are we 10:32:31.419635 < "A003 LOGOUT" 10:32:31.421791 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:31.422286 > "A003 OK LOGOUT completed[CR][LF]" 10:32:31.422578 MAIN sockfilt said DISC 10:32:31.422766 ====> Client disconnected 10:32:31.423271 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:31.013258 ====> Client connect 10:32:31.017086 Received DATA (on stdin) 10:32:31.017383 > 178 bytes data, server => client 10:32:31.017495 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:31.017577 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:31.017699 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:31.017772 'rve\r\n' 10:32:31.023304 < 17 bytes data, client => server 10:32:31.023500 'A001 CAPABILITY\r\n' 10:32:31.026935 Received DATA (on stdin) 10:32:31.027194 > 18 bytes data, server => client 10:32:31.027313 'A001 BAD Command\r\n' 10:32:31.028058 < 30 bytes data, client => server 10:32:31.028270 'A002 LIST "verifiedserver" *\r\n' 10:32:31.039193 Received DATA (on stdin) 10:32:31.039459 > 34 bytes data, server => client 10:32:31.039566 '* LIST () "/" "WE ROOLZ: 114678"\r\n' 10:32:31.039900 Received DATA (on stdin) 10:32:31.040085 > 24 bytes data, server => client 10:32:31.040174 'A002 OK LIST Completed\r\n' 10:32:31.087722 < 13 bytes data, client => server 10:32:31.087923 'A003 LOGOUT\r\n' 10:32:31.089377 Received DATA (on stdin) 10:32:31.089559 > 36 bytes data, server => client 10:32:31.089760 '* BYE curl IMAP server signing off\r\n' 10:32:31.090304 ====> Client disconnect 10:32:31.091556 Received DATA (on stdin) 10:32:31.091721 Throwing away data bytes 10:32:31.091808 > 26 bytes data, server => client 10:32:31.091884 'A003 OK LOGOUT completed\r\n' 10:32:31.093265 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 CAPA LOGINDISABLED REPLY AUTHENTICATE + Rubbish REPLY * A002 NO AUTH exchange cancelled by client Testnum 830 === End of file server.cmd === Start of file valgrind830 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind830 test 0831...[IMAP NTLM graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind831 ../src/curl -q --output log/1/curl831.out --include --trace-ascii log/1/trace831 --trace-time 'imap://127.0.0.1:33191/831/;MAILINDEX=1' -u testuser:testpass > log/1/stdout831 2> log/1/stderr831 831: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 831 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind831 ../src/curl -q --output log/1/curl831.out --include --trace-ascii log/1/trace831 --trace-time 'imap://127.0.0.1:33191/831/;MAILINDEX=1' -u testuser:testpass > log/1/stdout831 2> log/1/stderr831 === End of file commands.log === Start of file imap_server.log 10:32:31.386314 ====> Client connect 10:32:31.387776 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:31.392050 < "A001 CAPABILITY" 10:32:31.393925 > "A001 BAD Command[CR][LF]" 10:32:31.395631 < "A002 LIST "verifiedserver" *" 10:32:31.396068 LIST_imap got "verifiedserver" * 10:32:31.396786 > "* LIST () "CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind833 ../src/curl -q --output log/7/curl833.out --include --trace-ascii log/7/trace833 --trace-time 'imap://127.0.0.1:38743/833/;MAILINDEX=1' -u user:secret > log/7/stdout833 2> log/7/stderr833 /" "WE ROOLZ: 114681"[CR][LF]" 10:32:31.397186 > "A002 OK LIST Completed[CR][LF]" 10:32:31.397407 return proof we are we 10:32:31.446842 < "A003 LOGOUT" 10:32:31.448546 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:31.448993 > "A003 OK LOGOUT completed[CR][LF]" 10:32:31.453772 MAIN sockfilt said DISC 10:32:31.454268 ====> Client disconnected 10:32:31.460865 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:31.054925 ====> Client connect 10:32:31.058190 Received DATA (on stdin) 10:32:31.058420 > 178 bytes data, server => client 10:32:31.058528 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:31.058618 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:31.058760 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:31.058889 'rve\r\n' 10:32:31.059879 < 17 bytes data, client => server 10:32:31.060069 'A001 CAPABILITY\r\n' 10:32:31.061908 Received DATA (on stdin) 10:32:31.062124 > 18 bytes data, server => client 10:32:31.062346 'A001 BAD Command\r\n' 10:32:31.063782 < 30 bytes data, client => server 10:32:31.063951 'A002 LIST "verifiedserver" *\r\n' 10:32:31.065689 Received DATA (on stdin) 10:32:31.065803 > 34 bytes data, server => client 10:32:31.067071 '* LIST () "/" "WE ROOLZ: 114681"\r\n' 10:32:31.067436 Received DATA (on stdin) 10:32:31.067555 > 24 bytes data, server => client 10:32:31.067634 'A002 OK LIST Completed\r\n' 10:32:31.115086 < 13 bytes data, client => server 10:32:31.115291 'A003 LOGOUT\r\n' 10:32:31.116595 Received DATA (on stdin) 10:32:31.116802 > 36 bytes data, server => client 10:32:31.117762 '* BYE curl IMAP server signing off\r\n' 10:32:31.118232 Received DATA (on stdin) 10:32:31.118404 > 26 bytes data, server => client 10:32:31.118493 'A003 OK LOGOUT completed\r\n' 10:32:31.119609 ====> Client disconnect 10:32:31.123568 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH NTLM CAPA LOGINDISABLED REPLY AUTHENTICATE + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish REPLY * A002 NO AUTH exchange cancelled by client Testnum 831 === End of file server.cmd === Start of file valgrind831 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind831 test 0833...[IMAP CRAM-MD5 authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind833 ../src/curl -q --output log/7/curl833.out --include --trace-ascii log/7/trace833 --trace-time 'imap://127.0.0.1:38743/833/;MAILINDEX=1' -u user:secret > log/7/stdout833 2> log/7/stderr833 833: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 833 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind833 ../src/curl -q --output log/7/curl833.out --include --trace-ascii log/7/trace833 --trace-time 'imap://127.0.0.1:38743/833/;MAILINDEX=1' -u user:secret > log/7/stdout833 2> log/7/stderr833 === End of file commands.log === Start of file imap_server.log 10:32:31.393910 ====> Client connect 10:32:31.395283 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:31.399007 < "A001 CAPABILITY" 10:32:31.401103 > "A001 BAD Command[CR][LF]" 10:32:31.402132 < "A002 LIST "verifiedserver" *" 10:32:31.402511 LIST_imap got "verifiedserver" * 10:32:31.403405 > "* LIST () "/" "WE ROOLZ: 114683"[CR][LF]" 10:32:31.403861 > "A002 OK LIST Completed[CR][LF]" 10:32:31.404158 return proof we are we 10:32:31.452389 < "A003 LOGOUT" 10:32:31.453907 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:31.454339 > "A003 OK LOGOUT completed[CR][LF]" 10:32:31.460085 MAIN sockfilt said DISC 10:32:31.460929 ====> Client disconnected 10:32:31.461651 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:31.062128 ====> Client connect 10:32:31.065225 Received DATA (on stdin) 10:32:31.065531 > 178 bytes data, server => client 10:32:31.065649 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:31.065750 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:31.065822 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:31.065882 'rve\r\n' 10:32:31.067043 < 17 bytes data, client => server 10:32:31.067214 'A001 CAPABILITY\r\n' 10:32:31.068760 Received DATA (on stdin) 10:32:31.068948 > 18 bytes data, server => client 10:32:31.069118 'A001 BAD Command\r\n' 10:32:31.069764 < 30 bytes data, client => server 10:32:31.069947 'A002 LIST "verifiedserver" *\r\n' 10:32:31.072169 Received DATA (on stdin) 10:32:31.072373 > 34 bytes data, server => client 10:32:31.073732 '* LIST () "/" "WE ROOLZ: 114683"\r\n' 10:32:31.074499 Received DATA (on stdin) 10:32:31.074660 > 24 bytes data, server => client 10:32:31.074886 'A002 OK LIST Completed\r\n' 10:32:31.120397 < 13 bytes data, client => server 10:32:31.120641 'A003 LOGOUT\r\n' 10:32:31.122157 Received DATA (on stdin) 10:32:31.122343 > 36 bytes data, server => client 10:32:31.122559 '* BYE curl IMAP server signing off\r\n' 10:32:31.128168 Received DATA (on stdin) 10:32:31.128383 > 26 bytes data, server => client 10:32:31.128500 'A003 OK LOGOUT completed\r\n' 10:32:31.128936 ====> Client disconnect 10:32:31.129788 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 PLAIN REPLY "AUTHENTICATE CRAM-MD5" + Rubbish REPLY * A002 NO AUTH exchange cancelled by client REPLY "AUTHENTICATE PLAIN" + REPLY AHVzZXIAc2VjcmV0 A003 OK AUTHENTICATE completed Testnum 833 === End of file server.cmd === Start of file valgrind833 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distributionCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind834 ../src/curl -q --output log/6/curl834.out --include --trace-ascii log/6/trace834 --trace-time 'imap://127.0.0.1:34025/834/;MAILINDEX=1' -u user:secret > log/6/stdout834 2> log/6/stderr834 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind837 ../src/curl -q --output log/8/curl837.out --include --trace-ascii log/8/trace837 --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:44267/837/;MAILINDEX=1' > log/8/stdout837 2> log/8/stderr837 to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind833 test 0834...[IMAP NTLM authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind834 ../src/curl -q --output log/6/curl834.out --include --trace-ascii log/6/trace834 --trace-time 'imap://127.0.0.1:34025/834/;MAILINDEX=1' -u user:secret > log/6/stdout834 2> log/6/stderr834 834: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 834 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind834 ../src/curl -q --output log/6/curl834.out --include --trace-ascii log/6/trace834 --trace-time 'imap://127.0.0.1:34025/834/;MAILINDEX=1' -u user:secret > log/6/stdout834 2> log/6/stderr834 === End of file commands.log === Start of file imap_server.log 10:32:31.403879 ====> Client connect 10:32:31.404829 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:31.407871 < "A001 CAPABILITY" 10:32:31.408869 > "A001 BAD Command[CR][LF]" 10:32:31.411269 < "A002 LIST "verifiedserver" *" 10:32:31.411741 LIST_imap got "verifiedserver" * 10:32:31.412147 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:31.412496 > "A002 OK LIST Completed[CR][LF]" 10:32:31.412712 return proof we are we 10:32:31.467631 < "A003 LOGOUT" 10:32:31.468164 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:31.468494 > "A003 OK LOGOUT completed[CR][LF]" 10:32:31.471726 MAIN sockfilt said DISC 10:32:31.472067 ====> Client disconnected 10:32:31.472632 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:32.072495 ====> Client connect 10:32:32.074477 Received DATA (on stdin) 10:32:32.074665 > 178 bytes data, server => client 10:32:32.074891 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:32.074994 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:32.075086 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:32.075165 'rve\r\n' 10:32:32.075873 < 17 bytes data, client => server 10:32:32.076086 'A001 CAPABILITY\r\n' 10:32:32.077649 Received DATA (on stdin) 10:32:32.077863 > 18 bytes data, server => client 10:32:32.078492 'A001 BAD Command\r\n' 10:32:32.079287 < 30 bytes data, client => server 10:32:32.079510 'A002 LIST "verifiedserver" *\r\n' 10:32:32.082208 Received DATA (on stdin) 10:32:32.082397 > 34 bytes data, server => client 10:32:32.082500 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:32.082935 Received DATA (on stdin) 10:32:32.083166 > 24 bytes data, server => client 10:32:32.083292 'A002 OK LIST Completed\r\n' 10:32:32.132009 < 13 bytes data, client => server 10:32:32.132212 'A003 LOGOUT\r\n' 10:32:32.139209 Received DATA (on stdin) 10:32:32.139488 > 36 bytes data, server => client 10:32:32.139602 '* BYE curl IMAP server signing off\r\n' 10:32:32.139922 Received DATA (on stdin) 10:32:32.140060 > 26 bytes data, server => client 10:32:32.140147 'A003 OK LOGOUT completed\r\n' 10:32:32.140699 ====> Client disconnect 10:32:32.142158 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH NTLM PLAIN REPLY "AUTHENTICATE NTLM" + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish REPLY * A002 NO AUTH exchange cancelled by client REPLY "AUTHENTICATE PLAIN" + REPLY AHVzZXIAc2VjcmV0 A003 OK AUTHENTICATE completed Testnum 834 === End of file server.cmd === Start of file valgrind834 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind834 test 0837...[IMAP external authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind837 ../src/curl -q --output log/8/curl837.out --include --trace-ascii log/8/trace837 --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:44267/837/;MAILINDEX=1' > log/8/stdout837 2> log/8/stderr837 837: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 837 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind837 ../src/curl -q --output log/8/curl837.out --include --trace-ascii log/8/trace837 --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:44267/837/;MAILINDEX=1' > log/8/stdout837 2> log/8/stderr837 === End of file commands.log === Start of file imap_server.log 10:32:31.465794 ====> Client connect 10:32:31.467015 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:31.472120 < "A001 CAPABILITY" 10:32:31.472537 > "A001 BAD Command[CR][LF]" 10:32:31.482110 < "A002 LIST "verifiedserver" *" 10:32:31.482538 LIST_imap got "verifiedserver" * 10:32:31.482916 > "* LIST () "/" "WE ROOLZ: 114695"[CR][LF]" 10:32:31.483299 > "A002 OK LIST Completed[CR][LF]" 10:32:31.483520 return proof we are we 10:32:31.538298 < "A003 LOGOUT" 10:32:31.538779 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:31.539073 > "A003 OK LOGOUT completed[CR][LF]" 10:32:31.542333 MAIN sockfilt said DISC 10:32:31.542800 ====> Client disconnected 10:32:31.543445 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:31.131276 ====> Client connect 10:32:31.138071 Received DATA (on stdin) 10:32:31.138289 > 178 bytes data, server => client 10:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind839 ../src/curl -q --output log/5/curl839.out --include --trace-ascii log/5/trace839 --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:44021/839/;MAILINDEX=1' > log/5/stdout839 2> log/5/stderr839 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind838 ../src/curl -q --output log/2/curl838.out --include --trace-ascii log/2/trace838 --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:41491/838/;MAILINDEX=1' > log/2/stdout838 2> log/2/stderr838 32:31.138391 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:31.138472 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:31.138541 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:31.138604 'rve\r\n' 10:32:31.140389 < 17 bytes data, client => server 10:32:31.140535 'A001 CAPABILITY\r\n' 10:32:31.142491 Received DATA (on stdin) 10:32:31.142670 > 18 bytes data, server => client 10:32:31.142821 'A001 BAD Command\r\n' 10:32:31.147891 < 30 bytes data, client => server 10:32:31.148143 'A002 LIST "verifiedserver" *\r\n' 10:32:31.152247 Received DATA (on stdin) 10:32:31.152441 > 34 bytes data, server => client 10:32:31.152552 '* LIST () "/" "WE ROOLZ: 114695"\r\n' 10:32:31.152910 Received DATA (on stdin) 10:32:31.153055 > 24 bytes data, server => client 10:32:31.153148 'A002 OK LIST Completed\r\n' 10:32:31.198983 < 13 bytes data, client => server 10:32:31.199235 'A003 LOGOUT\r\n' 10:32:31.208084 Received DATA (on stdin) 10:32:31.208306 > 36 bytes data, server => client 10:32:31.208406 '* BYE curl IMAP server signing off\r\n' 10:32:31.208708 Received DATA (on stdin) 10:32:31.208859 > 26 bytes data, server => client 10:32:31.208956 'A003 OK LOGOUT completed\r\n' 10:32:31.211189 ====> Client disconnect 10:32:31.212088 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTHENTICATE + REPLY dXNlcg== A002 OK AUTHENTICATE completed Testnum 837 === End of file server.cmd === Start of file valgrind837 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind837 test 0839...[IMAP external authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind839 ../src/curl -q --output log/5/curl839.out --include --trace-ascii log/5/trace839 --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:44021/839/;MAILINDEX=1' > log/5/stdout839 2> log/5/stderr839 839: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 839 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind839 ../src/curl -q --output log/5/curl839.out --include --trace-ascii log/5/trace839 --trace-time 'imap://user;AUTH=EXTERNAL@127.0.0.1:44021/839/;MAILINDEX=1' > log/5/stdout839 2> log/5/stderr839 === End of file commands.log === Start of file imap_server.log 10:32:31.584036 ====> Client connect 10:32:31.585299 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:31.587746 < "A001 CAPABILITY" 10:32:31.588236 > "A001 BAD Command[CR][LF]" 10:32:31.590465 < "A002 LIST "verifiedserver" *" 10:32:31.590877 LIST_imap got "verifiedserver" * 10:32:31.591195 > "* LIST () "/" "WE ROOLZ: 114397"[CR][LF]" 10:32:31.591487 > "A002 OK LIST Completed[CR][LF]" 10:32:31.591678 return proof we are we 10:32:31.638480 < "A003 LOGOUT" 10:32:31.639021 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:31.639387 > "A003 OK LOGOUT completed[CR][LF]" 10:32:31.643266 MAIN sockfilt said DISC 10:32:31.643734 ====> Client disconnected 10:32:31.644408 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:32.250885 ====> Client connect 10:32:32.254610 Received DATA (on stdin) 10:32:32.254983 > 178 bytes data, server => client 10:32:32.255107 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:32.255185 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:32.255256 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:32.255315 'rve\r\n' 10:32:32.256068 < 17 bytes data, client => server 10:32:32.256321 'A001 CAPABILITY\r\n' 10:32:32.257528 Received DATA (on stdin) 10:32:32.257699 > 18 bytes data, server => client 10:32:32.257796 'A001 BAD Command\r\n' 10:32:32.258922 < 30 bytes data, client => server 10:32:32.261290 'A002 LIST "verifiedserver" *\r\n' 10:32:32.261415 Received DATA (on stdin) 10:32:32.261506 > 34 bytes data, server => client 10:32:32.261579 '* LIST () "/" "WE ROOLZ: 114397"\r\n' 10:32:32.261863 Received DATA (on stdin) 10:32:32.262011 > 24 bytes data, server => client 10:32:32.262094 'A002 OK LIST Completed\r\n' 10:32:32.303939 < 13 bytes data, client => server 10:32:32.304228 'A003 LOGOUT\r\n' 10:32:32.308293 Received DATA (on stdin) 10:32:32.308540 > 36 bytes data, server => client 10:32:32.308657 '* BYE curl IMAP server signing off\r\n' 10:32:32.309009 Received DATA (on stdin) 10:32:32.309161 > 26 bytes data, server => client 10:32:32.309264 'A003 OK LOGOUT completed\r\n' 10:32:32.312006 ====> Client disconnect 10:32:32.314173 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH EXTERNAL CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 839 === End of file server.cmd === Start of file valgrind839 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind839 test 0838...[IMAP external authentication without credentials] ..CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind840 ../src/curl -q --output log/4/curl840.out --include --trace-ascii log/4/trace840 --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:45271/840/;MAILINDEX=1' > log/4/stdout840 2> log/4/stderr840 /libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind838 ../src/curl -q --output log/2/curl838.out --include --trace-ascii log/2/trace838 --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:41491/838/;MAILINDEX=1' > log/2/stdout838 2> log/2/stderr838 838: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 838 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind838 ../src/curl -q --output log/2/curl838.out --include --trace-ascii log/2/trace838 --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:41491/838/;MAILINDEX=1' > log/2/stdout838 2> log/2/stderr838 === End of file commands.log === Start of file imap_server.log 10:32:31.551154 ====> Client connect 10:32:31.552516 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:31.556031 < "A001 CAPABILITY" 10:32:31.557050 > "A001 BAD Command[CR][LF]" 10:32:31.559783 < "A002 LIST "verifiedserver" *" 10:32:31.560253 LIST_imap got "verifiedserver" * 10:32:31.560655 > "* LIST () "/" "WE ROOLZ: 114358"[CR][LF]" 10:32:31.560969 > "A002 OK LIST Completed[CR][LF]" 10:32:31.561213 return proof we are we 10:32:31.607780 < "A003 LOGOUT" 10:32:31.608738 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:31.609137 > "A003 OK LOGOUT completed[CR][LF]" 10:32:31.614898 MAIN sockfilt said DISC 10:32:31.615893 ====> Client disconnected 10:32:31.616580 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:32.219571 ====> Client connect 10:32:32.222220 Received DATA (on stdin) 10:32:32.222425 > 178 bytes data, server => client 10:32:32.222534 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:32.222615 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:32.222697 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:32.222898 'rve\r\n' 10:32:32.223914 < 17 bytes data, client => server 10:32:32.224146 'A001 CAPABILITY\r\n' 10:32:32.225829 Received DATA (on stdin) 10:32:32.226035 > 18 bytes data, server => client 10:32:32.226849 'A001 BAD Command\r\n' 10:32:32.227823 < 30 bytes data, client => server 10:32:32.228084 'A002 LIST "verifiedserver" *\r\n' 10:32:32.231321 Received DATA (on stdin) 10:32:32.231586 > 34 bytes data, server => client 10:32:32.231705 '* LIST () "/" "WE ROOLZ: 114358"\r\n' 10:32:32.232072 Received DATA (on stdin) 10:32:32.232306 > 24 bytes data, server => client 10:32:32.232409 'A002 OK LIST Completed\r\n' 10:32:32.276015 < 13 bytes data, client => server 10:32:32.276213 'A003 LOGOUT\r\n' 10:32:32.277526 Received DATA (on stdin) 10:32:32.277728 > 36 bytes data, server => client 10:32:32.278732 '* BYE curl IMAP server signing off\r\n' 10:32:32.282935 Received DATA (on stdin) 10:32:32.283228 > 26 bytes data, server => client 10:32:32.283356 'A003 OK LOGOUT completed\r\n' 10:32:32.283766 ====> Client disconnect 10:32:32.284631 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTHENTICATE + REPLY = A002 OK AUTHENTICATE completed Testnum 838 === End of file server.cmd === Start of file valgrind838 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind838 test 0840...[IMAP external authentication with initial response without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind840 ../src/curl -q --output log/4/curl840.out --include --trace-ascii log/4/trace840 --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:45271/840/;MAILINDEX=1' > log/4/stdout840 2> log/4/stderr840 840: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 840 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind840 ../src/curl -q --output log/4/curl840.out --include --trace-ascii log/4/trace840 --trace-time 'imap://;AUTH=EXTERNAL@127.0.0.1:45271/840/;MAILINDEX=1' > log/4/stdout840 2> log/4/stderr840 === End of file commands.log === Start of file imap_server.log 10:32:32.140315 ====> Client connect 10:32:32.142020 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:32.148923 < "A001 CAPABILITY" 10:32:32.149596 > "A001 BAD Command[CR][LF]" 10:32:32.159551 < "A002 LIST "verifiedserver" *" 10:32:32.160135 LIST_imap got "verifiedserver" * 10:32:32.160707 > "* LIST () "/" "WE ROOLZ: 107654"[CR][LF]" 10:32:32.161088 > "A002 OK LIST Completed[CR][LF]" 10:32:32.161268 return proof we are we 10:32:32.222455 < "A003 LOGOUT" 10:32:32.222971 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:32.225578 > "A003 OK LOGOUT completed[CR][LF]" 10:32:32.226282 MAIN sockfilt said DISC 10:32:32.226725 ====> Client disconnected 10:32:32.227450 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:31.808010 ====> Client connect 10:32:31.812445 Received DATA (on stdin) 10:32:31.812776 > 178 bytes data, server => client 10:32:31.812911 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:31.813002 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:31.813094 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:31.813164 'rve\r\n' 10:32:31.814594 < 17 bytes data, client => server 10:32:31.814954 'A001 CAPABILITY\r\n' 10:32:31.818926 Received DATA (on stdin) 10:32:31.819154 > 18 bytes data, server => client 10:32:31.819267 'A001 BAD Command\r\n' 10:32:31.825303 < 30 bytes data, client => server 10:32:31.825526 'A002 LIST "verifiedserver" *\r\n' 10:32:31.830009 Received DATA (on stdin) 10:32:31.830231 > 34 bytes data, server => client 10:32:31.830354 '* LIST () "/" "WE ROOLZ: 107654"\r\n' 10:32:31.830788 Received DATA (on stdin) 10:32:31.830996 > 24 bytes data, server => client 10:32:31.831103 'A002 OK LIST Completed\r\n' 10:32:31.886875 < 13 bytes data,CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind841 ../src/curl -q --output log/3/curl841.out --include --trace-ascii log/3/trace841 --trace-time imap://127.0.0.1:43065/841/ -u user:secret -X 'FETCH 123 BODY[1]' > log/3/stdout841 2> log/3/stderr841 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind842 ../src/curl -q --output log/1/curl842.out --include --trace-ascii log/1/trace842 --trace-time 'imap://127.0.0.1:33191/842/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/1/stdout842 2> log/1/stderr842 client => server 10:32:31.887225 'A003 LOGOUT\r\n' 10:32:31.892774 Received DATA (on stdin) 10:32:31.893023 > 36 bytes data, server => client 10:32:31.893146 '* BYE curl IMAP server signing off\r\n' 10:32:31.893879 ====> Client disconnect 10:32:31.897199 Received DATA (on stdin) 10:32:31.897441 Throwing away data bytes 10:32:31.897552 > 26 bytes data, server => client 10:32:31.897653 'A003 OK LOGOUT completed\r\n' 10:32:31.897739 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH EXTERNAL CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 840 === End of file server.cmd === Start of file valgrind840 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind840 test 0841...[IMAP custom request doesn't check continuation data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind841 ../src/curl -q --output log/3/curl841.out --include --trace-ascii log/3/trace841 --trace-time imap://127.0.0.1:43065/841/ -u user:secret -X 'FETCH 123 BODY[1]' > log/3/stdout841 2> log/3/stderr841 841: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 841 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind841 ../src/curl -q --output log/3/curl841.out --include --trace-ascii log/3/trace841 --trace-time imap://127.0.0.1:43065/841/ -u user:secret -X 'FETCH 123 BODY[1]' > log/3/stdout841 2> log/3/stderr841 === End of file commands.log === Start of file imap_server.log 10:32:32.358830 ====> Client connect 10:32:32.360151 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:32.374691 < "A001 CAPABILITY" 10:32:32.375293 > "A001 BAD Command[CR][LF]" 10:32:32.379836 < "A002 LIST "verifiedserver" *" 10:32:32.380290 LIST_imap got "verifiedserver" * 10:32:32.380734 > "* LIST () "/" "WE ROOLZ: 114678"[CR][LF]" 10:32:32.381181 > "A002 OK LIST Completed[CR][LF]" 10:32:32.381456 return proof we are we 10:32:32.429826 < "A003 LOGOUT" 10:32:32.430381 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:32.430710 > "A003 OK LOGOUT completed[CR][LF]" 10:32:32.434109 MAIN sockfilt said DISC 10:32:32.434499 ====> Client disconnected 10:32:32.441989 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:32.026954 ====> Client connect 10:32:32.033425 Received DATA (on stdin) 10:32:32.033683 > 178 bytes data, server => client 10:32:32.033783 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:32.033863 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:32.033947 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:32.034025 'rve\r\n' 10:32:32.041496 < 17 bytes data, client => server 10:32:32.041740 'A001 CAPABILITY\r\n' 10:32:32.044989 Received DATA (on stdin) 10:32:32.045276 > 18 bytes data, server => client 10:32:32.045402 'A001 BAD Command\r\n' 10:32:32.047128 < 30 bytes data, client => server 10:32:32.047278 'A002 LIST "verifiedserver" *\r\n' 10:32:32.051019 Received DATA (on stdin) 10:32:32.051206 > 34 bytes data, server => client 10:32:32.051320 '* LIST () "/" "WE ROOLZ: 114678"\r\n' 10:32:32.051652 Received DATA (on stdin) 10:32:32.051794 > 24 bytes data, server => client 10:32:32.051880 'A002 OK LIST Completed\r\n' 10:32:32.097624 < 13 bytes data, client => server 10:32:32.097836 'A003 LOGOUT\r\n' 10:32:32.099632 Received DATA (on stdin) 10:32:32.099812 > 36 bytes data, server => client 10:32:32.099897 '* BYE curl IMAP server signing off\r\n' 10:32:32.100203 Received DATA (on stdin) 10:32:32.100346 > 26 bytes data, server => client 10:32:32.100455 'A003 OK LOGOUT completed\r\n' 10:32:32.100811 ====> Client disconnect 10:32:32.103813 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 841 === End of file server.cmd === Start of file valgrind841 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind841 test 0842...[IMAP OAuth 2.0 (OAUTHBEARER) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind842 ../src/curl -q --output log/1/curl842.out --include --trace-ascii log/1/trace842 --trace-time 'imap://127.0.0.1:33191/842/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/1/stdout842 2> log/1/stderr842 842: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 842 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind842 ../src/curl -q --output log/1/curl842.out --include --trace-ascii log/1/trace842 --trace-time 'imap://127.0.0.1:33191/842/;MAILINDEX=1' -u usCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind843 ../src/curl -q --output log/7/curl843.out --include --trace-ascii log/7/trace843 --trace-time 'imap://127.0.0.1:38743/843/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/7/stdout843 2> log/7/stderr843 er --oauth2-bearer mF_9.B5f-4.1JqM > log/1/stdout842 2> log/1/stderr842 === End of file commands.log === Start of file imap_server.log 10:32:32.359702 ====> Client connect 10:32:32.360970 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:32.364308 < "A001 CAPABILITY" 10:32:32.364783 > "A001 BAD Command[CR][LF]" 10:32:32.372875 < "A002 LIST "verifiedserver" *" 10:32:32.373386 LIST_imap got "verifiedserver" * 10:32:32.376294 > "* LIST () "/" "WE ROOLZ: 114681"[CR][LF]" 10:32:32.376761 > "A002 OK LIST Completed[CR][LF]" 10:32:32.377049 return proof we are we 10:32:32.434379 < "A003 LOGOUT" 10:32:32.434845 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:32.435175 > "A003 OK LOGOUT completed[CR][LF]" 10:32:32.443021 MAIN sockfilt said DISC 10:32:32.443448 ====> Client disconnected 10:32:32.443957 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:32.028176 ====> Client connect 10:32:32.030620 Received DATA (on stdin) 10:32:32.031021 > 178 bytes data, server => client 10:32:32.031166 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:32.031262 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:32.031339 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:32.031405 'rve\r\n' 10:32:32.032206 < 17 bytes data, client => server 10:32:32.032399 'A001 CAPABILITY\r\n' 10:32:32.039240 Received DATA (on stdin) 10:32:32.039534 > 18 bytes data, server => client 10:32:32.039664 'A001 BAD Command\r\n' 10:32:32.040599 < 30 bytes data, client => server 10:32:32.040825 'A002 LIST "verifiedserver" *\r\n' 10:32:32.046642 Received DATA (on stdin) 10:32:32.046954 > 34 bytes data, server => client 10:32:32.047053 '* LIST () "/" "WE ROOLZ: 114681"\r\n' 10:32:32.047409 Received DATA (on stdin) 10:32:32.047562 > 24 bytes data, server => client 10:32:32.047680 'A002 OK LIST Completed\r\n' 10:32:32.100389 < 13 bytes data, client => server 10:32:32.100554 'A003 LOGOUT\r\n' 10:32:32.104104 Received DATA (on stdin) 10:32:32.104294 > 36 bytes data, server => client 10:32:32.104401 '* BYE curl IMAP server signing off\r\n' 10:32:32.104758 Received DATA (on stdin) 10:32:32.104938 > 26 bytes data, server => client 10:32:32.105031 'A003 OK LOGOUT completed\r\n' 10:32:32.111867 ====> Client disconnect 10:32:32.112707 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTHENTICATE + REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9MzMxOTEBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= A002 OK AUTHENTICATE completed Testnum 842 === End of file server.cmd === Start of file valgrind842 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind842 test 0843...[IMAP OAuth 2.0 (OAUTHBEARER) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind843 ../src/curl -q --output log/7/curl843.out --include --trace-ascii log/7/trace843 --trace-time 'imap://127.0.0.1:38743/843/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/7/stdout843 2> log/7/stderr843 843: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 843 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind843 ../src/curl -q --output log/7/curl843.out --include --trace-ascii log/7/trace843 --trace-time 'imap://127.0.0.1:38743/843/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/7/stdout843 2> log/7/stderr843 === End of file commands.log === Start of file imap_server.log 10:32:32.432327 ====> Client connect 10:32:32.436177 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:32.446716 < "A001 CAPABILITY" 10:32:32.447169 > "A001 BAD Command[CR][LF]" 10:32:32.448871 < "A002 LIST "verifiedserver" *" 10:32:32.449216 LIST_imap got "verifiedserver" * 10:32:32.449619 > "* LIST () "/" "WE ROOLZ: 114683"[CR][LF]" 10:32:32.449961 > "A002 OK LIST Completed[CR][LF]" 10:32:32.450195 return proof we are we 10:32:32.498426 < "A003 LOGOUT" 10:32:32.498926 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:32.499306 > "A003 OK LOGOUT completed[CR][LF]" 10:32:32.502695 MAIN sockfilt said DISC 10:32:32.503058 ====> Client disconnected 10:32:32.503650 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:32.100867 ====> Client connect 10:32:32.102793 Received DATA (on stdin) 10:32:32.103084 > 178 bytes data, server => client 10:32:32.110894 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:32.111157 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:32.111317 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:32.111408 'rve\r\n' 10:32:32.115059 < 17 bytes data, client => server 10:32:32.115263 'A001 CAPABILITY\r\n' 10:32:32.116414 Received DATA (on stdin) 10:32:32.116566 > 18 bytes data, server => client 10:32:32.116658 'A001 BAD Command\r\n' 10:32:32.117400 < 30 bytes data, client => server 10:32:32.117578 'A002 LIST "verifiedserver" *\r\n' 10:32:32.118822 Received DATA (on stdin) 10:32:32.119006 > 34 bytes data, server => client 10:32:32.119109 '* LIST () "/" "WE ROOLZ: 114683"\r\n' 10:32:32.119496 Received DATA (on stdin) 10:32:32.119620 > 24 bytes data, server => client 10:32:32.119713 'A002 OK LIST Completed\r\n' 10:32:32.166930 < 13 bytes data, client => server 10:32:32.167124 'A003 LOGOUT\r\n' 10:32:32.168281 Received DATA (on stdin) 10:32:32.168424 > 36 bytes data, server => client 10:32:32.168528 '* BYE curl IMAP server signing off\r\n' 10:32:32.168921 Received DATA (on stdin) 10:32:32.169132 > 26 bytes data, server => client 10:32:32.169250 'A003 OK LOGOUT completed\r\n' 10:32:32.169636 ====> Client disconnect 10:32:32.172340 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER CAPA SASL-IR REPLY AUTHENTICATE A002 OK AUTHENTICATE completed Testnum 843 === End of file server.cmd === Start of file valgrind843 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind845 ../src/curl -q --output log/8/curl845.out --include --trace-ascii log/8/trace845 --trace-time 'imap://127.0.0.1:44267/845/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/8/stdout845 2> log/8/stderr845 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind844 ../src/curl -q --output log/6/curl844.out --include --trace-ascii log/6/trace844 --trace-time 'imap://127.0.0.1:34025/844/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/6/stdout844 2> log/6/stderr844 nation valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind843 test 0845...[IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind845 ../src/curl -q --output log/8/curl845.out --include --trace-ascii log/8/trace845 --trace-time 'imap://127.0.0.1:44267/845/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/8/stdout845 2> log/8/stderr845 845: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 845 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind845 ../src/curl -q --output log/8/curl845.out --include --trace-ascii log/8/trace845 --trace-time 'imap://127.0.0.1:44267/845/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/8/stdout845 2> log/8/stderr845 === End of file commands.log === Start of file imap_server.log 10:32:32.490381 ====> Client connect 10:32:32.491524 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:32.494674 < "A001 CAPABILITY" 10:32:32.495161 > "A001 BAD Command[CR][LF]" 10:32:32.502343 < "A002 LIST "verifiedserver" *" 10:32:32.502794 LIST_imap got "verifiedserver" * 10:32:32.503127 > "* LIST () "/" "WE ROOLZ: 114695"[CR][LF]" 10:32:32.503384 > "A002 OK LIST Completed[CR][LF]" 10:32:32.503622 return proof we are we 10:32:32.551152 < "A003 LOGOUT" 10:32:32.551561 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:32.551826 > "A003 OK LOGOUT completed[CR][LF]" 10:32:32.554094 MAIN sockfilt said DISC 10:32:32.554531 ====> Client disconnected 10:32:32.555050 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:32.159023 ====> Client connect 10:32:32.160746 Received DATA (on stdin) 10:32:32.160985 > 178 bytes data, server => client 10:32:32.161095 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:32.161178 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:32.161247 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:32.161309 'rve\r\n' 10:32:32.162945 < 17 bytes data, client => server 10:32:32.163171 'A001 CAPABILITY\r\n' 10:32:32.164397 Received DATA (on stdin) 10:32:32.164579 > 18 bytes data, server => client 10:32:32.164694 'A001 BAD Command\r\n' 10:32:32.165560 < 30 bytes data, client => server 10:32:32.165759 'A002 LIST "verifiedserver" *\r\n' 10:32:32.173205 Received DATA (on stdin) 10:32:32.173388 > 34 bytes data, server => client 10:32:32.173486 '* LIST () "/" "WE ROOLZ: 114695"\r\n' 10:32:32.173833 Received DATA (on stdin) 10:32:32.173988 > 24 bytes data, server => client 10:32:32.174080 'A002 OK LIST Completed\r\n' 10:32:32.219672 < 13 bytes data, client => server 10:32:32.219916 'A003 LOGOUT\r\n' 10:32:32.220810 Received DATA (on stdin) 10:32:32.220982 > 36 bytes data, server => client 10:32:32.221081 '* BYE curl IMAP server signing off\r\n' 10:32:32.222014 Received DATA (on stdin) 10:32:32.222271 > 26 bytes data, server => client 10:32:32.222403 'A003 OK LOGOUT completed\r\n' 10:32:32.222970 ====> Client disconnect 10:32:32.223783 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER CAPA SASL-IR REPLY AUTHENTICATE + eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0= REPLY AQ== A002 NO Authentication failed Testnum 845 === End of file server.cmd === Start of file valgrind845 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind845 test 0844...[IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind844 ../src/curl -q --output log/6/curl844.out --include --trace-ascii log/6/trace844 --trace-time 'imap://127.0.0.1:34025/844/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/6/stdout844 2> log/6/stderr844 844: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 844 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind844 ../src/curl -q --output log/6/curl844.out --include --trace-ascii log/6/trace844 --trace-time 'imap://127.0.0.1:34025/844/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/6/stdout844 2> log/6/stderr844 === End of file commands.log === Start of file imap_server.log 10:32:32.457223 ====> Client connect 10:32:32.460002 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:32.471489 < "A001 CAPABILITY" 10:32:32.472019 > "A001CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind847 ../src/curl -q --output log/2/curl847.out --include --trace-ascii log/2/trace847 --trace-time 'imap://127.0.0.1:41491/847/;UID=1' -u '"user:sec"ret{' > log/2/stdout847 2> log/2/stderr847 BAD Command[CR][LF]" 10:32:32.474836 < "A002 LIST "verifiedserver" *" 10:32:32.475303 LIST_imap got "verifiedserver" * 10:32:32.475794 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:32.476169 > "A002 OK LIST Completed[CR][LF]" 10:32:32.476396 return proof we are we 10:32:32.522402 < "A003 LOGOUT" 10:32:32.522914 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:32.523291 > "A003 OK LOGOUT completed[CR][LF]" 10:32:32.526994 MAIN sockfilt said DISC 10:32:32.527790 ====> Client disconnected 10:32:32.528388 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:33.125838 ====> Client connect 10:32:33.127794 Received DATA (on stdin) 10:32:33.128035 > 178 bytes data, server => client 10:32:33.128275 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:33.128434 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:33.128552 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:33.128640 'rve\r\n' 10:32:33.139379 < 17 bytes data, client => server 10:32:33.139620 'A001 CAPABILITY\r\n' 10:32:33.141643 Received DATA (on stdin) 10:32:33.141803 > 18 bytes data, server => client 10:32:33.141901 'A001 BAD Command\r\n' 10:32:33.142865 < 30 bytes data, client => server 10:32:33.143073 'A002 LIST "verifiedserver" *\r\n' 10:32:33.145748 Received DATA (on stdin) 10:32:33.145947 > 34 bytes data, server => client 10:32:33.146077 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:33.146414 Received DATA (on stdin) 10:32:33.146588 > 24 bytes data, server => client 10:32:33.146786 'A002 OK LIST Completed\r\n' 10:32:33.190439 < 13 bytes data, client => server 10:32:33.190748 'A003 LOGOUT\r\n' 10:32:33.194624 Received DATA (on stdin) 10:32:33.194897 > 36 bytes data, server => client 10:32:33.194992 '* BYE curl IMAP server signing off\r\n' 10:32:33.195280 Received DATA (on stdin) 10:32:33.195414 > 26 bytes data, server => client 10:32:33.195501 'A003 OK LOGOUT completed\r\n' 10:32:33.195798 ====> Client disconnect 10:32:33.196689 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTHENTICATE + REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9MzQwMjUBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= A002 NO Authentication failed Testnum 844 === End of file server.cmd === Start of file valgrind844 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind844 test 0847...[IMAP FETCH message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind847 ../src/curl -q --output log/2/curl847.out --include --trace-ascii log/2/trace847 --trace-time 'imap://127.0.0.1:41491/847/;UID=1' -u '"user:sec"ret{' > log/2/stdout847 2> log/2/stderr847 847: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 847 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind847 ../src/curl -q --output log/2/curl847.out --include --trace-ascii log/2/trace847 --trace-time 'imap://127.0.0.1:41491/847/;UID=1' -u '"user:sec"ret{' > log/2/stdout847 2> log/2/stderr847 === End of file commands.log === Start of file imap_server.log 10:32:32.613696 ====> Client connect 10:32:32.616410 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:32.620136 < "A001 CAPABILITY" 10:32:32.620613 > "A001 BAD Command[CR][LF]" 10:32:32.624095 < "A002 LIST "verifiedserver" *" 10:32:32.624573 LIST_imap got "verifiedserver" * 10:32:32.626770 > "* LIST () "/" "WE ROOLZ: 114358"[CR][LF]" 10:32:32.627270 > "A002 OK LIST Completed[CR][LF]" 10:32:32.627593 return proof we are we 10:32:32.672199 < "A003 LOGOUT" 10:32:32.674739 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:32.675265 > "A003 OK LOGOUT completed[CR][LF]" 10:32:32.681404 MAIN sockfilt said DISC 10:32:32.682509 ====> Client disconnected 10:32:32.683264 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:33.278971 ====> Client connect 10:32:33.284147 Received DATA (on stdin) 10:32:33.284469 > 178 bytes data, server => client 10:32:33.284786 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:33.284966 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:33.285068 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:33.285138 'rve\r\n' 10:32:33.287899 < 17 bytes data, client => server 10:32:33.288136 'A001 CAPABILITY\r\n' 10:32:33.290892 Received DATA (on stdin) 10:32:33.291189 > 18 bytes data, server => client 10:32:33.291309 'A001 BAD Command\r\n' 10:32:33.292054 < 30 bytes data, client => server 10:32:33.292262 'A002 LIST "verifiedserver" *\r\n' 10:32:33.294233 Received DATA (on stdin) 10:32:33.294446 > 34 bytes data, server => client 10:32:33.295175 '* LIST () "/" "WE ROOLZ: 114358"\r\n' 10:32:33.297202 Received DATA (on stdin) 10:32:33.297409 > 24 bytes data, server => client 10:32:33.297538 'A002 OK LIST Completed\r\n' 10:32:33.340158 < 13 bytes data, client => server 10:32:33.340405 'A003 LOGOUT\r\n' 10:32:33.341977 Received DATA (on stdin) 10:32:33.342222 > 36 bytes data, server => client 10:32:33.344856 '* BYE curl IMAP server signing off\r\n' 10:32:33.345323 Received DATA (on stdin) 10:32:33.345534 > 26 bytes data, server => client 10:32:33.345629 'A003 OK LOGOUT completed\r\n' 10:32:33.350218 ====> Client disconnect 10:32:33.351320 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 847 === End of file server.cmd === Start of file valgrind847 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind846 ../src/curl -q --output log/5/curl846.out --include --trace-ascii log/5/trace846 --trace-time 'imap://127.0.0.1:44021/846/;MAILINDEX=1' -u notused:still-provided > log/5/stdout846 2> log/5/stderr846 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind848 ../src/curl -q --output log/4/curl848.out --include --trace-ascii log/4/trace848 --trace-time 'imap://127.0.0.1:45271/848/;MAILINDEX=1' -u user:secret --sasl-authzid shared-mailbox > log/4/stdout848 2> log/4/stderr848 dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind847 test 0846...[IMAP PREAUTH response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind846 ../src/curl -q --output log/5/curl846.out --include --trace-ascii log/5/trace846 --trace-time 'imap://127.0.0.1:44021/846/;MAILINDEX=1' -u notused:still-provided > log/5/stdout846 2> log/5/stderr846 846: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 846 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind846 ../src/curl -q --output log/5/curl846.out --include --trace-ascii log/5/trace846 --trace-time 'imap://127.0.0.1:44021/846/;MAILINDEX=1' -u notused:still-provided > log/5/stdout846 2> log/5/stderr846 === End of file commands.log === Start of file imap_server.log 10:32:32.597628 ====> Client connect 10:32:32.598984 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:32.603097 < "A001 CAPABILITY" 10:32:32.603592 > "A001 BAD Command[CR][LF]" 10:32:32.605881 < "A002 LIST "verifiedserver" *" 10:32:32.606366 LIST_imap got "verifiedserver" * 10:32:32.606838 > "* LIST () "/" "WE ROOLZ: 114397"[CR][LF]" 10:32:32.607135 > "A002 OK LIST Completed[CR][LF]" 10:32:32.607316 return proof we are we 10:32:32.652278 < "A003 LOGOUT" 10:32:32.652773 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:32.653201 > "A003 OK LOGOUT completed[CR][LF]" 10:32:32.660917 MAIN sockfilt said DISC 10:32:32.662108 ====> Client disconnected 10:32:32.662850 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:33.262992 ====> Client connect 10:32:33.268537 Received DATA (on stdin) 10:32:33.268798 > 178 bytes data, server => client 10:32:33.268969 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:33.269064 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:33.269137 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:33.269202 'rve\r\n' 10:32:33.271296 < 17 bytes data, client => server 10:32:33.271557 'A001 CAPABILITY\r\n' 10:32:33.272831 Received DATA (on stdin) 10:32:33.272977 > 18 bytes data, server => client 10:32:33.273055 'A001 BAD Command\r\n' 10:32:33.273803 < 30 bytes data, client => server 10:32:33.273997 'A002 LIST "verifiedserver" *\r\n' 10:32:33.276807 Received DATA (on stdin) 10:32:33.276971 > 34 bytes data, server => client 10:32:33.277063 '* LIST () "/" "WE ROOLZ: 114397"\r\n' 10:32:33.277379 Received DATA (on stdin) 10:32:33.277541 > 24 bytes data, server => client 10:32:33.277632 'A002 OK LIST Completed\r\n' 10:32:33.320321 < 13 bytes data, client => server 10:32:33.320543 'A003 LOGOUT\r\n' 10:32:33.322810 Received DATA (on stdin) 10:32:33.323009 > 36 bytes data, server => client 10:32:33.323107 '* BYE curl IMAP server signing off\r\n' 10:32:33.323421 Received DATA (on stdin) 10:32:33.323572 > 26 bytes data, server => client 10:32:33.323663 'A003 OK LOGOUT completed\r\n' 10:32:33.329732 ====> Client disconnect 10:32:33.330609 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd REPLY welcome * PREAUTH ready to serve already REPLY CAPABILITY * CAPABILITY IMAP4REV1 I18NLEVEL=1 LITERAL+ IDLE UIDPLUS NAMESPACE CHILDREN MAILBOX-REFERRALS BINARY UNSELECT ESEARCH WITHIN SCAN SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND SASL-IR LOGIN-REFERRALS STARTTLS LOGINDISABLED\r\nA001 OK CAPABILITY completed Testnum 846 === End of file server.cmd === Start of file valgrind846 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind846 test 0848...[IMAP plain authentication with alternative authorization identity] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind848 ../src/curl -q --output log/4/curl848.out --include --trace-ascii log/4/trace848 --trace-time 'imap://127.0.0.1:45271/848/;MAILINDEX=1' -u user:secret --sasl-authzid shared-mailbox > log/4/stdout848 2> log/4/stderr848 848: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 848 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind848 ../src/curl -q --output log/4/curl848.out --include --trace-ascii log/4/trace848 --trace-time 'imap://127.0.0.1:45271/848/;MAILINDEX=1' -u user:secret --sasl-authzid shared-mailbox > log/4/stdout848 2> log/4/stderr848 === End of file commands.log === Start of file imap_server.log 10:32:33.197632 ====> Client connect 10:32:33.205938 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:33.212308 < "A001 CAPABILITY" 10:32:33.212893 > "A001 BAD Command[CR][LF]" 10:32:33.223703 < "A002 LIST "verifiedserver" *" 10:32:33.224335 LIST_imap got "verifiedserver" * 10:32:33.226668 > "* LIST () "/" "WE ROOLZ: 107654"[CR][LF]" 10:32:33.228351 > "A002 OK LIST Completed[CR][LF]" 10:32:33.228803 return proof we are we 10:32:33.275888 < "A003 LOGOUT" 10:32:33.280660 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:33.281394 > "A003 OK LOGOUT completed[CR][LF]" 10:32:33.283638 MAIN sockfilt said DISC 10:32:33.284189 ====> Client disconnected 10:32:33.284915 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:32.862839 ====> Client connectCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind850 ../src/curl -q --output log/1/curl850.out --include --trace-ascii log/1/trace850 --trace-time pop3://127.0.0.1:37137/850 -u user:secret > log/1/stdout850 2> log/1/stderr850 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind849 ../src/curl -q --output log/3/curl849.out --include --trace-ascii log/3/trace849 --trace-time 'imap://127.0.0.1:43065/849/;MAILINDEX=1' -u kurt:xipj3plmq --sasl-authzid ursel > log/3/stdout849 2> log/3/stderr849 10:32:32.868586 Received DATA (on stdin) 10:32:32.868929 > 178 bytes data, server => client 10:32:32.875748 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:32.876002 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:32.876151 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:32.876267 'rve\r\n' 10:32:32.882519 < 17 bytes data, client => server 10:32:32.882917 'A001 CAPABILITY\r\n' 10:32:32.883163 Received DATA (on stdin) 10:32:32.883273 > 18 bytes data, server => client 10:32:32.883382 'A001 BAD Command\r\n' 10:32:32.891058 < 30 bytes data, client => server 10:32:32.891622 'A002 LIST "verifiedserver" *\r\n' 10:32:32.894316 Received DATA (on stdin) 10:32:32.894799 > 34 bytes data, server => client 10:32:32.895166 '* LIST () "/" "WE ROOLZ: 107654"\r\n' 10:32:32.896723 Received DATA (on stdin) 10:32:32.897002 > 24 bytes data, server => client 10:32:32.897228 'A002 OK LIST Completed\r\n' 10:32:32.943640 < 13 bytes data, client => server 10:32:32.943927 'A003 LOGOUT\r\n' 10:32:32.945851 Received DATA (on stdin) 10:32:32.946148 > 36 bytes data, server => client 10:32:32.951268 '* BYE curl IMAP server signing off\r\n' 10:32:32.951712 Received DATA (on stdin) 10:32:32.951919 > 26 bytes data, server => client 10:32:32.952060 'A003 OK LOGOUT completed\r\n' 10:32:32.952484 ====> Client disconnect 10:32:32.959120 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTHENTICATE + REPLY c2hhcmVkLW1haWxib3gAdXNlcgBzZWNyZXQ= A002 OK AUTHENTICATE completed Testnum 848 === End of file server.cmd === Start of file valgrind848 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind848 test 0850...[POP3 RETR message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind850 ../src/curl -q --output log/1/curl850.out --include --trace-ascii log/1/trace850 --trace-time pop3://127.0.0.1:37137/850 -u user:secret > log/1/stdout850 2> log/1/stderr850 850: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 850 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind850 ../src/curl -q --output log/1/curl850.out --include --trace-ascii log/1/trace850 --trace-time pop3://127.0.0.1:37137/850 -u user:secret > log/1/stdout850 2> log/1/stderr850 === End of file commands.log === Start of file pop3_server.log 10:32:33.377768 ====> Client connect 10:32:33.379230 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:33.387130 < "CAPA" 10:32:33.387650 > "-ERR Unrecognized command[CR][LF]" 10:32:33.394195 < "RETR verifiedserver" 10:32:33.394560 return proof we are we 10:32:33.394882 > "+OK Mail transfer starts[CR][LF]" 10:32:33.395174 > "WE ROOLZ: 99758[CR][LF]" 10:32:33.395416 > ".[CR][LF]" 10:32:33.446394 < "QUIT" 10:32:33.446952 > "+OK curl POP3 server signing off[CR][LF]" 10:32:33.453618 MAIN sockfilt said DISC 10:32:33.454084 ====> Client disconnected 10:32:33.454665 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:33.043736 ====> Client connect 10:32:33.050818 Received DATA (on stdin) 10:32:33.051158 > 178 bytes data, server => client 10:32:33.051280 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:33.051357 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:33.051435 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:33.051510 've \r\n' 10:32:33.055353 < 6 bytes data, client => server 10:32:33.055582 'CAPA\r\n' 10:32:33.056897 Received DATA (on stdin) 10:32:33.057072 > 27 bytes data, server => client 10:32:33.057163 '-ERR Unrecognized command\r\n' 10:32:33.057893 < 21 bytes data, client => server 10:32:33.058095 'RETR verifiedserver\r\n' 10:32:33.066498 Received DATA (on stdin) 10:32:33.066795 > 26 bytes data, server => client 10:32:33.066934 '+OK Mail transfer starts\r\n' 10:32:33.068337 Received DATA (on stdin) 10:32:33.068589 > 17 bytes data, server => client 10:32:33.068683 'WE ROOLZ: 99758\r\n' 10:32:33.068812 Received DATA (on stdin) 10:32:33.068900 > 3 bytes data, server => client 10:32:33.068970 '.\r\n' 10:32:33.114889 < 6 bytes data, client => server 10:32:33.115131 'QUIT\r\n' 10:32:33.116184 Received DATA (on stdin) 10:32:33.116382 > 34 bytes data, server => client 10:32:33.116491 '+OK curl POP3 server signing off\r\n' 10:32:33.117247 ====> Client disconnect 10:32:33.123338 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 850 === End of file server.cmd === Start of file valgrind850 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind850 test 0849...[IMAP plain auth with alt authorization identity (Not authorized)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind857 ../src/curl -q --output log/1/curl857.out --include --trace-ascii log/1/trace857 --trace-time pop3://127.0.0.1:37137/857 -u user:secret > log/1/stdout857 2> log/1/stderr857 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind851 ../src/curl -q --output log/7/curl851.out --include --trace-ascii log/7/trace851 --trace-time pop3://127.0.0.1:46127/851 -l -u user:secret > log/7/stdout851 2> log/7/stderr851 d849 ../src/curl -q --output log/3/curl849.out --include --trace-ascii log/3/trace849 --trace-time 'imap://127.0.0.1:43065/849/;MAILINDEX=1' -u kurt:xipj3plmq --sasl-authzid ursel > log/3/stdout849 2> log/3/stderr849 849: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 849 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind849 ../src/curl -q --output log/3/curl849.out --include --trace-ascii log/3/trace849 --trace-time 'imap://127.0.0.1:43065/849/;MAILINDEX=1' -u kurt:xipj3plmq --sasl-authzid ursel > log/3/stdout849 2> log/3/stderr849 === End of file commands.log === Start of file imap_server.log 10:32:33.351612 ====> Client connect 10:32:33.353727 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:33.360592 < "A001 CAPABILITY" 10:32:33.361529 > "A001 BAD Command[CR][LF]" 10:32:33.367520 < "A002 LIST "verifiedserver" *" 10:32:33.368116 LIST_imap got "verifiedserver" * 10:32:33.368809 > "* LIST () "/" "WE ROOLZ: 114678"[CR][LF]" 10:32:33.374160 > "A002 OK LIST Completed[CR][LF]" 10:32:33.374425 return proof we are we 10:32:33.415283 < "A003 LOGOUT" 10:32:33.415663 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:33.415890 > "A003 OK LOGOUT completed[CR][LF]" 10:32:33.417053 MAIN sockfilt said DISC 10:32:33.417398 ====> Client disconnected 10:32:33.417979 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:33.019744 ====> Client connect 10:32:33.023195 Received DATA (on stdin) 10:32:33.023542 > 178 bytes data, server => client 10:32:33.023703 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:33.023847 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:33.024009 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:33.024193 'rve\r\n' 10:32:33.025854 < 17 bytes data, client => server 10:32:33.026274 'A001 CAPABILITY\r\n' 10:32:33.031670 Received DATA (on stdin) 10:32:33.032088 > 18 bytes data, server => client 10:32:33.032416 'A001 BAD Command\r\n' 10:32:33.035380 < 30 bytes data, client => server 10:32:33.035608 'A002 LIST "verifiedserver" *\r\n' 10:32:33.038363 Received DATA (on stdin) 10:32:33.038650 > 34 bytes data, server => client 10:32:33.038890 '* LIST () "/" "WE ROOLZ: 114678"\r\n' 10:32:33.043390 Received DATA (on stdin) 10:32:33.043584 > 24 bytes data, server => client 10:32:33.043671 'A002 OK LIST Completed\r\n' 10:32:33.083849 < 13 bytes data, client => server 10:32:33.084089 'A003 LOGOUT\r\n' 10:32:33.084895 Received DATA (on stdin) 10:32:33.085047 > 36 bytes data, server => client 10:32:33.085147 '* BYE curl IMAP server signing off\r\n' 10:32:33.085457 Received DATA (on stdin) 10:32:33.085617 > 26 bytes data, server => client 10:32:33.085702 'A003 OK LOGOUT completed\r\n' 10:32:33.085973 ====> Client disconnect 10:32:33.086631 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTHENTICATE + REPLY dXJzZWwAa3VydAB4aXBqM3BsbXE= A002 NO Not authorized Testnum 849 === End of file server.cmd === Start of file valgrind849 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind849 test 0857...[POP3 RETR message with dot-prefixed line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind857 ../src/curl -q --output log/1/curl857.out --include --trace-ascii log/1/trace857 --trace-time pop3://127.0.0.1:37137/857 -u user:secret > log/1/stdout857 2> log/1/stderr857 857: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 857 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind857 ../src/curl -q --output log/1/curl857.out --include --trace-ascii log/1/trace857 --trace-time pop3://127.0.0.1:37137/857 -u user:secret > log/1/stdout857 2> log/1/stderr857 === End of file commands.log === Start of file pop3_server.log 10:32:34.251189 ====> Client connect 10:32:34.252082 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:34.253873 < "CAPA" 10:32:34.254235 > "-ERR Unrecognized command[CR][LF]" 10:32:34.255498 < "RETR verifiedserver" 10:32:34.255735 return proof we are we 10:32:34.255934 > "+OK Mail transfer starts[CR][LF]" 10:32:34.256097 > "WE ROOLZ: 99758[CR][LF]" 10:32:34.256233 > ".[CR][LF]" 10:32:34.298918 < "QUIT" 10:32:34.299257 > "+OK curl POP3 server signing off[CR][LF]" 10:32:34.300084 MAIN sockfilt said DISC 10:32:34.300318 ====> Client disconnected 10:32:34.300715 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:33.919781 ====> Client connect 10:32:33.921246 Received DATA (on stdin) 10:32:33.921418 > 178 bytes data, server => client 10:32:33.921513 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:33.921589 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:33.921653 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:33.921705 've \r\n' 10:32:33.922281 < 6 bytes data, client => server 10:32:33.922392 'CAPA\r\n' 10:32:33.923438 Received DATA (on stdin) 10:32:33.923559 > 27 bytes data, server => client 10:32:33.923637 '-ERR Unrecognized command\r\n' 10:32:33.924183 < 21 bytes data, client => server 10:32:33.924281 'RETR verifiedserver\r\n' 10:32:33.925130 Received DATA (on stdin) 10:32:33.925227 > 26 bytes data, server => client 10:32:33.925301 '+OK Mail transfer starts\r\n' 10:32:33.925532 Received DATA (on stdin) 10:32:33.925614 > 17 bytes data, server => client 10:32:33.925676 'WE ROOLZ: 99758\r\n' 10:32:33.925758 Received DATA (on stdin) 10:32:33.925822 > 3 bytes data, server => client 10:32:33.925882 '.\r\n' 10:32:33.967551 < 6 bytes data, client => server 10:32:33.967768 'QUIT\r\n' 10:32:33.968445 Received DATA (on stdin) 10:32:33.968544 > 34 bytes data, server => client 10:32:33.968622 '+OK curl POP3 server signing off\r\n' CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind852 ../src/curl -q --output log/8/curl852.out --include --trace-ascii log/8/trace852 --trace-time pop3://127.0.0.1:43011/852 -l -u user:secret > log/8/stdout852 2> log/8/stderr852 10:32:33.969094 ====> Client disconnect 10:32:33.969517 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 857 === End of file server.cmd === Start of file valgrind857 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind857 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/7/server/pop3_server.pid" --logfile "log/7/pop3_server.log" --logdir "log/7" --portfile "log/7/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 46127 (log/7/server/pop3_server.port) RUN: POP3 server is PID 117426 port 46127 * pid pop3 => 117426 117426 test 0851...[POP3 LIST one message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind851 ../src/curl -q --output log/7/curl851.out --include --trace-ascii log/7/trace851 --trace-time pop3://127.0.0.1:46127/851 -l -u user:secret > log/7/stdout851 2> log/7/stderr851 851: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 851 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind851 ../src/curl -q --output log/7/curl851.out --include --trace-ascii log/7/trace851 --trace-time pop3://127.0.0.1:46127/851 -l -u user:secret > log/7/stdout851 2> log/7/stderr851 === End of file commands.log === Start of file pop3_server.log 10:32:33.849738 POP3 server listens on port IPv4/46127 10:32:33.850967 logged pid 117426 in log/7/server/pop3_server.pid 10:32:33.851405 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:33.513560 Running IPv4 version 10:32:33.516136 Listening on port 46127 10:32:33.516941 Wrote pid 117538 to log/7/server/pop3_sockfilt.pid 10:32:33.517442 Wrote port 46127 to log/7/server/pop3_server.port 10:32:33.517699 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd # include the '.\r\n' 3-byte trailer to end the transfer properly REPLY LIST +OK 851 100\r\n. Testnum 851 === End of file server.cmd === Start of file valgrind851 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind851 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/8/server/pop3_server.pid" --logfile "log/8/pop3_server.log" --logdir "log/8" --portfile "log/8/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43011 (log/8/server/pop3_server.port) RUN: POP3 server is PID 117427 port 43011 * pid pop3 => 117427 117427 test 0852...[POP3 LIST invalid message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind852 ../src/curl -q --output log/8/curl852.out --include --trace-ascii log/8/trace852 --trace-time pop3://127.0.0.1:43011/852 -l -u user:secret > log/8/stdout852 2> log/8/stderr852 852: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 852 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind852 ../src/curl -q --output log/8/curl852.out --include --trace-ascii log/8/trace852 --trace-time pop3://127.0.0.1:43011/852 -l -u user:secret > log/8/stdout852 2> log/8/stderr852 === End of file commands.log === Start of file pop3_server.log 10:32:33.860658 POP3 server listens on port IPv4/43011 10:32:33.862008 logged pid 117427 in log/8/server/pop3_server.pid 10:32:33.862531 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:33.526727 Running IPv4 version 10:32:33.527371 Listening on port 43011 10:32:33.527881 Wrote pid 117544 to log/8/server/pop3_sockfilt.pid 10:32:33.528308 Wrote port 43011 to log/8/server/pop3_server.port 10:32:33.529072 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY LIST -ERR no such message Testnum 852 === End of file server.cmd === Start of file valgrind852 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind853 ../src/curl -q --output log/6/curl853.out --include --trace-ascii log/6/trace853 --trace-time pop3://127.0.0.1:45313/ -u user:secret > log/6/stdout853 2> log/6/stderr853 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind855 ../src/curl -q --output log/5/curl855.out --include --trace-ascii log/5/trace855 --trace-time pop3://127.0.0.1:36739/855 -u user:secret > log/5/stdout855 2> log/5/stderr855 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind854 ../src/curl -q --output log/2/curl854.out --include --trace-ascii log/2/trace854 --trace-time pop3://127.0.0.1:44883/ -u user:secret > log/2/stdout854 2> log/2/stderr854 grind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind852 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/6/server/pop3_server.pid" --logfile "log/6/pop3_server.log" --logdir "log/6" --portfile "log/6/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45313 (log/6/server/pop3_server.port) RUN: POP3 server is PID 117430 port 45313 * pid pop3 => 117430 117430 test 0853...[POP3 LIST messages from *SLOW* server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind853 ../src/curl -q --output log/6/curl853.out --include --trace-ascii log/6/trace853 --trace-time pop3://127.0.0.1:45313/ -u user:secret > log/6/stdout853 2> log/6/stderr853 853: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 853 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind853 ../src/curl -q --output log/6/curl853.out --include --trace-ascii log/6/trace853 --trace-time pop3://127.0.0.1:45313/ -u user:secret > log/6/stdout853 2> log/6/stderr853 === End of file commands.log === Start of file pop3_server.log 10:32:33.911758 POP3 server listens on port IPv4/45313 10:32:33.912631 logged pid 117430 in log/6/server/pop3_server.pid 10:32:33.912959 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:33.579070 Running IPv4 version 10:32:33.579557 Listening on port 45313 10:32:33.579917 Wrote pid 117569 to log/6/server/pop3_sockfilt.pid 10:32:33.580159 Wrote port 45313 to log/6/server/pop3_server.port 10:32:33.580288 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd SLOWDOWN Testnum 853 === End of file server.cmd === Start of file valgrind853 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind853 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/5/server/pop3_server.pid" --logfile "log/5/pop3_server.log" --logdir "log/5" --portfile "log/5/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 36739 (log/5/server/pop3_server.port) RUN: POP3 server is PID 117445 port 36739 * pid pop3 => 117445 117445 test 0855...[POP3 RETR invalid message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind855 ../src/curl -q --output log/5/curl855.out --include --trace-ascii log/5/trace855 --trace-time pop3://127.0.0.1:36739/855 -u user:secret > log/5/stdout855 2> log/5/stderr855 855: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 855 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind855 ../src/curl -q --output log/5/curl855.out --include --trace-ascii log/5/trace855 --trace-time pop3://127.0.0.1:36739/855 -u user:secret > log/5/stdout855 2> log/5/stderr855 === End of file commands.log === Start of file pop3_server.log 10:32:33.983374 POP3 server listens on port IPv4/36739 10:32:33.984312 logged pid 117445 in log/5/server/pop3_server.pid 10:32:33.984650 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:33.650329 Running IPv4 version 10:32:33.651069 Listening on port 36739 10:32:33.651465 Wrote pid 117580 to log/5/server/pop3_sockfilt.pid 10:32:33.651751 Wrote port 36739 to log/5/server/pop3_server.port 10:32:33.651910 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY RETR -ERR no such message Testnum 855 === End of file server.cmd === Start of file valgrind855 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind855 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/2/server/pop3_server.pid" --logfile "log/2/pop3_server.log" --logdir "log/2" --portfile "log/2/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44883 (log/2/server/pop3_server.port) RUN: POP3 server is PID 117443 port 44883 * pid pop3 => 117443 117443 test 0854...[POP3 LIST no messages available] ../libtCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind856 ../src/curl -q --output log/4/curl856.out --include --trace-ascii log/4/trace856 --trace-time pop3://127.0.0.1:43735/856 -u user:wrong > log/4/stdout856 2> log/4/stderr856 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind858 ../src/curl -q --output log/3/curl858.out --include --trace-ascii log/3/trace858 --trace-time pop3://127.0.0.1:43527/858 -u user:secret -X DELE -I > log/3/stdout858 2> log/3/stderr858 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind859 ../src/curl -q --output log/1/curl859.out --include --trace-ascii log/1/trace859 --trace-time pop3://127.0.0.1:37137 -u user:secret -X STAT -I > log/1/stdout859 2> log/1/stderr859 ool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind854 ../src/curl -q --output log/2/curl854.out --include --trace-ascii log/2/trace854 --trace-time pop3://127.0.0.1:44883/ -u user:secret > log/2/stdout854 2> log/2/stderr854 854: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 854 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind854 ../src/curl -q --output log/2/curl854.out --include --trace-ascii log/2/trace854 --trace-time pop3://127.0.0.1:44883/ -u user:secret > log/2/stdout854 2> log/2/stderr854 === End of file commands.log === Start of file pop3_server.log 10:32:33.979333 POP3 server listens on port IPv4/44883 10:32:33.980381 logged pid 117443 in log/2/server/pop3_server.pid 10:32:33.980778 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:33.646467 Running IPv4 version 10:32:33.647133 Listening on port 44883 10:32:33.647485 Wrote pid 117579 to log/2/server/pop3_sockfilt.pid 10:32:33.647704 Wrote port 44883 to log/2/server/pop3_server.port 10:32:33.647846 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY LIST +OK but no messages\r\n. Testnum 854 === End of file server.cmd === Start of file valgrind854 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind854 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/4/server/pop3_server.pid" --logfile "log/4/pop3_server.log" --logdir "log/4" --portfile "log/4/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43735 (log/4/server/pop3_server.port) RUN: POP3 server is PID 117584 port 43735 * pid pop3 => 117584 117584 test 0856...[POP3 invalid login] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind856 ../src/curl -q --output log/4/curl856.out --include --trace-ascii log/4/trace856 --trace-time pop3://127.0.0.1:43735/856 -u user:wrong > log/4/stdout856 2> log/4/stderr856 856: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 856 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind856 ../src/curl -q --output log/4/curl856.out --include --trace-ascii log/4/trace856 --trace-time pop3://127.0.0.1:43735/856 -u user:wrong > log/4/stdout856 2> log/4/stderr856 === End of file commands.log === Start of file pop3_server.log 10:32:34.509551 POP3 server listens on port IPv4/43735 10:32:34.510697 logged pid 117584 in log/4/server/pop3_server.pid 10:32:34.511121 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:34.176367 Running IPv4 version 10:32:34.177012 Listening on port 43735 10:32:34.177497 Wrote pid 117620 to log/4/server/pop3_sockfilt.pid 10:32:34.177863 Wrote port 43735 to log/4/server/pop3_server.port 10:32:34.178056 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY PASS -ERR Login failure Testnum 856 === End of file server.cmd === Start of file valgrind856 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind856 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/3/server/pop3_server.pid" --logfile "log/3/pop3_server.log" --logdir "log/3" --portfile "log/3/server/pop3_server.port" --srcdir "/build/curl/src/curl/tests" --proto pop3 --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 43527 (log/3/server/pop3_server.port) RUN: POP3 server is PID 117587 port 43527 * pid pop3 => 117587 117587 test 0858...[POP3 DELE message (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind858 ../src/curl -q --output log/3/curl858.out --include --trace-ascii log/3/trace858 --trace-time pop3://127.0.0.1:43527/858 -u user:secret -X DELE -I > log/3/stdout858 2> log/3/stderr858 858: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 858 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind858 ../src/curl -q --output log/3/curl858.out --include --trace-ascii log/3/trace858 --trace-time pop3://127.0.0.1:43527/858 -u user:secret -X DELE -I > log/3/stdout858 2> log/3/stderr858 === End of file commands.log === Start of file pop3_server.log 10:32:34.631495 POP3 server listens on port IPv4/43527 10:32:34.632655 loggeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind860 ../src/curl -q --output log/7/curl860.out --include --trace-ascii log/7/trace860 --trace-time pop3://127.0.0.1:46127 -u user:secret -X NOOP -I > log/7/stdout860 2> log/7/stderr860 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind861 ../src/curl -q --output log/8/curl861.out --include --trace-ascii log/8/trace861 --trace-time pop3://127.0.0.1:43011 -u user:secret -X UIDL > log/8/stdout861 2> log/8/stderr861 d pid 117587 in log/3/server/pop3_server.pid 10:32:34.633061 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:34.298177 Running IPv4 version 10:32:34.298861 Listening on port 43527 10:32:34.299421 Wrote pid 117684 to log/3/server/pop3_sockfilt.pid 10:32:34.299777 Wrote port 43527 to log/3/server/pop3_server.port 10:32:34.299948 Received PING (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 858 === End of file server.cmd === Start of file valgrind858 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind858 test 0859...[POP3 STAT (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind859 ../src/curl -q --output log/1/curl859.out --include --trace-ascii log/1/trace859 --trace-time pop3://127.0.0.1:37137 -u user:secret -X STAT -I > log/1/stdout859 2> log/1/stderr859 859: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 859 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind859 ../src/curl -q --output log/1/curl859.out --include --trace-ascii log/1/trace859 --trace-time pop3://127.0.0.1:37137 -u user:secret -X STAT -I > log/1/stdout859 2> log/1/stderr859 === End of file commands.log === Start of file pop3_server.log 10:32:35.160011 ====> Client connect 10:32:35.161265 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:35.166815 < "CAPA" 10:32:35.167205 > "-ERR Unrecognized command[CR][LF]" 10:32:35.168877 < "RETR verifiedserver" 10:32:35.169209 return proof we are we 10:32:35.169459 > "+OK Mail transfer starts[CR][LF]" 10:32:35.169806 > "WE ROOLZ: 99758[CR][LF]" 10:32:35.170009 > ".[CR][LF]" 10:32:35.220078 < "QUIT" 10:32:35.220474 > "+OK curl POP3 server signing off[CR][LF]" 10:32:35.221862 MAIN sockfilt said DISC 10:32:35.222263 ====> Client disconnected 10:32:35.222805 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:34.826834 ====> Client connect 10:32:34.832530 Received DATA (on stdin) 10:32:34.832828 > 178 bytes data, server => client 10:32:34.832934 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:34.833016 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:34.833091 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:34.833148 've \r\n' 10:32:34.834064 < 6 bytes data, client => server 10:32:34.834319 'CAPA\r\n' 10:32:34.836423 Received DATA (on stdin) 10:32:34.836598 > 27 bytes data, server => client 10:32:34.836696 '-ERR Unrecognized command\r\n' 10:32:34.837403 < 21 bytes data, client => server 10:32:34.837603 'RETR verifiedserver\r\n' 10:32:34.838720 Received DATA (on stdin) 10:32:34.838894 > 26 bytes data, server => client 10:32:34.838978 '+OK Mail transfer starts\r\n' 10:32:34.839278 Received DATA (on stdin) 10:32:34.839378 > 17 bytes data, server => client 10:32:34.839455 'WE ROOLZ: 99758\r\n' 10:32:34.839568 Received DATA (on stdin) 10:32:34.839657 > 3 bytes data, server => client 10:32:34.839735 '.\r\n' 10:32:34.888247 < 6 bytes data, client => server 10:32:34.888461 'QUIT\r\n' 10:32:34.889805 Received DATA (on stdin) 10:32:34.889967 > 34 bytes data, server => client 10:32:34.890056 '+OK curl POP3 server signing off\r\n' 10:32:34.890575 ====> Client disconnect 10:32:34.891454 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 859 === End of file server.cmd === Start of file valgrind859 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind859 test 0860...[POP3 NOOP (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind860 ../src/curl -q --output log/7/curl860.out --include --trace-ascii log/7/trace860 --trace-time pop3://127.0.0.1:46127 -u user:secret -X NOOP -I > log/7/stdout860 2> log/7/stderr860 860: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 860 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind860 ../src/curl -q --output log/7/curl860.out --include --trace-ascii log/7/trace860 --trace-time pop3://127.0.0.1:46127 -u user:secret -X NOOP -I > log/7/stdout860 2> log/7/stderr860 === End of file commands.log === Start of file pop3_server.log 10:32:35.170198 ====> Client connect 10:32:35.171355 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:35.174066 < "CAPA" 10:32:35.174765 > "-ERR Unrecognized command[CR][LF]" 10:32:35.178650 < "RETR verifiedserver" 10:32:35.179123 return proof we are we 10:32:35.179520 > "+OK Mail transfer starts[CR][LF]" 10:32:35.179778 > "WE ROOLZ: 117426[CR][LF]" 10:32:35.180021 > ".[CR][LF]" 10:32:35.225108 < "QUIT" 10:32:35.225679 > "+OK curl POP3 server signing off[CR][LF]" 10:32:35.231987 MAIN sockfilt said DISC 10:32:35.235313 ====> Client disconnected 10:32:35.235996 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:34.838813 ====> Client connect 10:32:34.840503 Received DATA (on stdin) 10:32:34.840747 > 178 bytes data, server => client 10:32:34.840869 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:34.840950 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:34.841018 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:34.841075 've \r\n' 10:32:34.841907 < 6 bytes data, client => server 10:32:34.842173 'CAPA\r\n' 10:32:34.845684 Received DATA (on stdin) 10:32:34.845934 > 27 bytes data, server => client 10:32:34.846024 '-ERR Unrecognized command\r\n' 10:32:34.846763 < 21 bytes data, client => server 10:32:34.846985 'RETR verifiedserver\r\n' 10:32:34.848696 Received DATA (on stdin) 10:32:34.848860 > 26 bytes data, server => client 10:32:34.848951 '+OK Mail transfer starts\r\n' 10:32:34.849242 Received DATA (on stdin) 10:32:34.849352 > 18 bytes data, server => client 10:32:34.849432 'WE ROOLZ: 117426\r\n' 10:32:34.849546 Received DATA (on stdin) 10:32:34.849641 > 3 bytes data, server => client 10:32:34.849716 '.\r\n' 10:32:34.893590 < 6 bytes data, client => server 10:32:34.893829 'QUIT\r\n' 10:32:34.895335 Received DATA (on stdin) 10:32:34.895546 > 34 bytes data, server => client 10:32:34.895662 '+OK curl POP3 server signing off\r\n' 10:32:34.899992 ====> Client disconnect 10:32:34.902343 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 860 === End of file server.cmd === Start of file valgrind860 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind860 test 0861...[POP3 UIDL (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind861 ../src/curl -q --output log/8/curl861.out --include --trace-ascii log/8/trace861 --trace-time pop3://127.0.0.1:43011 -u user:secret -X UIDL > log/8/stdout861 2> log/8/stderr861 861: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 861 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind861 ../src/curl -q --output log/8/curl861.out --include --trace-ascii log/8/trace861 --trace-time pop3://127.0.0.1:43011 -u user:secret -X UIDL > log/8/stdout861 2> log/8/stderr861 === End of file commands.log === Start of file pop3_server.log 10:32:35.197294 ====> Client connect 10:32:35.199030 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:35.201897 < "CAPA" 10:32:35.202481 > "-ERR Unrecognized command[CR][LF]" 10:32:35.206208 < "RETR verifiedserver" 10:32:35.206586 return proof we are we 10:32:35.206941 > "+OK Mail transfer starts[CR][LF]" 10:32:35.207222 > "WE ROOLZ: 117427[CR][LF]" 10:32:35.207440 > ".[CR][LF]" 10:32:35.258765 < "QUIT" 10:32:35.259208 > "+OK curl POP3 server signing off[CR][LF]" 10:32:35.265722 MAIN sockfilt said DISC 10:32:35.266154 ====> Client disconnected 10:32:35.266724 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:34.862455 ====> Client connect 10:32:34.868242 Received DATA (on stdin) 10:32:34.868526 > 178 bytes data, server => client 10:32:34.868691 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:34.868803 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:34.868892 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:34.868959 've \r\n' 10:32:34.869844 < 6 bytes data, client => server 10:32:34.870097 'CAPA\r\n' 10:32:34.871688 Received DATA (on stdin) 10:32:34.871869 > 27 bytes data, server => client 10:32:34.871989 '-ERR Unrecognized command\r\n' 10:32:34.874612 < 21 bytes data, client => server 10:32:34.874941 'RETR verifiedserver\r\n' 10:32:34.876143 Received DATA (on stdin) 10:32:34.876307 > 26 bytes data, server => client 10:32:34.876404 '+OK Mail transfer starts\r\n' 10:32:34.876731 Received DATA (on stdin) 10:32:34.876838 > 18 bytes data, server => client 10:32:34.876922 'WE ROOLZ: 117427\r\n' 10:32:34.877053 Received DATA (on stdin) 10:32:34.877135 > 3 bytes data, server => client 10:32:34.877205 '.\r\n' 10:32:34.925859 < 6 bytes data, client => server 10:32:34.926065 'QUIT\r\n' 10:32:34.929301 Received DATA (on stdin) 10:32:34.929434 > 34 bytes data, server => client 10:32:34.929516 '+OK curl POP3 server signing off\r\n' 10:32:34.930706 ====> Client disconnect 10:32:34.935516 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA UIDL USER Testnum 861 === End of file server.cmd === Start of file valgrind861 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind862 ../src/curl -q --output log/6/curl862.out --include --trace-ascii log/6/trace862 --trace-time pop3://127.0.0.1:45313 -u user:secret -X 'TOP 862 0' > log/6/stdout862 2> log/6/stderr862 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind863 ../src/curl -q --output log/5/curl863.out --include --trace-ascii log/5/trace863 --trace-time pop3://127.0.0.1:36739 -u user:secret -X RSET -I > log/5/stdout863 2> log/5/stderr863 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind861 test 0862...[POP3 retrieve message header (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind862 ../src/curl -q --output log/6/curl862.out --include --trace-ascii log/6/trace862 --trace-time pop3://127.0.0.1:45313 -u user:secret -X 'TOP 862 0' > log/6/stdout862 2> log/6/stderr862 862: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 862 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind862 ../src/curl -q --output log/6/curl862.out --include --trace-ascii log/6/trace862 --trace-time pop3://127.0.0.1:45313 -u user:secret -X 'TOP 862 0' > log/6/stdout862 2> log/6/stderr862 === End of file commands.log === Start of file pop3_server.log 10:32:35.257724 ====> Client connect 10:32:35.259061 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:35.262964 < "CAPA" 10:32:35.263426 > "-ERR Unrecognized command[CR][LF]" 10:32:35.270333 < "RETR verifiedserver" 10:32:35.270798 return proof we are we 10:32:35.271172 > "+OK Mail transfer starts[CR][LF]" 10:32:35.271474 > "WE ROOLZ: 117430[CR][LF]" 10:32:35.271682 > ".[CR][LF]" 10:32:35.319082 < "QUIT" 10:32:35.319579 > "+OK curl POP3 server signing off[CR][LF]" 10:32:35.325786 MAIN sockfilt said DISC 10:32:35.326369 ====> Client disconnected 10:32:35.327060 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:34.926328 ====> Client connect 10:32:34.928729 Received DATA (on stdin) 10:32:34.928948 > 178 bytes data, server => client 10:32:34.929118 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:34.929230 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:34.929326 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:34.929416 've \r\n' 10:32:34.931181 < 6 bytes data, client => server 10:32:34.931402 'CAPA\r\n' 10:32:34.936271 Received DATA (on stdin) 10:32:34.936450 > 27 bytes data, server => client 10:32:34.936540 '-ERR Unrecognized command\r\n' 10:32:34.937143 < 21 bytes data, client => server 10:32:34.937343 'RETR verifiedserver\r\n' 10:32:34.940371 Received DATA (on stdin) 10:32:34.940558 > 26 bytes data, server => client 10:32:34.940658 '+OK Mail transfer starts\r\n' 10:32:34.940974 Received DATA (on stdin) 10:32:34.941160 > 18 bytes data, server => client 10:32:34.941289 'WE ROOLZ: 117430\r\n' 10:32:34.941441 Received DATA (on stdin) 10:32:34.941559 > 3 bytes data, server => client 10:32:34.941673 '.\r\n' 10:32:34.984279 < 6 bytes data, client => server 10:32:34.984530 'QUIT\r\n' 10:32:34.989235 Received DATA (on stdin) 10:32:34.989425 > 34 bytes data, server => client 10:32:34.989518 '+OK curl POP3 server signing off\r\n' 10:32:34.991996 ====> Client disconnect 10:32:34.996363 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA TOP USER Testnum 862 === End of file server.cmd === Start of file valgrind862 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind862 test 0863...[POP3 RSET (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind863 ../src/curl -q --output log/5/curl863.out --include --trace-ascii log/5/trace863 --trace-time pop3://127.0.0.1:36739 -u user:secret -X RSET -I > log/5/stdout863 2> log/5/stderr863 863: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 863 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind863 ../src/curl -q --output log/5/curl863.out --include --trace-ascii log/5/trace863 --trace-time pop3://127.0.0.1:36739 -u user:secret -X RSET -I > log/5/stdout863 2> log/5/stderr863 === End of file commands.log === Start of file pop3_server.log 10:32:35.359949 ====> Client connect 10:32:35.361337 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:35.370947 < "CAPA" 10:32:35.371525 > "-ERR Unrecognized command[CR][LF]" 10:32:35.374432 < "RETR verifiedserver" 10:32:35.374898 return proof we are we 10:32:35.375365 > "+OK Mail transfer starts[CR][LF]" 10:32:35.375765 > "WE ROOLZ: 117445[CR][LF]" 10:32:35.376116 > ".[CR][LF]" 10:32:35.423359 < "QUIT" 10:32:35.423855 > "+OK curl POP3 server signing off[CR][LF]" 10:32:35.429301 MAIN sockfilt said DISC 10:32:35.430057 ====> Client disconnected 10:32:35.430769 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:35.026885 ====> Client connect 10:32:35.030505 Received DATA (on stdin) 10:32:35.030969 > 178 bytes data, server => client 10:32:35.031170 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:35.031277 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:35.031360 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:35.031438 've \r\n' 10:32:35.032394 < 6 bytes data, client => server 10:32:35.032659 'CAPA\r\n' 10:32:35.040737 Received DATA (on stdin) 10:32:35.040984 > 27 bytes data, server => client 10:32:35.041098 '-ERR Unrecognized command\r\n' 10:32:35.042823 < 21 bytes data, client => server 10:32:35.043087 'RETR verifiedserver\r\n' 10:32:35.046829 Received DATA (on stdin) 10:32:35.047054 > 26 bytes data, server => client 10:32:35.047145 '+OK Mail transfer starts\r\n' 10:32:35.047476 Received DATA (on stdin) 10:32:35.047639 > 18 bytes data, server => client 10:32:35.047741 'WE ROOLZ: 117445\r\n' 10:32:35.047879 Received DATA (on stdin) 10:32:35.047971 > 3 bytes data, server => client 10:32:35.048044 '.\r\n' 10:32:35.091748 < 6 bytes data, client => server 10:32:35.091949 'QUIT\r\n' 10:32:35.093093 Received DATA (on stdin) 10:32:35.09334CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind864 ../src/curl -q --output log/2/curl864.out --include --trace-ascii log/2/trace864 --trace-time pop3://127.0.0.1:44883/864 -u user:secret > log/2/stdout864 2> log/2/stderr864 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind865 ../src/curl -q --output log/4/curl865.out --include --trace-ascii log/4/trace865 --trace-time pop3://127.0.0.1:43735/865 -u user:secret > log/4/stdout865 2> log/4/stderr865 2 > 34 bytes data, server => client 10:32:35.093462 '+OK curl POP3 server signing off\r\n' 10:32:35.097263 ====> Client disconnect 10:32:35.100088 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 863 === End of file server.cmd === Start of file valgrind863 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind863 test 0864...[POP3 APOP authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind864 ../src/curl -q --output log/2/curl864.out --include --trace-ascii log/2/trace864 --trace-time pop3://127.0.0.1:44883/864 -u user:secret > log/2/stdout864 2> log/2/stderr864 864: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 864 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind864 ../src/curl -q --output log/2/curl864.out --include --trace-ascii log/2/trace864 --trace-time pop3://127.0.0.1:44883/864 -u user:secret > log/2/stdout864 2> log/2/stderr864 === End of file commands.log === Start of file pop3_server.log 10:32:35.385601 ====> Client connect 10:32:35.386922 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:35.390392 < "CAPA" 10:32:35.391034 > "-ERR Unrecognized command[CR][LF]" 10:32:35.397383 < "RETR verifiedserver" 10:32:35.397947 return proof we are we 10:32:35.398343 > "+OK Mail transfer starts[CR][LF]" 10:32:35.400453 > "WE ROOLZ: 117443[CR][LF]" 10:32:35.400889 > ".[CR][LF]" 10:32:35.446324 < "QUIT" 10:32:35.446852 > "+OK curl POP3 server signing off[CR][LF]" 10:32:35.452646 MAIN sockfilt said DISC 10:32:35.453123 ====> Client disconnected 10:32:35.453911 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:35.050787 ====> Client connect 10:32:35.056083 Received DATA (on stdin) 10:32:35.056342 > 178 bytes data, server => client 10:32:35.056487 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:35.056594 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:35.056678 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:35.056742 've \r\n' 10:32:35.058256 < 6 bytes data, client => server 10:32:35.058513 'CAPA\r\n' 10:32:35.061611 Received DATA (on stdin) 10:32:35.061878 > 27 bytes data, server => client 10:32:35.062005 '-ERR Unrecognized command\r\n' 10:32:35.065418 < 21 bytes data, client => server 10:32:35.065722 'RETR verifiedserver\r\n' 10:32:35.069311 Received DATA (on stdin) 10:32:35.069617 > 26 bytes data, server => client 10:32:35.069756 '+OK Mail transfer starts\r\n' 10:32:35.070181 Received DATA (on stdin) 10:32:35.070379 > 18 bytes data, server => client 10:32:35.070537 'WE ROOLZ: 117443\r\n' 10:32:35.070774 Received DATA (on stdin) 10:32:35.070924 > 3 bytes data, server => client 10:32:35.071035 '.\r\n' 10:32:35.112334 < 6 bytes data, client => server 10:32:35.112562 'QUIT\r\n' 10:32:35.116064 Received DATA (on stdin) 10:32:35.116269 > 34 bytes data, server => client 10:32:35.116387 '+OK curl POP3 server signing off\r\n' 10:32:35.121333 ====> Client disconnect 10:32:35.122364 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA APOP REPLY welcome +OK curl POP3 server ready to serve <1972.987654321\@curl> Testnum 864 === End of file server.cmd === Start of file valgrind864 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind864 test 0865...[POP3 plain authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind865 ../src/curl -q --output log/4/curl865.out --include --trace-ascii log/4/trace865 --trace-time pop3://127.0.0.1:43735/865 -u user:secret > log/4/stdout865 2> log/4/stderr865 865: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 865 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind865 ../src/curl -q --output log/4/curl865.out --include --trace-ascii log/4/trace865 --trace-time pop3://127.0.0.1:43735/865 -u user:secret > log/4/stdout865 2> log/4/stderr865 === End of file commands.log === Start of file pop3_server.log 10:32:36.025656 ====> Client connect 10:32:36.027089 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:36.034138 < "CAPA" 10:32:36.034735 > "-ERR Unrecognized command[CR][LF]" 10:32:36.042444 < "RETR verifiedserver" 10:32:36.042888 return proof we are we 10:32:36.043404 > "+OK Mail transfer starts[CR][LF]" 10:32:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind866 ../src/curl -q --output log/3/curl866.out --include --trace-ascii log/3/trace866 --trace-time pop3://127.0.0.1:43527/866 -u user:secret > log/3/stdout866 2> log/3/stderr866 36.043796 > "WE ROOLZ: 117584[CR][LF]" 10:32:36.044144 > ".[CR][LF]" 10:32:36.092842 < "QUIT" 10:32:36.093583 > "+OK curl POP3 server signing off[CR][LF]" 10:32:36.101647 MAIN sockfilt said DISC 10:32:36.102169 ====> Client disconnected 10:32:36.102815 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:35.692085 ====> Client connect 10:32:35.697662 Received DATA (on stdin) 10:32:35.698015 > 178 bytes data, server => client 10:32:35.698148 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:35.698237 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:35.698335 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:35.698412 've \r\n' 10:32:35.702082 < 6 bytes data, client => server 10:32:35.702323 'CAPA\r\n' 10:32:35.703934 Received DATA (on stdin) 10:32:35.704169 > 27 bytes data, server => client 10:32:35.704282 '-ERR Unrecognized command\r\n' 10:32:35.705086 < 21 bytes data, client => server 10:32:35.705329 'RETR verifiedserver\r\n' 10:32:35.713277 Received DATA (on stdin) 10:32:35.713478 > 26 bytes data, server => client 10:32:35.713585 '+OK Mail transfer starts\r\n' 10:32:35.713934 Received DATA (on stdin) 10:32:35.714063 > 18 bytes data, server => client 10:32:35.714139 'WE ROOLZ: 117584\r\n' 10:32:35.714235 Received DATA (on stdin) 10:32:35.714307 > 3 bytes data, server => client 10:32:35.714372 '.\r\n' 10:32:35.761108 < 6 bytes data, client => server 10:32:35.761392 'QUIT\r\n' 10:32:35.762722 Received DATA (on stdin) 10:32:35.762990 > 34 bytes data, server => client 10:32:35.763124 '+OK curl POP3 server signing off\r\n' 10:32:35.766783 ====> Client disconnect 10:32:35.771701 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTH + REPLY AHVzZXIAc2VjcmV0 +OK Login successful Testnum 865 === End of file server.cmd === Start of file valgrind865 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind865 test 0866...[POP3 login authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind866 ../src/curl -q --output log/3/curl866.out --include --trace-ascii log/3/trace866 --trace-time pop3://127.0.0.1:43527/866 -u user:secret > log/3/stdout866 2> log/3/stderr866 866: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 866 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind866 ../src/curl -q --output log/3/curl866.out --include --trace-ascii log/3/trace866 --trace-time pop3://127.0.0.1:43527/866 -u user:secret > log/3/stdout866 2> log/3/stderr866 === End of file commands.log === Start of file pop3_server.log 10:32:36.142117 ====> Client connect 10:32:36.143838 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:36.148285 < "CAPA" 10:32:36.148924 > "-ERR Unrecognized command[CR][LF]" 10:32:36.151675 < "RETR verifiedserver" 10:32:36.152297 return proof we are we 10:32:36.152893 > "+OK Mail transfer starts[CR][LF]" 10:32:36.153430 > "WE ROOLZ: 117587[CR][LF]" 10:32:36.154363 > ".[CR][LF]" 10:32:36.204789 < "QUIT" 10:32:36.205416 > "+OK curl POP3 server signing off[CR][LF]" 10:32:36.213376 MAIN sockfilt said DISC 10:32:36.214597 ====> Client disconnected 10:32:36.215281 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:35.810023 ====> Client connect 10:32:35.812977 Received DATA (on stdin) 10:32:35.813301 > 178 bytes data, server => client 10:32:35.813480 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:35.813593 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:35.813691 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:35.813765 've \r\n' 10:32:35.815078 < 6 bytes data, client => server 10:32:35.815235 'CAPA\r\n' 10:32:35.818131 Received DATA (on stdin) 10:32:35.818349 > 27 bytes data, server => client 10:32:35.818468 '-ERR Unrecognized command\r\n' 10:32:35.819497 < 21 bytes data, client => server 10:32:35.819834 'RETR verifiedserver\r\n' 10:32:35.823471 Received DATA (on stdin) 10:32:35.823776 > 26 bytes data, server => client 10:32:35.823893 '+OK Mail transfer starts\r\n' 10:32:35.824323 Received DATA (on stdin) 10:32:35.824526 > 18 bytes data, server => client 10:32:35.824630 'WE ROOLZ: 117587\r\n' 10:32:35.824766 Received DATA (on stdin) 10:32:35.824855 > 3 bytes data, server => client 10:32:35.824923 '.\r\n' 10:32:35.868199 < 6 bytes data, client => server 10:32:35.868445 'QUIT\r\n' 10:32:35.874971 Received DATA (on stdin) 10:32:35.875219 > 34 bytes data, server => client 10:32:35.875352 '+OK curl POP3 server signing off\r\n' 10:32:35.880642 ====> Client disconnect 10:32:35.883125 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH LOGIN REPLY AUTH + VXNlcm5hbWU6 REPLY dXNlcg== + UGFzc3dvcmQ6 REPLY c2VjcmV0 +OK Login successful Testnum 866 === End of file server.cmd === Start of file valgrind866 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind867 ../src/curl -q --output log/1/curl867.out --include --trace-ascii log/1/trace867 --trace-time pop3://127.0.0.1:37137/867 -u user:secret > log/1/stdout867 2> log/1/stderr867 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind868 ../src/curl -q --output log/7/curl868.out --include --trace-ascii log/7/trace868 --trace-time pop3://127.0.0.1:46127/868 -u testuser:testpass > log/7/stdout868 2> log/7/stderr868 valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind866 test 0867...[POP3 CRAM-MD5 authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind867 ../src/curl -q --output log/1/curl867.out --include --trace-ascii log/1/trace867 --trace-time pop3://127.0.0.1:37137/867 -u user:secret > log/1/stdout867 2> log/1/stderr867 867: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 867 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind867 ../src/curl -q --output log/1/curl867.out --include --trace-ascii log/1/trace867 --trace-time pop3://127.0.0.1:37137/867 -u user:secret > log/1/stdout867 2> log/1/stderr867 === End of file commands.log === Start of file pop3_server.log 10:32:36.132385 ====> Client connect 10:32:36.134074 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:36.137976 < "CAPA" 10:32:36.139155 > "-ERR Unrecognized command[CR][LF]" 10:32:36.144786 < "RETR verifiedserver" 10:32:36.145256 return proof we are we 10:32:36.145811 > "+OK Mail transfer starts[CR][LF]" 10:32:36.146160 > "WE ROOLZ: 99758[CR][LF]" 10:32:36.146461 > ".[CR][LF]" 10:32:36.194370 < "QUIT" 10:32:36.194871 > "+OK curl POP3 server signing off[CR][LF]" 10:32:36.209684 MAIN sockfilt said DISC 10:32:36.210228 ====> Client disconnected 10:32:36.210842 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:35.800711 ====> Client connect 10:32:35.803703 Received DATA (on stdin) 10:32:35.803937 > 178 bytes data, server => client 10:32:35.804053 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:35.804143 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:35.804238 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:35.804330 've \r\n' 10:32:35.805586 < 6 bytes data, client => server 10:32:35.805795 'CAPA\r\n' 10:32:35.807821 Received DATA (on stdin) 10:32:35.808043 > 27 bytes data, server => client 10:32:35.808699 '-ERR Unrecognized command\r\n' 10:32:35.809756 < 21 bytes data, client => server 10:32:35.810032 'RETR verifiedserver\r\n' 10:32:35.814958 Received DATA (on stdin) 10:32:35.815214 > 26 bytes data, server => client 10:32:35.815307 '+OK Mail transfer starts\r\n' 10:32:35.815652 Received DATA (on stdin) 10:32:35.815783 > 17 bytes data, server => client 10:32:35.815862 'WE ROOLZ: 99758\r\n' 10:32:35.815975 Received DATA (on stdin) 10:32:35.816072 > 3 bytes data, server => client 10:32:35.816150 '.\r\n' 10:32:35.862758 < 6 bytes data, client => server 10:32:35.862999 'QUIT\r\n' 10:32:35.868473 Received DATA (on stdin) 10:32:35.868647 > 34 bytes data, server => client 10:32:35.868757 '+OK curl POP3 server signing off\r\n' 10:32:35.873490 ====> Client disconnect 10:32:35.879422 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTH + PDE5NzIuOTg3NjU0MzIxQGN1cmw+ REPLY dXNlciA3MDMxNzI1NTk5ZmRiYjVkNDEyNjg5YWEzMjNlM2UwYg== +OK Login successful Testnum 867 === End of file server.cmd === Start of file valgrind867 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind867 test 0868...[POP3 NTLM authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind868 ../src/curl -q --output log/7/curl868.out --include --trace-ascii log/7/trace868 --trace-time pop3://127.0.0.1:46127/868 -u testuser:testpass > log/7/stdout868 2> log/7/stderr868 868: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 868 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind868 ../src/curl -q --output log/7/curl868.out --include --trace-ascii log/7/trace868 --trace-time pop3://127.0.0.1:46127/868 -u testuser:testpass > log/7/stdout868 2> log/7/stderr868 === End of file commands.log === Start of file pop3_server.log 10:32:36.257642 ====> Client connect 10:32:36.259085 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:36.270830 < "CAPA" 10:32:36.271303 > "-ERR Unrecognized command[CR][LF]" 10:32:36.272920 < "RETR verifiedserver" 10:32:36.273287 return proof we are we 10:32:36.273747 > "+OK Mail transfer starts[CR][LF]" 10:32:36.274171 > "WE ROOLZ: 117426[CR][LF]" 10:32:36.274495 > ".[CR][LF]" 10:32:36.320561 < "QUIT" 10:32:36.321263 > "+OK curl POP3 server signing off[CR][LF]" 10:32:36.325116 MAIN sockfilt said DISC 10:32:36.326452 ====> Client disconnected 10:32:36.327299 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:35.921394 ====> Client connect 10:32:35.928189 Received DATA (on stdin) 10:32:35.928493 > 178 bytes data, server => client 10:32:35.928667 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:35.928784 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:35.928877 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:35.928960 've \r\n' 10:32:35.939114 < 6 bytes data, client => server 10:32:35.939312 'CAPA\r\n' 10:32:35.940482 Received DATA (on stdin) 10:32:35.940651 > 27 bytes data, server => client 10:32:35.940743 '-ERR Unrecognized command\r\n' 10:32:35.941403 < 21 bytes data, client => server 10:32:35.941570 'RETR verifiedserver\r\n' 10:32:35.944195 Received DATA (on stdin) 10:32:35.944480 > 26 bytes data, server => client 10:32:35.944603 '+OK Mail transfer starts\r\n' 10:32:35.944944 Received DATA (on stdin) 10:32:35.945100 > 18 bytes data, server => client 10:32:35.945188 'WE ROOLZ: 117426\r\n' 10:32:35.945349 Received DATA (on stdin) 10:32:35.945475 > 3 bytes data, server => client 10:32:35.945565 '.\r\n' 10:32:35.988621 < 6 bytes data, client => server 10:32:35.988892 'CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind870 ../src/curl -q --output log/8/curl870.out --include --trace-ascii log/8/trace870 --trace-time pop3://127.0.0.1:43011/870 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/8/stdout870 2> log/8/stderr870 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind871 ../src/curl -q --output log/6/curl871.out --include --trace-ascii log/6/trace871 --trace-time pop3://127.0.0.1:45313/871 -u user:secret --sasl-ir > log/6/stdout871 2> log/6/stderr871 QUIT\r\n' 10:32:35.990435 Received DATA (on stdin) 10:32:35.990805 > 34 bytes data, server => client 10:32:35.990978 '+OK curl POP3 server signing off\r\n' 10:32:35.993850 ====> Client disconnect 10:32:35.994907 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH NTLM REPLY AUTH + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= +OK Login successful Testnum 868 === End of file server.cmd === Start of file valgrind868 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind868 test 0870...[POP3 OAuth 2.0 (XOAUTH2) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind870 ../src/curl -q --output log/8/curl870.out --include --trace-ascii log/8/trace870 --trace-time pop3://127.0.0.1:43011/870 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/8/stdout870 2> log/8/stderr870 870: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 870 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind870 ../src/curl -q --output log/8/curl870.out --include --trace-ascii log/8/trace870 --trace-time pop3://127.0.0.1:43011/870 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/8/stdout870 2> log/8/stderr870 === End of file commands.log === Start of file pop3_server.log 10:32:36.278368 ====> Client connect 10:32:36.279765 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:36.286058 < "CAPA" 10:32:36.286506 > "-ERR Unrecognized command[CR][LF]" 10:32:36.290099 < "RETR verifiedserver" 10:32:36.290464 return proof we are we 10:32:36.290864 > "+OK Mail transfer starts[CR][LF]" 10:32:36.291228 > "WE ROOLZ: 117427[CR][LF]" 10:32:36.291712 > ".[CR][LF]" 10:32:36.337661 < "QUIT" 10:32:36.344939 > "+OK curl POP3 server signing off[CR][LF]" 10:32:36.352083 MAIN sockfilt said DISC 10:32:36.352505 ====> Client disconnected 10:32:36.353097 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:35.946793 ====> Client connect 10:32:35.948943 Received DATA (on stdin) 10:32:35.949213 > 178 bytes data, server => client 10:32:35.949345 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:35.949439 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:35.949521 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:35.949601 've \r\n' 10:32:35.953978 < 6 bytes data, client => server 10:32:35.954260 'CAPA\r\n' 10:32:35.955696 Received DATA (on stdin) 10:32:35.955865 > 27 bytes data, server => client 10:32:35.955967 '-ERR Unrecognized command\r\n' 10:32:35.957788 < 21 bytes data, client => server 10:32:35.958055 'RETR verifiedserver\r\n' 10:32:35.961297 Received DATA (on stdin) 10:32:35.961504 > 26 bytes data, server => client 10:32:35.961601 '+OK Mail transfer starts\r\n' 10:32:35.962459 Received DATA (on stdin) 10:32:35.962778 > 18 bytes data, server => client 10:32:35.962886 'WE ROOLZ: 117427\r\n' 10:32:35.963003 Received DATA (on stdin) 10:32:35.963081 > 3 bytes data, server => client 10:32:35.963144 '.\r\n' 10:32:36.003848 < 6 bytes data, client => server 10:32:36.004028 'QUIT\r\n' 10:32:36.007353 Received DATA (on stdin) 10:32:36.007546 > 34 bytes data, server => client 10:32:36.014742 '+OK curl POP3 server signing off\r\n' 10:32:36.020457 ====> Client disconnect 10:32:36.021692 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTH + REPLY dXNlcj11c2VyAWF1dGg9QmVhcmVyIG1GXzkuQjVmLTQuMUpxTQEB +OK Login successful Testnum 870 === End of file server.cmd === Start of file valgrind870 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind870 test 0871...[POP3 plain authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind871 ../src/curl -q --output log/6/curl871.out --include --trace-ascii log/6/trace871 --trace-time pop3://127.0.0.1:45313/871 -u user:secret --sasl-ir > log/6/stdout871 2> log/6/stderr871 871: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 871 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind871 ../src/curl -q --output log/6/curl871.out --CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind872 ../src/curl -q --output log/5/curl872.out --include --trace-ascii log/5/trace872 --trace-time pop3://127.0.0.1:36739/872 -u user:secret --sasl-ir > log/5/stdout872 2> log/5/stderr872 include --trace-ascii log/6/trace871 --trace-time pop3://127.0.0.1:45313/871 -u user:secret --sasl-ir > log/6/stdout871 2> log/6/stderr871 === End of file commands.log === Start of file pop3_server.log 10:32:36.345606 ====> Client connect 10:32:36.346836 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:36.358431 < "CAPA" 10:32:36.358925 > "-ERR Unrecognized command[CR][LF]" 10:32:36.366849 < "RETR verifiedserver" 10:32:36.367328 return proof we are we 10:32:36.367704 > "+OK Mail transfer starts[CR][LF]" 10:32:36.367987 > "WE ROOLZ: 117430[CR][LF]" 10:32:36.368260 > ".[CR][LF]" 10:32:36.412040 < "QUIT" 10:32:36.412514 > "+OK curl POP3 server signing off[CR][LF]" 10:32:36.417270 MAIN sockfilt said DISC 10:32:36.417738 ====> Client disconnected 10:32:36.418273 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:36.014049 ====> Client connect 10:32:36.019291 Received DATA (on stdin) 10:32:36.019569 > 178 bytes data, server => client 10:32:36.019682 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:36.019777 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:36.019885 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:36.019988 've \r\n' 10:32:36.022355 < 6 bytes data, client => server 10:32:36.022517 'CAPA\r\n' 10:32:36.031081 Received DATA (on stdin) 10:32:36.031351 > 27 bytes data, server => client 10:32:36.031460 '-ERR Unrecognized command\r\n' 10:32:36.035229 < 21 bytes data, client => server 10:32:36.035513 'RETR verifiedserver\r\n' 10:32:36.036882 Received DATA (on stdin) 10:32:36.037059 > 26 bytes data, server => client 10:32:36.037156 '+OK Mail transfer starts\r\n' 10:32:36.037532 Received DATA (on stdin) 10:32:36.037684 > 18 bytes data, server => client 10:32:36.037811 'WE ROOLZ: 117430\r\n' 10:32:36.037956 Received DATA (on stdin) 10:32:36.038062 > 3 bytes data, server => client 10:32:36.038206 '.\r\n' 10:32:36.080431 < 6 bytes data, client => server 10:32:36.080688 'QUIT\r\n' 10:32:36.081691 Received DATA (on stdin) 10:32:36.081859 > 34 bytes data, server => client 10:32:36.081955 '+OK curl POP3 server signing off\r\n' 10:32:36.082673 ====> Client disconnect 10:32:36.088682 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTH +OK Login successful Testnum 871 === End of file server.cmd === Start of file valgrind871 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind871 test 0872...[POP3 login authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind872 ../src/curl -q --output log/5/curl872.out --include --trace-ascii log/5/trace872 --trace-time pop3://127.0.0.1:36739/872 -u user:secret --sasl-ir > log/5/stdout872 2> log/5/stderr872 872: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 872 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind872 ../src/curl -q --output log/5/curl872.out --include --trace-ascii log/5/trace872 --trace-time pop3://127.0.0.1:36739/872 -u user:secret --sasl-ir > log/5/stdout872 2> log/5/stderr872 === End of file commands.log === Start of file pop3_server.log 10:32:36.381744 ====> Client connect 10:32:36.382984 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:36.387084 < "CAPA" 10:32:36.387572 > "-ERR Unrecognized command[CR][LF]" 10:32:36.390969 < "RETR verifiedserver" 10:32:36.391446 return proof we are we 10:32:36.391865 > "+OK Mail transfer starts[CR][LF]" 10:32:36.392246 > "WE ROOLZ: 117445[CR][LF]" 10:32:36.392572 > ".[CR][LF]" 10:32:36.438873 < "QUIT" 10:32:36.445729 > "+OK curl POP3 server signing off[CR][LF]" 10:32:36.447320 MAIN sockfilt said DISC 10:32:36.447722 ====> Client disconnected 10:32:36.448242 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:36.046779 ====> Client connect 10:32:36.052128 Received DATA (on stdin) 10:32:36.052386 > 178 bytes data, server => client 10:32:36.052489 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:36.052566 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:36.052632 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:36.052689 've \r\n' 10:32:36.055244 < 6 bytes data, client => server 10:32:36.055474 'CAPA\r\n' 10:32:36.057068 Received DATA (on stdin) 10:32:36.057268 > 27 bytes data, server => client 10:32:36.057399 '-ERR Unrecognized command\r\n' 10:32:36.059129 < 21 bytes data, client => server 10:32:36.059404 'RETR verifiedserver\r\n' 10:32:36.062054 Received DATA (on stdin) 10:32:36.062223 > 26 bytes data, server => client 10:32:36.062325 '+OK Mail transfer starts\r\n' 10:32:36.062870 Received DATA (on stdin) 10:32:36.063074 > 18 bytes data, server => client 10:32:36.063180 'WE ROOLZ: 117445\r\n' 10:32:36.063302 Received DATA (on stdin) 10:32:36.063383 > 3 bytes data, server => client 10:32:36.063450 '.\r\n' 10:32:36.106866 < 6 bytes data, client => server 10:32:36.107111 'QUIT\r\n' 10:32:36.108599 Received DATA (on stdin) 10:32:36.108803 > 34 bytes data, server => client 10:32:36.115343 '+OK curl POP3 server signing off\r\n' 10:32:36.116100 ====> Client disconnect 10:32:36.117775 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH LOGIN REPLY AUTH + UGFzc3dvcmQ6 REPLY c2VjcmV0 +OK Login successful Testnum 872 === End of file server.cmd === Start of file valgrind872 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind873 ../src/curl -q --output log/2/curl873.out --include --trace-ascii log/2/trace873 --trace-time pop3://127.0.0.1:44883/873 -u testuser:testpass --sasl-ir > log/2/stdout873 2> log/2/stderr873 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind874 ../src/curl -q --output log/4/curl874.out --include --trace-ascii log/4/trace874 --trace-time pop3://127.0.0.1:43735/874 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/4/stdout874 2> log/4/stderr874 package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind872 test 0873...[POP3 NTLM authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind873 ../src/curl -q --output log/2/curl873.out --include --trace-ascii log/2/trace873 --trace-time pop3://127.0.0.1:44883/873 -u testuser:testpass --sasl-ir > log/2/stdout873 2> log/2/stderr873 873: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 873 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind873 ../src/curl -q --output log/2/curl873.out --include --trace-ascii log/2/trace873 --trace-time pop3://127.0.0.1:44883/873 -u testuser:testpass --sasl-ir > log/2/stdout873 2> log/2/stderr873 === End of file commands.log === Start of file pop3_server.log 10:32:36.400953 ====> Client connect 10:32:36.402352 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:36.407590 < "CAPA" 10:32:36.408017 > "-ERR Unrecognized command[CR][LF]" 10:32:36.416028 < "RETR verifiedserver" 10:32:36.416404 return proof we are we 10:32:36.416765 > "+OK Mail transfer starts[CR][LF]" 10:32:36.417158 > "WE ROOLZ: 117443[CR][LF]" 10:32:36.417389 > ".[CR][LF]" 10:32:36.478255 < "QUIT" 10:32:36.478711 > "+OK curl POP3 server signing off[CR][LF]" 10:32:36.486108 MAIN sockfilt said DISC 10:32:36.486633 ====> Client disconnected 10:32:36.487846 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:36.069520 ====> Client connect 10:32:36.071505 Received DATA (on stdin) 10:32:36.071764 > 178 bytes data, server => client 10:32:36.071869 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:36.071951 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:36.072026 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:36.072090 've \r\n' 10:32:36.074148 < 6 bytes data, client => server 10:32:36.074379 'CAPA\r\n' 10:32:36.078955 Received DATA (on stdin) 10:32:36.079241 > 27 bytes data, server => client 10:32:36.079358 '-ERR Unrecognized command\r\n' 10:32:36.082180 < 21 bytes data, client => server 10:32:36.082372 'RETR verifiedserver\r\n' 10:32:36.086152 Received DATA (on stdin) 10:32:36.086349 > 26 bytes data, server => client 10:32:36.086442 '+OK Mail transfer starts\r\n' 10:32:36.086873 Received DATA (on stdin) 10:32:36.087041 > 18 bytes data, server => client 10:32:36.087162 'WE ROOLZ: 117443\r\n' 10:32:36.087298 Received DATA (on stdin) 10:32:36.087380 > 3 bytes data, server => client 10:32:36.087454 '.\r\n' 10:32:36.140664 < 6 bytes data, client => server 10:32:36.140861 'QUIT\r\n' 10:32:36.147890 Received DATA (on stdin) 10:32:36.148081 > 34 bytes data, server => client 10:32:36.148208 '+OK curl POP3 server signing off\r\n' 10:32:36.154828 ====> Client disconnect 10:32:36.155834 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH NTLM REPLY AUTH + TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= +OK Login successful Testnum 873 === End of file server.cmd === Start of file valgrind873 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind873 test 0874...[POP3 OAuth 2.0 (XOAUTH2) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind874 ../src/curl -q --output log/4/curl874.out --include --trace-ascii log/4/trace874 --trace-time pop3://127.0.0.1:43735/874 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/4/stdout874 2> log/4/stderr874 874: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 874 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind874 ../src/curl -q --output log/4/curl874.out --include --trace-ascii log/4/trace874 --trace-time pop3://127.0.0.1:43735/874 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/4/stdout874 2> log/4/stderr874 === End of file commands.log === Start of file pop3_server.log 10:32:37.040256 ====> Client connect 10:32:37.042279 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:37.048214 < "CAPA" 10:32:37.048848 > "-ERR Unrecognized command[CR][LF]" 10:32:37.055580 < "RETR verifiedserver" 10:32:37.056174 return proof we are we 10:32:37.057641 > "+OK Mail transfer starts[CR][LF]" 10:32:37.058204 > "WE ROOLZ: 117584[CR][LF]" 10:32:37.058561 > ".[CR][LF]" 10:32:37.104380 < "QUIT" 10:32:37.105968 > "+OK curl POP3 server signing off[CR][LF]" 10:32:37.114513 MAIN sockfilt said DISC 10:32:37.115031 ====> Client disconnected 10:32:37.115722 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:36.707773 ====> Client connecCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind875 ../src/curl -q --output log/3/curl875.out --include --trace-ascii log/3/trace875 --trace-time pop3://127.0.0.1:43527/%0d%0a/875 > log/3/stdout875 2> log/3/stderr875 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind876 ../src/curl -q --output log/1/curl876.out --include --trace-ascii log/1/trace876 --trace-time pop3://127.0.0.1:37137/876 -u user:secret > log/1/stdout876 2> log/1/stderr876 t 10:32:36.711366 Received DATA (on stdin) 10:32:36.711699 > 178 bytes data, server => client 10:32:36.711865 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:36.711989 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:36.712096 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:36.712198 've \r\n' 10:32:36.715545 < 6 bytes data, client => server 10:32:36.715800 'CAPA\r\n' 10:32:36.718494 Received DATA (on stdin) 10:32:36.718827 > 27 bytes data, server => client 10:32:36.719021 '-ERR Unrecognized command\r\n' 10:32:36.723203 < 21 bytes data, client => server 10:32:36.723461 'RETR verifiedserver\r\n' 10:32:36.725999 Received DATA (on stdin) 10:32:36.726342 > 26 bytes data, server => client 10:32:36.728205 '+OK Mail transfer starts\r\n' 10:32:36.728761 Received DATA (on stdin) 10:32:36.729060 > 18 bytes data, server => client 10:32:36.729186 'WE ROOLZ: 117584\r\n' 10:32:36.729345 Received DATA (on stdin) 10:32:36.729471 > 3 bytes data, server => client 10:32:36.729594 '.\r\n' 10:32:36.772090 < 6 bytes data, client => server 10:32:36.772370 'QUIT\r\n' 10:32:36.774249 Received DATA (on stdin) 10:32:36.774582 > 34 bytes data, server => client 10:32:36.775880 '+OK curl POP3 server signing off\r\n' 10:32:36.782091 ====> Client disconnect 10:32:36.785380 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTH +OK Login successful Testnum 874 === End of file server.cmd === Start of file valgrind874 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind874 test 0875...[POP3 with URL-encoded CR LF in the URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind875 ../src/curl -q --output log/3/curl875.out --include --trace-ascii log/3/trace875 --trace-time pop3://127.0.0.1:43527/%0d%0a/875 > log/3/stdout875 2> log/3/stderr875 curl returned 1, when expecting 3 875: exit FAILED == Contents of files in the log/3/ dir after test 875 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind875 ../src/curl -q --output log/3/curl875.out --include --trace-ascii log/3/trace875 --trace-time pop3://127.0.0.1:43527/%0d%0a/875 > log/3/stdout875 2> log/3/stderr875 === End of file commands.log === Start of file pop3_server.log 10:32:37.211469 ====> Client connect 10:32:37.213023 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:37.220280 < "CAPA" 10:32:37.220940 > "-ERR Unrecognized command[CR][LF]" 10:32:37.224675 < "RETR verifiedserver" 10:32:37.225224 return proof we are we 10:32:37.225859 > "+OK Mail transfer starts[CR][LF]" 10:32:37.226387 > "WE ROOLZ: 117587[CR][LF]" 10:32:37.226897 > ".[CR][LF]" 10:32:37.278042 < "QUIT" 10:32:37.285725 > "+OK curl POP3 server signing off[CR][LF]" 10:32:37.289104 MAIN sockfilt said DISC 10:32:37.289641 ====> Client disconnected 10:32:37.291983 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:36.879749 ====> Client connect 10:32:36.882896 Received DATA (on stdin) 10:32:36.883192 > 178 bytes data, server => client 10:32:36.883350 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:36.883474 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:36.883573 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:36.883660 've \r\n' 10:32:36.886763 < 6 bytes data, client => server 10:32:36.887990 'CAPA\r\n' 10:32:36.890550 Received DATA (on stdin) 10:32:36.890853 > 27 bytes data, server => client 10:32:36.890993 '-ERR Unrecognized command\r\n' 10:32:36.892423 < 21 bytes data, client => server 10:32:36.892697 'RETR verifiedserver\r\n' 10:32:36.896591 Received DATA (on stdin) 10:32:36.896861 > 26 bytes data, server => client 10:32:36.896996 '+OK Mail transfer starts\r\n' 10:32:36.897422 Received DATA (on stdin) 10:32:36.897630 > 18 bytes data, server => client 10:32:36.897755 'WE ROOLZ: 117587\r\n' 10:32:36.897911 Received DATA (on stdin) 10:32:36.898024 > 3 bytes data, server => client 10:32:36.898127 '.\r\n' 10:32:36.946199 < 6 bytes data, client => server 10:32:36.946399 'QUIT\r\n' 10:32:36.947639 Received DATA (on stdin) 10:32:36.947833 > 34 bytes data, server => client 10:32:36.955385 '+OK curl POP3 server signing off\r\n' 10:32:36.957808 ====> Client disconnect 10:32:36.959657 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 875 === End of file server.cmd === Start of file valgrind875 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind875 test 0876...[POP3 CRAM-MD5 graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind876 ../src/curl -q --output log/1/curl876.out --include --trace-ascii log/1/trace876 --trace-time pop3://127.0.0.1:37137/876 -u user:secret > log/1/stdout876 2> log/1/stderr876 876: protocol FAILED! There was no contenCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind877 ../src/curl -q --output log/7/curl877.out --include --trace-ascii log/7/trace877 --trace-time pop3://127.0.0.1:46127/877 -u testuser:testpass > log/7/stdout877 2> log/7/stderr877 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind879 ../src/curl -q --output log/8/curl879.out --include --trace-ascii log/8/trace879 --trace-time pop3://127.0.0.1:43011/879 -u user:secret > log/8/stdout879 2> log/8/stderr879 t at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 876 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind876 ../src/curl -q --output log/1/curl876.out --include --trace-ascii log/1/trace876 --trace-time pop3://127.0.0.1:37137/876 -u user:secret > log/1/stdout876 2> log/1/stderr876 === End of file commands.log === Start of file pop3_server.log 10:32:37.258824 ====> Client connect 10:32:37.260116 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:37.262522 < "CAPA" 10:32:37.263049 > "-ERR Unrecognized command[CR][LF]" 10:32:37.265303 < "RETR verifiedserver" 10:32:37.265889 return proof we are we 10:32:37.266357 > "+OK Mail transfer starts[CR][LF]" 10:32:37.266799 > "WE ROOLZ: 99758[CR][LF]" 10:32:37.267159 > ".[CR][LF]" 10:32:37.322650 < "QUIT" 10:32:37.323116 > "+OK curl POP3 server signing off[CR][LF]" 10:32:37.324511 MAIN sockfilt said DISC 10:32:37.325627 ====> Client disconnected 10:32:37.326294 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:36.927300 ====> Client connect 10:32:36.929219 Received DATA (on stdin) 10:32:36.929508 > 178 bytes data, server => client 10:32:36.929629 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:36.929718 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:36.929795 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:36.929862 've \r\n' 10:32:36.930708 < 6 bytes data, client => server 10:32:36.930880 'CAPA\r\n' 10:32:36.932520 Received DATA (on stdin) 10:32:36.932805 > 27 bytes data, server => client 10:32:36.932927 '-ERR Unrecognized command\r\n' 10:32:36.933687 < 21 bytes data, client => server 10:32:36.933937 'RETR verifiedserver\r\n' 10:32:36.936229 Received DATA (on stdin) 10:32:36.936435 > 26 bytes data, server => client 10:32:36.936532 '+OK Mail transfer starts\r\n' 10:32:36.936836 Received DATA (on stdin) 10:32:36.936961 > 17 bytes data, server => client 10:32:36.937038 'WE ROOLZ: 99758\r\n' 10:32:36.937138 Received DATA (on stdin) 10:32:36.937212 > 3 bytes data, server => client 10:32:36.937277 '.\r\n' 10:32:36.991113 < 6 bytes data, client => server 10:32:36.991235 'QUIT\r\n' 10:32:36.992225 Received DATA (on stdin) 10:32:36.992336 > 34 bytes data, server => client 10:32:36.992416 '+OK curl POP3 server signing off\r\n' 10:32:36.993074 ====> Client disconnect 10:32:36.994126 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTH + Rubbish REPLY * -ERR AUTH exchange cancelled by client Testnum 876 === End of file server.cmd === Start of file valgrind876 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind876 test 0877...[POP3 NTLM graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind877 ../src/curl -q --output log/7/curl877.out --include --trace-ascii log/7/trace877 --trace-time pop3://127.0.0.1:46127/877 -u testuser:testpass > log/7/stdout877 2> log/7/stderr877 877: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 877 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind877 ../src/curl -q --output log/7/curl877.out --include --trace-ascii log/7/trace877 --trace-time pop3://127.0.0.1:46127/877 -u testuser:testpass > log/7/stdout877 2> log/7/stderr877 === End of file commands.log === Start of file pop3_server.log 10:32:37.309452 ====> Client connect 10:32:37.310704 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:37.314320 < "CAPA" 10:32:37.314837 > "-ERR Unrecognized command[CR][LF]" 10:32:37.318857 < "RETR verifiedserver" 10:32:37.319204 return proof we are we 10:32:37.319675 > "+OK Mail transfer starts[CR][LF]" 10:32:37.319962 > "WE ROOLZ: 117426[CR][LF]" 10:32:37.320257 > ".[CR][LF]" 10:32:37.372142 < "QUIT" 10:32:37.372585 > "+OK curl POP3 server signing off[CR][LF]" 10:32:37.374327 MAIN sockfilt said DISC 10:32:37.375231 ====> Client disconnected 10:32:37.375932 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:36.977875 ====> Client connect 10:32:36.980323 Received DATA (on stdin) 10:32:36.980551 > 178 bytes data, server => client 10:32:36.980650 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:36.980746 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:36.980830 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:36.980918 've \r\n' 10:32:36.982117 < 6 bytes data, client => server 10:32:36.982391 'CAPA\r\n' 10:32:36.984773 Received DATA (on stdin) 10:32:36.985001 > 27 bytes data, server => client 10:32:36.985199 '-ERR Unrecognized command\r\n' 10:32:36.986396 < 21 bytes data, client => server 10:32:36.986760 'RETR verifiedserver\r\n' 10:32:36.990787 Received DATA (on stdin) 10:32:36.990994 > 26 bytes data, server => client 10:32:36.991078 '+OK Mail transfer starts\r\n' 10:32:36.991363 Received DATA (on stdin) 10:32:36.991478 > 18 bytes data, server => client 10:32:36.991565 'WE ROOLZ: 117426\r\n' 10:32:36.991675 Received DATA (on stdin) 10:32:36.991759 > 3 bytes data, server => client 10:32:36.991827 '.\r\n' 10:32:37.040141 < 6 bytes data, client => server 10:32:37.040313 'QUIT\r\n' 10:32:37.042017 Received DATA (on stdin) 10:32:37.042124 > 34 bytes data, server => client 10:32:37.042222 '+OK curl POP3 server signing off\r\n' 10:32:37.043178 ====> Client disconnect 10:32:37.043751 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH NTLM REPLY AUTH + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish REPLY * -ERR AUTH exchange cancelled by client Testnum 877 === End of file server.cmd === Start of file valgrind877 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combinatiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind883 ../src/curl -q --output log/5/curl883.out --include --trace-ascii log/5/trace883 --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:36739/883' > log/5/stdout883 2> log/5/stderr883 on valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind877 test 0879...[POP3 CRAM-MD5 authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind879 ../src/curl -q --output log/8/curl879.out --include --trace-ascii log/8/trace879 --trace-time pop3://127.0.0.1:43011/879 -u user:secret > log/8/stdout879 2> log/8/stderr879 879: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 879 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind879 ../src/curl -q --output log/8/curl879.out --include --trace-ascii log/8/trace879 --trace-time pop3://127.0.0.1:43011/879 -u user:secret > log/8/stdout879 2> log/8/stderr879 === End of file commands.log === Start of file pop3_server.log 10:32:37.310659 ====> Client connect 10:32:37.311913 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:37.315394 < "CAPA" 10:32:37.316025 > "-ERR Unrecognized command[CR][LF]" 10:32:37.319180 < "RETR verifiedserver" 10:32:37.319632 return proof we are we 10:32:37.320022 > "+OK Mail transfer starts[CR][LF]" 10:32:37.320314 > "WE ROOLZ: 117427[CR][LF]" 10:32:37.320542 > ".[CR][LF]" 10:32:37.372142 < "QUIT" 10:32:37.374235 > "+OK curl POP3 server signing off[CR][LF]" 10:32:37.375873 MAIN sockfilt said DISC 10:32:37.376877 ====> Client disconnected 10:32:37.377781 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:36.977997 ====> Client connect 10:32:36.981050 Received DATA (on stdin) 10:32:36.981222 > 178 bytes data, server => client 10:32:36.981330 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:36.981422 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:36.981513 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:36.981596 've \r\n' 10:32:36.982824 < 6 bytes data, client => server 10:32:36.983028 'CAPA\r\n' 10:32:36.985581 Received DATA (on stdin) 10:32:36.985771 > 27 bytes data, server => client 10:32:36.985934 '-ERR Unrecognized command\r\n' 10:32:36.987045 < 21 bytes data, client => server 10:32:36.987219 'RETR verifiedserver\r\n' 10:32:36.992017 Received DATA (on stdin) 10:32:36.992168 > 26 bytes data, server => client 10:32:36.992258 '+OK Mail transfer starts\r\n' 10:32:36.992530 Received DATA (on stdin) 10:32:36.992634 > 18 bytes data, server => client 10:32:36.992705 'WE ROOLZ: 117427\r\n' 10:32:36.992807 Received DATA (on stdin) 10:32:36.992881 > 3 bytes data, server => client 10:32:36.992944 '.\r\n' 10:32:37.039674 < 6 bytes data, client => server 10:32:37.039938 'QUIT\r\n' 10:32:37.043787 Received DATA (on stdin) 10:32:37.043915 > 34 bytes data, server => client 10:32:37.044023 '+OK curl POP3 server signing off\r\n' 10:32:37.044675 ====> Client disconnect 10:32:37.045376 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 PLAIN REPLY "AUTH CRAM-MD5" + Rubbish REPLY * -ERR AUTH exchange cancelled by client REPLY "AUTH PLAIN" + REPLY AHVzZXIAc2VjcmV0 +OK Login successful Testnum 879 === End of file server.cmd === Start of file valgrind879 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind879 test 0883...[POP3 external authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind883 ../src/curl -q --output log/5/curl883.out --include --trace-ascii log/5/trace883 --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:36739/883' > log/5/stdout883 2> log/5/stderr883 883: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 883 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind883 ../src/curl -q --output log/5/curl883.out --include --trace-ascii log/5/trace883 --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:36739/883' > log/5/stdout883 2> log/5/stderr883 === End of file commands.log === Start of file pop3_server.log 10:32:37.410938 ====> Client connect 10:32:37.412154 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:37.415096 < "CAPA" 10:32:37.415697 > "-ERR Unrecognized command[CR][LF]" 10:32:37.418103 < "RETR verifiedserver" 10:32:37.418464 return proof we are we 10:32:37.418749 > "+OK Mail transfer starts[CR][LF]" 10:32:37.419018 > "WE ROOLZ: 117445[CR][LF]" 10:32:37.419232 > ".[CR][LF]" 10:32:37.474184 < "QUIT" 10:32:37.474628 > "+OK curl POP3 server signing off[CR][LF]" 10:32:37.479890 MAIN sockfilt said DISC 10:32:37.480326 ====> Client disconnected 10:32:37.480875 Awaiting input === End of file pop3_server.log =CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind884 ../src/curl -q --output log/2/curl884.out --include --trace-ascii log/2/trace884 --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:44883/884' > log/2/stdout884 2> log/2/stderr884 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind880 ../src/curl -q --output log/6/curl880.out --include --trace-ascii log/6/trace880 --trace-time pop3://127.0.0.1:45313/880 -u user:secret > log/6/stdout880 2> log/6/stderr880 == Start of file pop3_sockfilt.log 10:32:37.079433 ====> Client connect 10:32:37.081726 Received DATA (on stdin) 10:32:37.081898 > 178 bytes data, server => client 10:32:37.081987 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:37.082058 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:37.082130 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:37.082186 've \r\n' 10:32:37.083223 < 6 bytes data, client => server 10:32:37.083405 'CAPA\r\n' 10:32:37.084841 Received DATA (on stdin) 10:32:37.085058 > 27 bytes data, server => client 10:32:37.085160 '-ERR Unrecognized command\r\n' 10:32:37.086394 < 21 bytes data, client => server 10:32:37.086707 'RETR verifiedserver\r\n' 10:32:37.087880 Received DATA (on stdin) 10:32:37.088064 > 26 bytes data, server => client 10:32:37.088177 '+OK Mail transfer starts\r\n' 10:32:37.088499 Received DATA (on stdin) 10:32:37.088610 > 18 bytes data, server => client 10:32:37.088686 'WE ROOLZ: 117445\r\n' 10:32:37.088814 Received DATA (on stdin) 10:32:37.088914 > 3 bytes data, server => client 10:32:37.089008 '.\r\n' 10:32:37.138897 < 6 bytes data, client => server 10:32:37.139156 'QUIT\r\n' 10:32:37.144352 Received DATA (on stdin) 10:32:37.144530 > 34 bytes data, server => client 10:32:37.144657 '+OK curl POP3 server signing off\r\n' 10:32:37.145276 ====> Client disconnect 10:32:37.149493 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH + REPLY dXNlcg== +OK Login successful Testnum 883 === End of file server.cmd === Start of file valgrind883 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind883 test 0884...[POP3 external authentication without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind884 ../src/curl -q --output log/2/curl884.out --include --trace-ascii log/2/trace884 --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:44883/884' > log/2/stdout884 2> log/2/stderr884 884: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 884 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind884 ../src/curl -q --output log/2/curl884.out --include --trace-ascii log/2/trace884 --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:44883/884' > log/2/stdout884 2> log/2/stderr884 === End of file commands.log === Start of file pop3_server.log 10:32:37.470854 ====> Client connect 10:32:37.472213 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:37.476058 < "CAPA" 10:32:37.476570 > "-ERR Unrecognized command[CR][LF]" 10:32:37.486677 < "RETR verifiedserver" 10:32:37.487094 return proof we are we 10:32:37.487516 > "+OK Mail transfer starts[CR][LF]" 10:32:37.487860 > "WE ROOLZ: 117443[CR][LF]" 10:32:37.488123 > ".[CR][LF]" 10:32:37.540430 < "QUIT" 10:32:37.541028 > "+OK curl POP3 server signing off[CR][LF]" 10:32:37.549718 MAIN sockfilt said DISC 10:32:37.550242 ====> Client disconnected 10:32:37.550891 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:37.139371 ====> Client connect 10:32:37.142716 Received DATA (on stdin) 10:32:37.142993 > 178 bytes data, server => client 10:32:37.143112 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:37.143192 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:37.143265 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:37.143329 've \r\n' 10:32:37.144130 < 6 bytes data, client => server 10:32:37.144337 'CAPA\r\n' 10:32:37.150158 Received DATA (on stdin) 10:32:37.150319 > 27 bytes data, server => client 10:32:37.150444 '-ERR Unrecognized command\r\n' 10:32:37.151359 < 21 bytes data, client => server 10:32:37.151614 'RETR verifiedserver\r\n' 10:32:37.158707 Received DATA (on stdin) 10:32:37.158908 > 26 bytes data, server => client 10:32:37.159009 '+OK Mail transfer starts\r\n' 10:32:37.159364 Received DATA (on stdin) 10:32:37.159578 > 18 bytes data, server => client 10:32:37.159719 'WE ROOLZ: 117443\r\n' 10:32:37.159869 Received DATA (on stdin) 10:32:37.159956 > 3 bytes data, server => client 10:32:37.160033 '.\r\n' 10:32:37.207621 < 6 bytes data, client => server 10:32:37.207843 'QUIT\r\n' 10:32:37.210206 Received DATA (on stdin) 10:32:37.210435 > 34 bytes data, server => client 10:32:37.210549 '+OK curl POP3 server signing off\r\n' 10:32:37.216363 ====> Client disconnect 10:32:37.219460 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH + REPLY = +OK Login successful Testnum 884 === End of file server.cmd === Start of file valgrind884 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind884 test 0880...[POP3 NTLM authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind885 ../src/curl -q --output log/4/curl885.out --include --trace-ascii log/4/trace885 --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:43735/885' --sasl-ir > log/4/stdout885 2> log/4/stderr885 upp --num-callers=16 --log-file=log/6/valgrind880 ../src/curl -q --output log/6/curl880.out --include --trace-ascii log/6/trace880 --trace-time pop3://127.0.0.1:45313/880 -u user:secret > log/6/stdout880 2> log/6/stderr880 880: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 880 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind880 ../src/curl -q --output log/6/curl880.out --include --trace-ascii log/6/trace880 --trace-time pop3://127.0.0.1:45313/880 -u user:secret > log/6/stdout880 2> log/6/stderr880 === End of file commands.log === Start of file pop3_server.log 10:32:37.361047 ====> Client connect 10:32:37.362610 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:37.365997 < "CAPA" 10:32:37.366682 > "-ERR Unrecognized command[CR][LF]" 10:32:37.371778 < "RETR verifiedserver" 10:32:37.372154 return proof we are we 10:32:37.372550 > "+OK Mail transfer starts[CR][LF]" 10:32:37.372867 > "WE ROOLZ: 117430[CR][LF]" 10:32:37.373110 > ".[CR][LF]" 10:32:37.422271 < "QUIT" 10:32:37.422759 > "+OK curl POP3 server signing off[CR][LF]" 10:32:37.426210 MAIN sockfilt said DISC 10:32:37.427372 ====> Client disconnected 10:32:37.428155 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:37.029562 ====> Client connect 10:32:37.032393 Received DATA (on stdin) 10:32:37.032680 > 178 bytes data, server => client 10:32:37.032874 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:37.032975 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:37.033055 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:37.033131 've \r\n' 10:32:37.033982 < 6 bytes data, client => server 10:32:37.034172 'CAPA\r\n' 10:32:37.038055 Received DATA (on stdin) 10:32:37.038293 > 27 bytes data, server => client 10:32:37.038418 '-ERR Unrecognized command\r\n' 10:32:37.040141 < 21 bytes data, client => server 10:32:37.040315 'RETR verifiedserver\r\n' 10:32:37.041722 Received DATA (on stdin) 10:32:37.041917 > 26 bytes data, server => client 10:32:37.042032 '+OK Mail transfer starts\r\n' 10:32:37.042380 Received DATA (on stdin) 10:32:37.042523 > 18 bytes data, server => client 10:32:37.042708 'WE ROOLZ: 117430\r\n' 10:32:37.042871 Received DATA (on stdin) 10:32:37.042987 > 3 bytes data, server => client 10:32:37.043062 '.\r\n' 10:32:37.090024 < 6 bytes data, client => server 10:32:37.090300 'QUIT\r\n' 10:32:37.093766 Received DATA (on stdin) 10:32:37.094059 > 34 bytes data, server => client 10:32:37.094187 '+OK curl POP3 server signing off\r\n' 10:32:37.094902 ====> Client disconnect 10:32:37.095815 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH NTLM PLAIN REPLY "AUTH NTLM" + REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= + Rubbish REPLY * -ERR AUTH exchange cancelled by client REPLY "AUTH PLAIN" + REPLY AHVzZXIAc2VjcmV0 +OK Login successful Testnum 880 === End of file server.cmd === Start of file valgrind880 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind880 test 0885...[POP3 external authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind885 ../src/curl -q --output log/4/curl885.out --include --trace-ascii log/4/trace885 --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:43735/885' --sasl-ir > log/4/stdout885 2> log/4/stderr885 885: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 885 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind885 ../src/curl -q --output log/4/curl885.out --include --trace-ascii log/4/trace885 --trace-time 'pop3://user;AUTH=EXTERNAL@127.0.0.1:43735/885' --sasl-ir > log/4/stdout885 2> log/4/stderr885 === End of file commands.log === Start of file pop3_server.log 10:32:38.097427 ====> Client connect 10:32:38.098732 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:38.102128 < "CAPA" 10:32:38.103149 > "-ERR Unrecognized command[CR][LF]" 10:32:38.113066 < "RETR verifiedserver" 10:32:38.113700 return proof we are we 10:32:38.114224 > "+OK Mail transfer starts[CR][LF]" 10:32:38.114537 > "WE ROOLZ: 117584[CR][LF]" 10:32:38.114738 > ".[CR][LF]" 10:32:38.160486 < "QUIT" 10:32:38.161240 > "+OK curl POP3 server signing off[CR][LF]" 10:32:38.169644 MAIN sockfilt said DISC 10:32:38.170292 ====> Client disconnected 10:32:38.171419 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:37.765864 ====> Client connect 10:32:37.768299 Received DATA (on stdin) 10:32:37.768533 > 178 bytes data, server => client 10:32:37.768650 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:37.768742 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:37.768823 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:37.768886 've \r\n' 10:32:37.769837 < 6 bytes data, client => server 10:32:37.770045 'CAPA\r\n' 10:32:37.771777 Received DATA (on stdin) 10:32:37.771982 > 27 bytes data, server => client 10:32:37.773058 '-ERR Unrecognized command\r\n' 10:32:37.778771 < 21 bytes data, client => server 10:32:37.779025 'RETR verifiedserver\r\n' 10:32:37.783477 Received DATA (on stdin) 10:32:37.783684 > 26 bytes data, server => client 10:32:37.783789 '+OK Mail transfer starts\r\n' 10:32:37.784154 Received DATA (on stdin) 10:32:37.784381 > 18 bytes data, server => client 10:32:37.784519 'WE ROOLZ: 117584\r\n' 10:32:37.784653 Received DATA (on stdin) 10:32:37.784754 > 3 bytes data, server => client 10:32:37.784833 '.\r\n' 10:32:37.828048 < 6 bytes data, client => server 10:32:37.828474 'QUIT\r\n' 10:32:37.830386 Received DATA (on stdin) 10:32:37.831148 > 34 bytes data, server => client 10:32:37.831378 '+OK curl POP3 server signing off\r\n' 10:32:37.834635 ====> Client discCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind886 ../src/curl -q --output log/3/curl886.out --include --trace-ascii log/3/trace886 --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:43527/886' --sasl-ir > log/3/stdout886 2> log/3/stderr886 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind887 ../src/curl -q --output log/1/curl887.out --include --trace-ascii log/1/trace887 --trace-time pop3://127.0.0.1:37137/887 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/1/stdout887 2> log/1/stderr887 onnect 10:32:37.841653 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH +OK Login successful Testnum 885 === End of file server.cmd === Start of file valgrind885 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind885 test 0886...[POP3 external authentication with initial response without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind886 ../src/curl -q --output log/3/curl886.out --include --trace-ascii log/3/trace886 --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:43527/886' --sasl-ir > log/3/stdout886 2> log/3/stderr886 886: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 886 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind886 ../src/curl -q --output log/3/curl886.out --include --trace-ascii log/3/trace886 --trace-time 'pop3://;AUTH=EXTERNAL@127.0.0.1:43527/886' --sasl-ir > log/3/stdout886 2> log/3/stderr886 === End of file commands.log === Start of file pop3_server.log 10:32:38.226228 ====> Client connect 10:32:38.228468 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:38.232484 < "CAPA" 10:32:38.233946 > "-ERR Unrecognized command[CR][LF]" 10:32:38.235870 < "RETR verifiedserver" 10:32:38.236318 return proof we are we 10:32:38.236785 > "+OK Mail transfer starts[CR][LF]" 10:32:38.237272 > "WE ROOLZ: 117587[CR][LF]" 10:32:38.239007 > ".[CR][LF]" 10:32:38.286675 < "QUIT" 10:32:38.287209 > "+OK curl POP3 server signing off[CR][LF]" 10:32:38.292374 MAIN sockfilt said DISC 10:32:38.292760 ====> Client disconnected 10:32:38.293334 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:37.894751 ====> Client connect 10:32:37.896404 Received DATA (on stdin) 10:32:37.896626 > 178 bytes data, server => client 10:32:37.896791 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:37.896883 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:37.896961 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:37.897021 've \r\n' 10:32:37.897782 < 6 bytes data, client => server 10:32:37.897973 'CAPA\r\n' 10:32:37.902091 Received DATA (on stdin) 10:32:37.902289 > 27 bytes data, server => client 10:32:37.902487 '-ERR Unrecognized command\r\n' 10:32:37.904004 < 21 bytes data, client => server 10:32:37.904276 'RETR verifiedserver\r\n' 10:32:37.907126 Received DATA (on stdin) 10:32:37.907360 > 26 bytes data, server => client 10:32:37.907468 '+OK Mail transfer starts\r\n' 10:32:37.907820 Received DATA (on stdin) 10:32:37.907998 > 18 bytes data, server => client 10:32:37.908109 'WE ROOLZ: 117587\r\n' 10:32:37.908271 Received DATA (on stdin) 10:32:37.908400 > 3 bytes data, server => client 10:32:37.908506 '.\r\n' 10:32:37.954736 < 6 bytes data, client => server 10:32:37.954917 'QUIT\r\n' 10:32:37.956345 Received DATA (on stdin) 10:32:37.956501 > 34 bytes data, server => client 10:32:37.956589 '+OK curl POP3 server signing off\r\n' 10:32:37.959165 ====> Client disconnect 10:32:37.962054 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH +OK Login successful Testnum 886 === End of file server.cmd === Start of file valgrind886 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind886 test 0887...[POP3 OAuth 2.0 (OAUTHBEARER) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind887 ../src/curl -q --output log/1/curl887.out --include --trace-ascii log/1/trace887 --trace-time pop3://127.0.0.1:37137/887 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/1/stdout887 2> log/1/stderr887 887: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 887 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind887 ../src/curl -q --output log/1/curl887.out --include --trace-ascii log/1/trace887 --trace-time pop3://127.0.0.1:37137/887 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/1/stdout887 2> log/1/stderr887 === End of file commands.log === Start of file pop3_server.log 10:32:38.284589 ====> Client connect 10:32:38.286135 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:38.292144 < "CAPA" 10:32:38.292594 > "-ERR Unrecognized command[CR][LF]" 10:32:38.295428 < "RETR verifiedserver" 10:32:38.295787 return proof we are we 10:32:38.296135 > "+OK Mail transfer CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind888 ../src/curl -q --output log/8/curl888.out --include --trace-ascii log/8/trace888 --trace-time pop3://127.0.0.1:43011/888 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/8/stdout888 2> log/8/stderr888 starts[CR][LF]" 10:32:38.296435 > "WE ROOLZ: 99758[CR][LF]" 10:32:38.296643 > ".[CR][LF]" 10:32:38.339933 < "QUIT" 10:32:38.340389 > "+OK curl POP3 server signing off[CR][LF]" 10:32:38.341598 MAIN sockfilt said DISC 10:32:38.342022 ====> Client disconnected 10:32:38.342569 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:37.953072 ====> Client connect 10:32:37.954703 Received DATA (on stdin) 10:32:37.954924 > 178 bytes data, server => client 10:32:37.955765 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:37.955928 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:37.956019 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:37.956084 've \r\n' 10:32:37.959454 < 6 bytes data, client => server 10:32:37.959673 'CAPA\r\n' 10:32:37.962767 Received DATA (on stdin) 10:32:37.962960 > 27 bytes data, server => client 10:32:37.963077 '-ERR Unrecognized command\r\n' 10:32:37.963829 < 21 bytes data, client => server 10:32:37.964059 'RETR verifiedserver\r\n' 10:32:37.965274 Received DATA (on stdin) 10:32:37.965459 > 26 bytes data, server => client 10:32:37.965570 '+OK Mail transfer starts\r\n' 10:32:37.965890 Received DATA (on stdin) 10:32:37.965995 > 17 bytes data, server => client 10:32:37.966077 'WE ROOLZ: 99758\r\n' 10:32:37.966192 Received DATA (on stdin) 10:32:37.966275 > 3 bytes data, server => client 10:32:37.966352 '.\r\n' 10:32:38.008019 < 6 bytes data, client => server 10:32:38.008264 'QUIT\r\n' 10:32:38.009538 Received DATA (on stdin) 10:32:38.009701 > 34 bytes data, server => client 10:32:38.009789 '+OK curl POP3 server signing off\r\n' 10:32:38.010374 ====> Client disconnect 10:32:38.011167 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH + REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9MzcxMzcBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= +OK Login successful Testnum 887 === End of file server.cmd === Start of file valgrind887 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind887 test 0888...[POP3 OAuth 2.0 (OAUTHBEARER) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind888 ../src/curl -q --output log/8/curl888.out --include --trace-ascii log/8/trace888 --trace-time pop3://127.0.0.1:43011/888 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/8/stdout888 2> log/8/stderr888 888: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 888 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind888 ../src/curl -q --output log/8/curl888.out --include --trace-ascii log/8/trace888 --trace-time pop3://127.0.0.1:43011/888 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/8/stdout888 2> log/8/stderr888 === End of file commands.log === Start of file pop3_server.log 10:32:38.319372 ====> Client connect 10:32:38.320508 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:38.323057 < "CAPA" 10:32:38.323518 > "-ERR Unrecognized command[CR][LF]" 10:32:38.325956 < "RETR verifiedserver" 10:32:38.326375 return proof we are we 10:32:38.326775 > "+OK Mail transfer starts[CR][LF]" 10:32:38.327083 > "WE ROOLZ: 117427[CR][LF]" 10:32:38.327463 > ".[CR][LF]" 10:32:38.379144 < "QUIT" 10:32:38.379740 > "+OK curl POP3 server signing off[CR][LF]" 10:32:38.382056 MAIN sockfilt said DISC 10:32:38.382606 ====> Client disconnected 10:32:38.383260 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:37.987767 ====> Client connect 10:32:37.989798 Received DATA (on stdin) 10:32:37.990008 > 178 bytes data, server => client 10:32:37.990115 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:37.990193 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:37.990265 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:37.990327 've \r\n' 10:32:37.991188 < 6 bytes data, client => server 10:32:37.991360 'CAPA\r\n' 10:32:37.992924 Received DATA (on stdin) 10:32:37.993127 > 27 bytes data, server => client 10:32:37.993229 '-ERR Unrecognized command\r\n' 10:32:37.993979 < 21 bytes data, client => server 10:32:37.994211 'RETR verifiedserver\r\n' 10:32:37.995918 Received DATA (on stdin) 10:32:37.996118 > 26 bytes data, server => client 10:32:37.996216 '+OK Mail transfer starts\r\n' 10:32:37.996526 Received DATA (on stdin) 10:32:37.996682 > 18 bytes data, server => client 10:32:37.996766 'WE ROOLZ: 117427\r\n' 10:32:37.996883 Received DATA (on stdin) 10:32:37.996963 > 3 bytes data, server => client 10:32:37.997036 '.\r\n' 10:32:38.043819 < 6 bytes data, client => server 10:32:38.044072 'QUIT\r\n' 10:32:38.049165 Received DATA (on stdin) 10:32:38.049406 > 34 bytes data, server => client 10:32:38.049589 '+OK curl POP3 server signing off\r\n' 10:32:38.050405 ====> Client disconnect 10:32:38.052734 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH +OK Login successful Testnum 888 === End of file server.cmd === Start of file valgrind888 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind891 ../src/curl -q --output log/6/curl891.out --include --trace-ascii log/6/trace891 --trace-time pop3://127.0.0.1:45313/891 -u user:secret > log/6/stdout891 2> log/6/stderr891 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind889 ../src/curl -q --output log/5/curl889.out --include --trace-ascii log/5/trace889 --trace-time pop3://127.0.0.1:36739/889 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/5/stdout889 2> log/5/stderr889 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind892 ../src/curl -q --output log/7/curl892.out --include --trace-ascii log/7/trace892 --trace-time pop3://127.0.0.1:46127/892 -u user:secret --sasl-authzid shared-mailbox > log/7/stdout892 2> log/7/stderr892 o valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind888 test 0891...[POP3 with short authentication response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind891 ../src/curl -q --output log/6/curl891.out --include --trace-ascii log/6/trace891 --trace-time pop3://127.0.0.1:45313/891 -u user:secret > log/6/stdout891 2> log/6/stderr891 891: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 891 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind891 ../src/curl -q --output log/6/curl891.out --include --trace-ascii log/6/trace891 --trace-time pop3://127.0.0.1:45313/891 -u user:secret > log/6/stdout891 2> log/6/stderr891 === End of file commands.log === Start of file pop3_server.log 10:32:38.458536 ====> Client connect 10:32:38.459667 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:38.467426 < "CAPA" 10:32:38.467920 > "-ERR Unrecognized command[CR][LF]" 10:32:38.469877 < "RETR verifiedserver" 10:32:38.470278 return proof we are we 10:32:38.470688 > "+OK Mail transfer starts[CR][LF]" 10:32:38.471054 > "WE ROOLZ: 117430[CR][LF]" 10:32:38.471389 > ".[CR][LF]" 10:32:38.523987 < "QUIT" 10:32:38.524462 > "+OK curl POP3 server signing off[CR][LF]" 10:32:38.530089 MAIN sockfilt said DISC 10:32:38.530522 ====> Client disconnected 10:32:38.531131 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:38.126822 ====> Client connect 10:32:38.128763 Received DATA (on stdin) 10:32:38.128966 > 178 bytes data, server => client 10:32:38.129054 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:38.129131 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:38.129215 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:38.129294 've \r\n' 10:32:38.134485 < 6 bytes data, client => server 10:32:38.134719 'CAPA\r\n' 10:32:38.137121 Received DATA (on stdin) 10:32:38.137310 > 27 bytes data, server => client 10:32:38.137398 '-ERR Unrecognized command\r\n' 10:32:38.138070 < 21 bytes data, client => server 10:32:38.138267 'RETR verifiedserver\r\n' 10:32:38.141613 Received DATA (on stdin) 10:32:38.141835 > 26 bytes data, server => client 10:32:38.141924 '+OK Mail transfer starts\r\n' 10:32:38.142198 Received DATA (on stdin) 10:32:38.142316 > 18 bytes data, server => client 10:32:38.142394 'WE ROOLZ: 117430\r\n' 10:32:38.142492 Received DATA (on stdin) 10:32:38.142629 > 3 bytes data, server => client 10:32:38.142744 '.\r\n' 10:32:38.190761 < 6 bytes data, client => server 10:32:38.190992 'QUIT\r\n' 10:32:38.193622 Received DATA (on stdin) 10:32:38.193815 > 34 bytes data, server => client 10:32:38.193917 '+OK curl POP3 server signing off\r\n' 10:32:38.198700 ====> Client disconnect 10:32:38.199666 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH CRAM-MD5 REPLYLF AUTH + Testnum 891 === End of file server.cmd === Start of file valgrind891 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind891 test 0889...[POP3 OAuth 2.0 (OAUTHBEARER) failure as continuation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind889 ../src/curl -q --output log/5/curl889.out --include --trace-ascii log/5/trace889 --trace-time pop3://127.0.0.1:36739/889 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/5/stdout889 2> log/5/stderr889 889: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 889 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind889 ../src/curl -q --output log/5/curl889.out --include --trace-ascii log/5/trace889 --trace-time pop3://127.0.0.1:36739/889 -u user --oauth2-bearer mF_9.B5f-4.1JqM > log/5/stdout889 2> log/5/stderr889 === End of file commands.log === Start of file pop3_server.log 10:32:38.398242 ====> Client connect 10:32:38.401143 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:38.404267 < "CAPA" 10:32:38.404818 > "-ERR Unrecognized command[CR][LF]" 10:32:38.413734 < "RETR verifiedserver" 10:32:38.414195 return proof we are we 10:32:38.414679 > "+OK Mail transfer starts[CR][LF]" 10:32:38.415034 > "WE ROOLZ: 117445[CR][LF]" 10:32:38.415313 > ".[CR][LF]" 10:32:38.459130 < "QUIT" 10:32:38.459588 > "+OK curl POP3 server signing off[CR][LF]" 10:32:38.467701 MAIN sockfilt said DISC 10:32:38.468069 ====> Client disconnected 10:32:38.468584 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:38.066718 ====> Client connect 10:32:38.070274 Received DATA (on stdin) 10:32:38.070550 > 178 bytes data, server => client 10:32:38.070833 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:38.070942 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:38.071025 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:38.071092 've \r\n' 10:32:38.072437 < 6 bytes data, client => server 10:32:38.072655 'CAPA\r\n' 10:32:38.073971 Received DATA (on stdin) 10:32:38.074179 > 27 bytes data, server => client 10:32:38.074311 '-ERR Unrecognized command\r\n' 10:32:38.078773 < 21 bytes data, client => server 10:32:38.079053 'RETR verifiedserver\r\n' 10:32:38.084056 Received DATA (on stdin) 10:32:38.084262 > 26 bytes data, server => client 10:32:38.084365 '+OK Mail transfer starts\r\n' 10:32:38.084693 Received DATA (on stdin) 10:32:38.084858 > 18 bytes data, server => client 10:32:38.084956 'WE ROOLZ: 117445\r\n' 10:32:38.085100 Received DATA (on stdin) 10:32:38.085213 > CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind890 ../src/curl -q --output log/2/curl890.out --include --trace-ascii log/2/trace890 --trace-time pop3://127.0.0.1:44883/890 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/2/stdout890 2> log/2/stderr890 3 bytes data, server => client 10:32:38.085299 '.\r\n' 10:32:38.127564 < 6 bytes data, client => server 10:32:38.127805 'QUIT\r\n' 10:32:38.128740 Received DATA (on stdin) 10:32:38.128941 > 34 bytes data, server => client 10:32:38.129046 '+OK curl POP3 server signing off\r\n' 10:32:38.134670 ====> Client disconnect 10:32:38.137222 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH + REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9MzY3MzkBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= + eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0= REPLY AQ== -ERR Authentication failed Testnum 889 === End of file server.cmd === Start of file valgrind889 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind889 test 0892...[POP3 plain authentication with alternative authorization identity] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind892 ../src/curl -q --output log/7/curl892.out --include --trace-ascii log/7/trace892 --trace-time pop3://127.0.0.1:46127/892 -u user:secret --sasl-authzid shared-mailbox > log/7/stdout892 2> log/7/stderr892 892: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 892 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind892 ../src/curl -q --output log/7/curl892.out --include --trace-ascii log/7/trace892 --trace-time pop3://127.0.0.1:46127/892 -u user:secret --sasl-authzid shared-mailbox > log/7/stdout892 2> log/7/stderr892 === End of file commands.log === Start of file pop3_server.log 10:32:38.462316 ====> Client connect 10:32:38.465010 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:38.470651 < "CAPA" 10:32:38.471157 > "-ERR Unrecognized command[CR][LF]" 10:32:38.475180 < "RETR verifiedserver" 10:32:38.475622 return proof we are we 10:32:38.477686 > "+OK Mail transfer starts[CR][LF]" 10:32:38.478139 > "WE ROOLZ: 117426[CR][LF]" 10:32:38.478458 > ".[CR][LF]" 10:32:38.532576 < "QUIT" 10:32:38.533119 > "+OK curl POP3 server signing off[CR][LF]" 10:32:38.538025 MAIN sockfilt said DISC 10:32:38.539103 ====> Client disconnected 10:32:38.539781 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:38.130746 ====> Client connect 10:32:38.132799 Received DATA (on stdin) 10:32:38.133058 > 178 bytes data, server => client 10:32:38.133289 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:38.133411 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:38.133492 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:38.133561 've \r\n' 10:32:38.134362 < 6 bytes data, client => server 10:32:38.134553 'CAPA\r\n' 10:32:38.140589 Received DATA (on stdin) 10:32:38.140746 > 27 bytes data, server => client 10:32:38.140840 '-ERR Unrecognized command\r\n' 10:32:38.143228 < 21 bytes data, client => server 10:32:38.143422 'RETR verifiedserver\r\n' 10:32:38.145090 Received DATA (on stdin) 10:32:38.145256 > 26 bytes data, server => client 10:32:38.147926 '+OK Mail transfer starts\r\n' 10:32:38.148338 Received DATA (on stdin) 10:32:38.148537 > 18 bytes data, server => client 10:32:38.148630 'WE ROOLZ: 117426\r\n' 10:32:38.148757 Received DATA (on stdin) 10:32:38.148840 > 3 bytes data, server => client 10:32:38.148908 '.\r\n' 10:32:38.200604 < 6 bytes data, client => server 10:32:38.200775 'QUIT\r\n' 10:32:38.202800 Received DATA (on stdin) 10:32:38.203033 > 34 bytes data, server => client 10:32:38.203144 '+OK curl POP3 server signing off\r\n' 10:32:38.206723 ====> Client disconnect 10:32:38.207600 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTH + REPLY c2hhcmVkLW1haWxib3gAdXNlcgBzZWNyZXQ= +OK Login successful Testnum 892 === End of file server.cmd === Start of file valgrind892 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind892 test 0890...[POP3 OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind890 ../src/curl -q --output log/2/curl890.out --include --trace-ascii log/2/trace890 --trace-time pop3://127.0.0.1:44883/890 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/2/stdout890 2> log/2/stderr890 890: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 890 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind890 ../src/curCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind894 ../src/curl -q --output log/3/curl894.out --include --trace-ascii log/3/trace894 --trace-time pop3://user%0dFRIGGING_cmd:secret@127.0.0.1:43527/894 > log/3/stdout894 2> log/3/stderr894 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind893 ../src/curl -q --output log/4/curl893.out --include --trace-ascii log/4/trace893 --trace-time pop3://127.0.0.1:43735/893 -u kurt:xipj3plmq --sasl-authzid ursel > log/4/stdout893 2> log/4/stderr893 l -q --output log/2/curl890.out --include --trace-ascii log/2/trace890 --trace-time pop3://127.0.0.1:44883/890 -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir > log/2/stdout890 2> log/2/stderr890 === End of file commands.log === Start of file pop3_server.log 10:32:38.432178 ====> Client connect 10:32:38.433399 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:38.483216 < "CAPA" 10:32:38.483653 > "-ERR Unrecognized command[CR][LF]" 10:32:38.489256 < "RETR verifiedserver" 10:32:38.489669 return proof we are we 10:32:38.489955 > "+OK Mail transfer starts[CR][LF]" 10:32:38.490162 > "WE ROOLZ: 117443[CR][LF]" 10:32:38.490340 > ".[CR][LF]" 10:32:38.535690 < "QUIT" 10:32:38.536204 > "+OK curl POP3 server signing off[CR][LF]" 10:32:38.545625 MAIN sockfilt said DISC 10:32:38.546108 ====> Client disconnected 10:32:38.546682 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:38.100497 ====> Client connect 10:32:38.103204 Received DATA (on stdin) 10:32:38.103471 > 178 bytes data, server => client 10:32:38.103591 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:38.103692 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:38.103772 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:38.103834 've \r\n' 10:32:38.151378 < 6 bytes data, client => server 10:32:38.151618 'CAPA\r\n' 10:32:38.152772 Received DATA (on stdin) 10:32:38.152922 > 27 bytes data, server => client 10:32:38.153014 '-ERR Unrecognized command\r\n' 10:32:38.153690 < 21 bytes data, client => server 10:32:38.153902 'RETR verifiedserver\r\n' 10:32:38.159098 Received DATA (on stdin) 10:32:38.159228 > 26 bytes data, server => client 10:32:38.159320 '+OK Mail transfer starts\r\n' 10:32:38.159612 Received DATA (on stdin) 10:32:38.159708 > 18 bytes data, server => client 10:32:38.159780 'WE ROOLZ: 117443\r\n' 10:32:38.159879 Received DATA (on stdin) 10:32:38.159963 > 3 bytes data, server => client 10:32:38.160045 '.\r\n' 10:32:38.204063 < 6 bytes data, client => server 10:32:38.204314 'QUIT\r\n' 10:32:38.210691 Received DATA (on stdin) 10:32:38.210963 > 34 bytes data, server => client 10:32:38.211074 '+OK curl POP3 server signing off\r\n' 10:32:38.211727 ====> Client disconnect 10:32:38.215262 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH + eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0= REPLY AQ== -ERR Authentication failed Testnum 890 === End of file server.cmd === Start of file valgrind890 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind890 test 0894...[POP3 with CR in username] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind894 ../src/curl -q --output log/3/curl894.out --include --trace-ascii log/3/trace894 --trace-time pop3://user%0dFRIGGING_cmd:secret@127.0.0.1:43527/894 > log/3/stdout894 2> log/3/stderr894 curl returned 1, when expecting 3 894: exit FAILED == Contents of files in the log/3/ dir after test 894 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind894 ../src/curl -q --output log/3/curl894.out --include --trace-ascii log/3/trace894 --trace-time pop3://user%0dFRIGGING_cmd:secret@127.0.0.1:43527/894 > log/3/stdout894 2> log/3/stderr894 === End of file commands.log === Start of file pop3_server.log 10:32:39.187836 ====> Client connect 10:32:39.189619 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:39.193926 < "CAPA" 10:32:39.195259 > "-ERR Unrecognized command[CR][LF]" 10:32:39.200404 < "RETR verifiedserver" 10:32:39.200978 return proof we are we 10:32:39.201668 > "+OK Mail transfer starts[CR][LF]" 10:32:39.202260 > "WE ROOLZ: 117587[CR][LF]" 10:32:39.202770 > ".[CR][LF]" 10:32:39.258895 < "QUIT" 10:32:39.259429 > "+OK curl POP3 server signing off[CR][LF]" 10:32:39.262823 MAIN sockfilt said DISC 10:32:39.264237 ====> Client disconnected 10:32:39.265172 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:38.855054 ====> Client connect 10:32:38.859422 Received DATA (on stdin) 10:32:38.859770 > 178 bytes data, server => client 10:32:38.859922 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:38.860034 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:38.860119 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:38.860198 've \r\n' 10:32:38.861167 < 6 bytes data, client => server 10:32:38.861447 'CAPA\r\n' 10:32:38.863716 Received DATA (on stdin) 10:32:38.864002 > 27 bytes data, server => client 10:32:38.864990 '-ERR Unrecognized command\r\n' 10:32:38.866823 < 21 bytes data, client => server 10:32:38.867073 'RETR verifiedserver\r\n' 10:32:38.872693 Received DATA (on stdin) 10:32:38.873045 > 26 bytes data, server => client 10:32:38.873238 '+OK Mail transfer starts\r\n' 10:32:38.873701 Received DATA (on stdin) 10:32:38.873905 > 18 bytes data, server => client 10:32:38.874017 'WE ROOLZ: 117587\r\n' 10:32:38.874169 Received DATA (on stdin) 10:32:38.874308 > 3 bytes data, server => client 10:32:38.874434 '.\r\n' 10:32:38.926526 < 6 bytes data, client => server 10:32:38.927039 'QUIT\r\n' 10:32:38.928551 Received DATA (on stdin) 10:32:38.928738 > 34 bytes data, server => client 10:32:38.928871 '+OK curl POP3 server signing off\r\n' 10:32:38.931454 ====> Client disconnect 10:32:38.932525 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 894 === End of file server.cmd === Start of file valgrind894 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind895 ../src/curl -q --output log/1/curl895.out --include --trace-ascii log/1/trace895 --trace-time 'imap://127.0.0.1:33191/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=*' > log/1/stdout895 2> log/1/stderr895 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind896 ../src/curl -q --output log/8/curl896.out --include --trace-ascii log/8/trace896 --trace-time 'imap://127.0.0.1:44267/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=dummy' > log/8/stdout896 2> log/8/stderr896 valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind894 test 0893...[POP3 plain auth with alt authorization identity (Not authorized)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind893 ../src/curl -q --output log/4/curl893.out --include --trace-ascii log/4/trace893 --trace-time pop3://127.0.0.1:43735/893 -u kurt:xipj3plmq --sasl-authzid ursel > log/4/stdout893 2> log/4/stderr893 893: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 893 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind893 ../src/curl -q --output log/4/curl893.out --include --trace-ascii log/4/trace893 --trace-time pop3://127.0.0.1:43735/893 -u kurt:xipj3plmq --sasl-authzid ursel > log/4/stdout893 2> log/4/stderr893 === End of file commands.log === Start of file pop3_server.log 10:32:39.132969 ====> Client connect 10:32:39.134726 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:39.143531 < "CAPA" 10:32:39.144181 > "-ERR Unrecognized command[CR][LF]" 10:32:39.147315 < "RETR verifiedserver" 10:32:39.147780 return proof we are we 10:32:39.148730 > "+OK Mail transfer starts[CR][LF]" 10:32:39.149221 > "WE ROOLZ: 117584[CR][LF]" 10:32:39.149757 > ".[CR][LF]" 10:32:39.206390 < "QUIT" 10:32:39.206962 > "+OK curl POP3 server signing off[CR][LF]" 10:32:39.210599 MAIN sockfilt said DISC 10:32:39.211301 ====> Client disconnected 10:32:39.212084 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:38.800752 ====> Client connect 10:32:38.803796 Received DATA (on stdin) 10:32:38.804130 > 178 bytes data, server => client 10:32:38.804260 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:38.804338 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:38.804411 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:38.804473 've \r\n' 10:32:38.811006 < 6 bytes data, client => server 10:32:38.811259 'CAPA\r\n' 10:32:38.813798 Received DATA (on stdin) 10:32:38.814032 > 27 bytes data, server => client 10:32:38.814153 '-ERR Unrecognized command\r\n' 10:32:38.815135 < 21 bytes data, client => server 10:32:38.815363 'RETR verifiedserver\r\n' 10:32:38.817305 Received DATA (on stdin) 10:32:38.817512 > 26 bytes data, server => client 10:32:38.819318 '+OK Mail transfer starts\r\n' 10:32:38.819800 Received DATA (on stdin) 10:32:38.820051 > 18 bytes data, server => client 10:32:38.820175 'WE ROOLZ: 117584\r\n' 10:32:38.820316 Received DATA (on stdin) 10:32:38.820411 > 3 bytes data, server => client 10:32:38.820492 '.\r\n' 10:32:38.868676 < 6 bytes data, client => server 10:32:38.868973 'QUIT\r\n' 10:32:38.877369 Received DATA (on stdin) 10:32:38.877636 > 34 bytes data, server => client 10:32:38.877740 '+OK curl POP3 server signing off\r\n' 10:32:38.879180 ====> Client disconnect 10:32:38.881925 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd AUTH PLAIN REPLY AUTH + REPLY dXJzZWwAa3VydAB4aXBqM3BsbXE= -ERR Not authorized Testnum 893 === End of file server.cmd === Start of file valgrind893 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind893 test 0895...[IMAP with --login-options 'AUTH=*'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind895 ../src/curl -q --output log/1/curl895.out --include --trace-ascii log/1/trace895 --trace-time 'imap://127.0.0.1:33191/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=*' > log/1/stdout895 2> log/1/stderr895 895: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 895 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind895 ../src/curl -q --output log/1/curl895.out --include --trace-ascii log/1/trace895 --trace-time 'imap://127.0.0.1:33191/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=*' > log/1/stdout895 2> log/1/stderr895 === End of file commands.log === Start of file imap_server.log 10:32:39.337650 ====> Client connect 10:32:39.338890 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:39.342643 < "A001 CAPABILITY" 10:32:39.343124 > "A001 BAD Command[CR][LF]" 10:32:39.345355 < "A002 LIST "verifiedserver" *" 10:32:39.345800 LIST_imap got "verifiedserver" * 10:32:39.346186 > "* LIST () "/" "WE ROOLZ: 114681"[CR][LF]" 10:32:39.346502 > "A002 OK LIST Completed[CR][LF]" 10:32:39.346693 return proof we are we 10:32:39.392220 < "A003 LOGOUT" 10:32:39.393219 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:39.393724 > "A003 OK LOGOUT completed[CR][LF]" 10:32:39.400239 MAIN sockfilt said DISC 10:32:39.400856 ====> Client disconnected 10:32:39.401674 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:39.004019 ====> Client connect 10:32:39.007990 Received DATA (on stdin) 10:32:39.008267 > 178 bytes data, server => client 10:32:39.008401 ' _ _ ____ _ \r\n CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind899 ../src/curl -q --output log/7/curl899.out --include --trace-ascii log/7/trace899 --trace-time http://first:secret@127.0.0.1:40129/899 -L > log/7/stdout899 2> log/7/stderr899 ___| | | | _ \| | \r\n ' 10:32:39.008488 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:39.008561 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:39.008633 'rve\r\n' 10:32:39.009679 < 17 bytes data, client => server 10:32:39.009910 'A001 CAPABILITY\r\n' 10:32:39.012252 Received DATA (on stdin) 10:32:39.012442 > 18 bytes data, server => client 10:32:39.012537 'A001 BAD Command\r\n' 10:32:39.013250 < 30 bytes data, client => server 10:32:39.013434 'A002 LIST "verifiedserver" *\r\n' 10:32:39.016057 Received DATA (on stdin) 10:32:39.016218 > 34 bytes data, server => client 10:32:39.016307 '* LIST () "/" "WE ROOLZ: 114681"\r\n' 10:32:39.016640 Received DATA (on stdin) 10:32:39.016836 > 24 bytes data, server => client 10:32:39.016929 'A002 OK LIST Completed\r\n' 10:32:39.060170 < 13 bytes data, client => server 10:32:39.060366 'A003 LOGOUT\r\n' 10:32:39.061837 Received DATA (on stdin) 10:32:39.062047 > 36 bytes data, server => client 10:32:39.063276 '* BYE curl IMAP server signing off\r\n' 10:32:39.063739 Received DATA (on stdin) 10:32:39.063940 > 26 bytes data, server => client 10:32:39.064052 'A003 OK LOGOUT completed\r\n' 10:32:39.064571 ====> Client disconnect 10:32:39.072104 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 895 === End of file server.cmd === Start of file valgrind895 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind895 test 0896...[IMAP with --login-options 'AUTH=dummy' (failing)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind896 ../src/curl -q --output log/8/curl896.out --include --trace-ascii log/8/trace896 --trace-time 'imap://127.0.0.1:44267/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=dummy' > log/8/stdout896 2> log/8/stderr896 curl returned 1, when expecting 3 896: exit FAILED == Contents of files in the log/8/ dir after test 896 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind896 ../src/curl -q --output log/8/curl896.out --include --trace-ascii log/8/trace896 --trace-time 'imap://127.0.0.1:44267/895/;MAILINDEX=1' -u '"user:sec"ret{' --login-options 'AUTH=dummy' > log/8/stdout896 2> log/8/stderr896 === End of file commands.log === Start of file imap_server.log 10:32:39.369891 ====> Client connect 10:32:39.371162 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:39.374989 < "A001 CAPABILITY" 10:32:39.375461 > "A001 BAD Command[CR][LF]" 10:32:39.380477 < "A002 LIST "verifiedserver" *" 10:32:39.380992 LIST_imap got "verifiedserver" * 10:32:39.381456 > "* LIST () "/" "WE ROOLZ: 114695"[CR][LF]" 10:32:39.382024 > "A002 OK LIST Completed[CR][LF]" 10:32:39.382259 return proof we are we 10:32:39.428441 < "A003 LOGOUT" 10:32:39.430363 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:39.430951 > "A003 OK LOGOUT completed[CR][LF]" 10:32:39.432495 MAIN sockfilt said DISC 10:32:39.432968 ====> Client disconnected 10:32:39.433879 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:39.038217 ====> Client connect 10:32:39.040233 Received DATA (on stdin) 10:32:39.040458 > 178 bytes data, server => client 10:32:39.040560 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:39.040638 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:39.040718 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:39.040782 'rve\r\n' 10:32:39.043090 < 17 bytes data, client => server 10:32:39.043315 'A001 CAPABILITY\r\n' 10:32:39.046914 Received DATA (on stdin) 10:32:39.047198 > 18 bytes data, server => client 10:32:39.047323 'A001 BAD Command\r\n' 10:32:39.048210 < 30 bytes data, client => server 10:32:39.048422 'A002 LIST "verifiedserver" *\r\n' 10:32:39.051709 Received DATA (on stdin) 10:32:39.051893 > 34 bytes data, server => client 10:32:39.051994 '* LIST () "/" "WE ROOLZ: 114695"\r\n' 10:32:39.052366 Received DATA (on stdin) 10:32:39.052523 > 24 bytes data, server => client 10:32:39.052644 'A002 OK LIST Completed\r\n' 10:32:39.096101 < 13 bytes data, client => server 10:32:39.096388 'A003 LOGOUT\r\n' 10:32:39.098210 Received DATA (on stdin) 10:32:39.098478 > 36 bytes data, server => client 10:32:39.098855 '* BYE curl IMAP server signing off\r\n' 10:32:39.100461 Received DATA (on stdin) 10:32:39.100652 > 26 bytes data, server => client 10:32:39.100779 'A003 OK LOGOUT completed\r\n' 10:32:39.101222 ====> Client disconnect 10:32:39.103870 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 896 === End of file server.cmd === Start of file valgrind896 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind896 test 0899...[URL with credentials redirects to URL with different credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind899 ../src/curl -q --output log/7/cuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind897 ../src/curl -q --output log/6/curl897.out --include --trace-ascii log/6/trace897 --trace-time 'imap://127.0.0.1:34025/897/;MAILINDEX=123/;SECTION=1' -u user:secret -D log/6/head-897 > log/6/stdout897 2> log/6/stderr897 rl899.out --include --trace-ascii log/7/trace899 --trace-time http://first:secret@127.0.0.1:40129/899 -L > log/7/stdout899 2> log/7/stderr899 899: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 899 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind899 ../src/curl -q --output log/7/curl899.out --include --trace-ascii log/7/trace899 --trace-time http://first:secret@127.0.0.1:40129/899 -L > log/7/stdout899 2> log/7/stderr899 === End of file commands.log === Start of file http_server.log 10:32:39.193775 ====> Client connect 10:32:39.194114 accept_connection 3 returned 4 10:32:39.194329 accept_connection 3 returned 0 10:32:39.194469 Read 93 bytes 10:32:39.194651 Process 93 bytes request 10:32:39.194786 Got request: GET /verifiedserver HTTP/1.1 10:32:39.194877 Are-we-friendly question received 10:32:39.195149 Wrote request (93 bytes) input to log/7/server.input 10:32:39.195361 Identifying ourselves as friends 10:32:39.196171 Response sent (56 bytes) and written to log/7/server.response 10:32:39.196313 special request received, no persistency 10:32:39.196381 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 56208 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 899 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind899 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind899 test 0897...[IMAP and envelope meta data after body transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind897 ../src/curl -q --output log/6/curl897.out --include --trace-ascii log/6/trace897 --trace-time 'imap://127.0.0.1:34025/897/;MAILINDEX=123/;SECTION=1' -u user:secret -D log/6/head-897 > log/6/stdout897 2> log/6/stderr897 897: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 897 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind897 ../src/curl -q --output log/6/curl897.out --include --trace-ascii log/6/trace897 --trace-time 'imap://127.0.0.1:34025/897/;MAILINDEX=123/;SECTION=1' -u user:secret -D log/6/head-897 > log/6/stdout897 2> log/6/stderr897 === End of file commands.log === Start of file imap_server.log 10:32:39.446267 ====> Client connect 10:32:39.447508 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:39.456436 < "A001 CAPABILITY" 10:32:39.458983 > "A001 BAD Command[CR][LF]" 10:32:39.460190 < "A002 LIST "verifiedserver" *" 10:32:39.460694 LIST_imap got "verifiedserver" * 10:32:39.461221 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:39.461725 > "A002 OK LIST Completed[CR][LF]" 10:32:39.462067 return proof we are we 10:32:39.514093 < "A003 LOGOUT" 10:32:39.515698 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:39.516991 > "A003 OK LOGOUT completed[CR][LF]" 10:32:39.517441 MAIN sockfilt said DISC 10:32:39.517911 ====> Client disconnected 10:32:39.518439 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:40.114737 ====> Client connect 10:32:40.119590 Received DATA (on stdin) 10:32:40.119872 > 178 bytes data, server => client 10:32:40.120001 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:40.120086 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:40.122188 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:40.122418 'rve\r\n' 10:32:40.123964 < 17 bytes data, client => server 10:32:40.124179 'A001 CAPABILITY\r\n' 10:32:40.126073 Received DATA (on stdin) 10:32:40.126278 > 18 bytes data, server => client 10:32:40.126466 'A001 BAD Command\r\n' 10:32:40.127494 < 30 bytes data, client => server 10:32:40.127726 'A002 LIST "verifiedserver" *\r\n' 10:32:40.131544 Received DATA (on stdin) 10:32:40.131804 > 34 bytes data, server => client 10:32:40.131925 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:40.132636 Received DATA (on stdin) 10:32:40.132860 > 24 bytes data, server => client 10:32:40.132955 'A002 OK LIST Completed\r\n' 10:32:40.179443 < 13 bytes data, client => server 10:32:40.179686 'A003 LOGOUT\r\n' 10:32:40.183758 Received DATA (on stdin) 10:32:40.183973 > 36 bytes data, server => client 10:32:40.184237 '* BYE curl IMAP server signing off\r\n' 10:32:40.184983 ====> Client disconnect 10:32:40.185621 Received DATA (on stdin) 10:32:40.185768 Throwing away data bytes 10:32:40.185851 > 26 bytes data, server => client 10:32:40.186714 'A003 OK LOGOUT completed\r\n' 10:32:40.187009 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd POSTFETCH extra stuff sent in the envelope after the body Testnum 897 === End of file server.cmd === Start of file valgrind897 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind900 ../src/curl -q --output log/2/curl900.out --include --trace-ascii log/2/trace900 --trace-time smtp://127.0.0.1:40329/900 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/2/stdout900 2> log/2/stderr900 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind898 ../src/curl -q --output log/5/curl898.out --include --trace-ascii log/5/trace898 --trace-time -x http://127.0.0.1:41733 http://firsthost.com -L -H "Authorization: Basic am9lOnNlY3JldA==" -H "Cookie: userpwd=am9lOnNlY3JldA==" > log/5/stdout898 2> log/5/stderr898 dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind897 test 0900...[SMTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind900 ../src/curl -q --output log/2/curl900.out --include --trace-ascii log/2/trace900 --trace-time smtp://127.0.0.1:40329/900 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/2/stdout900 2> log/2/stderr900 900: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 900 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind900 ../src/curl -q --output log/2/curl900.out --include --trace-ascii log/2/trace900 --trace-time smtp://127.0.0.1:40329/900 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/2/stdout900 2> log/2/stderr900 === End of file commands.log === Start of file server.cmd Testnum 900 === End of file server.cmd === Start of file smtp_server.log 10:32:39.574273 ====> Client connect 10:32:39.575641 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:39.581308 < "EHLO verifiedserver" 10:32:39.582510 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:39.589907 < "HELP" 10:32:39.590422 > "214 WE ROOLZ: 107342[CR][LF]" 10:32:39.590710 return proof we are we 10:32:39.595569 < "QUIT" 10:32:39.596051 > "221 curl ESMTP server signing off[CR][LF]" 10:32:39.602083 MAIN sockfilt said DISC 10:32:39.602508 ====> Client disconnected 10:32:39.603077 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.242731 ====> Client connect 10:32:40.244725 Received DATA (on stdin) 10:32:40.245004 > 160 bytes data, server => client 10:32:40.245123 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:40.245207 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:40.245279 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:40.249186 < 21 bytes data, client => server 10:32:40.249471 'EHLO verifiedserver\r\n' 10:32:40.251633 Received DATA (on stdin) 10:32:40.251848 > 53 bytes data, server => client 10:32:40.251954 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:40.254748 < 6 bytes data, client => server 10:32:40.255000 'HELP\r\n' 10:32:40.259570 Received DATA (on stdin) 10:32:40.259777 > 22 bytes data, server => client 10:32:40.259909 '214 WE ROOLZ: 107342\r\n' 10:32:40.263953 < 6 bytes data, client => server 10:32:40.264218 'QUIT\r\n' 10:32:40.265158 Received DATA (on stdin) 10:32:40.265339 > 35 bytes data, server => client 10:32:40.265438 '221 curl ESMTP server signing off\r\n' 10:32:40.270679 ====> Client disconnect 10:32:40.271648 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-900 From: different To: another body === End of file stdin-for-900 === Start of file valgrind900 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind900 test 0898...[HTTP with custom auth and cookies redirected to HTTP on a diff port] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind898 ../src/curl -q --output log/5/curl898.out --include --trace-ascii log/5/trace898 --trace-time -x http://127.0.0.1:41733 http://firsthost.com -L -H "Authorization: Basic am9lOnNlY3JldA==" -H "Cookie: userpwd=am9lOnNlY3JldA==" > log/5/stdout898 2> log/5/stderr898 898: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 898 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind898 ../src/curl -q --output log/5/curl898.out --include --trace-ascii log/5/trace898 --trace-time -x http://127.0.0.1:41733 http://firsthost.com -L -H "Authorization: Basic am9lOnNlY3JldA==" -H "Cookie: userpwd=am9lOnNlY3JldA==" > log/5/stdout898 2> log/5/stderr898 === End of file commands.log === Start of file http_server.log 10:32:40.155836 ====> Client connect 10:32:40.156246 accept_connection 3 returned 4 10:32:40.156510 accept_connection 3 returned 0 10:32:40.156690 Read 93 bytes 10:32:40.156797 Process 93 bytes request 10:32:40.156888 Got request: GET /verifiedserver HTTP/1.1 10:32:40.156965 Are-we-friendly question received 10:32:40.157225 Wrote request (93 bytes) input to log/5/server.input 10:32:40.157456 Identifying ourselves as friends 10:32:40.158304 Response sent (56 bytes) and written to log/5/server.response 10:32:40.158476 special request received, no persistency 10:32:40.158658 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 35346 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 898 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind898 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be setCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind904 ../src/curl -q --output log/8/curl904.out --include --trace-ascii log/8/trace904 --trace-time smtp://127.0.0.1:38345/904 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/8/stdout904 2> log/8/stderr904 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind903 ../src/curl -q --output log/1/curl903.out --include --trace-ascii log/1/trace903 --trace-time smtp://127.0.0.1:42637/903 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/1/stdout903 2> log/1/stderr903 up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind898 test 0904...[SMTP login authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind904 ../src/curl -q --output log/8/curl904.out --include --trace-ascii log/8/trace904 --trace-time smtp://127.0.0.1:38345/904 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/8/stdout904 2> log/8/stderr904 904: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 904 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind904 ../src/curl -q --output log/8/curl904.out --include --trace-ascii log/8/trace904 --trace-time smtp://127.0.0.1:38345/904 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/8/stdout904 2> log/8/stderr904 === End of file commands.log === Start of file server.cmd AUTH LOGIN REPLY AUTH 334 VXNlcm5hbWU6 REPLY dXNlcg== 334 UGFzc3dvcmQ6 REPLY c2VjcmV0 235 Authenticated Testnum 904 === End of file server.cmd === Start of file smtp_server.log 10:32:40.405660 ====> Client connect 10:32:40.406940 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:40.410684 < "EHLO verifiedserver" 10:32:40.411194 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:40.422352 < "HELP" 10:32:40.422873 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:40.423173 return proof we are we 10:32:40.425128 < "QUIT" 10:32:40.425665 > "221 curl ESMTP server signing off[CR][LF]" 10:32:40.429631 MAIN sockfilt said DISC 10:32:40.430500 ====> Client disconnected 10:32:40.431182 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.070240 ====> Client connect 10:32:40.076029 Received DATA (on stdin) 10:32:40.076341 > 160 bytes data, server => client 10:32:40.076486 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:40.076573 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:40.076641 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:40.078634 < 21 bytes data, client => server 10:32:40.078878 'EHLO verifiedserver\r\n' 10:32:40.086014 Received DATA (on stdin) 10:32:40.086275 > 53 bytes data, server => client 10:32:40.086389 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:40.087794 < 6 bytes data, client => server 10:32:40.088016 'HELP\r\n' 10:32:40.092003 Received DATA (on stdin) 10:32:40.092220 > 22 bytes data, server => client 10:32:40.092343 '214 WE ROOLZ: 107099\r\n' 10:32:40.093495 < 6 bytes data, client => server 10:32:40.093734 'QUIT\r\n' 10:32:40.094746 Received DATA (on stdin) 10:32:40.094967 > 35 bytes data, server => client 10:32:40.095088 '221 curl ESMTP server signing off\r\n' 10:32:40.095737 ====> Client disconnect 10:32:40.099628 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-904 mail body === End of file stdin-for-904 === Start of file valgrind904 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind904 test 0903...[SMTP plain authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind903 ../src/curl -q --output log/1/curl903.out --include --trace-ascii log/1/trace903 --trace-time smtp://127.0.0.1:42637/903 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/1/stdout903 2> log/1/stderr903 903: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 903 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind903 ../src/curl -q --output log/1/curl903.out --include --trace-ascii log/1/trace903 --trace-time smtp://127.0.0.1:42637/903 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/1/stdout903 2> log/1/stderr903 === End of file commands.log === Start of file server.cmd AUTH PLAIN REPLY AUTH 334 PLAIN supported REPLY AHVzZXIAc2VjcmV0 235 Authenticated Testnum 903 === End of file server.cmd === Start of file smtp_server.log 10:32:40.384514 ====> Client connect 10:32:40.386557 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:40.390398 < "EHLO verifiedserver" 10:32:40.390999 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:40.398371 < "HELP" 10:32:40.398891 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:40.399140 return proof we are we 10:32:40.400927 < "QUIT" 10:32:40.401446 > "221 curl ESMTP server signing off[CR][LF]" 10:32:40.402863 MAIN sockfilt said DISC 10:32:40.403251 ====> Client disconnected 10:32:40.403833 AwaitiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind908 ../src/curl -q --output log/2/curl908.out --include --trace-ascii log/2/trace908 --trace-time smtp://127.0.0.1:40329/908 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/2/stdout908 2> log/2/stderr908 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind902 ../src/curl -q --output log/4/curl902.out --include --trace-ascii log/4/trace902 --trace-time smtp://127.0.0.1:44481/902 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/4/stdout902 2> log/4/stderr902 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind901 ../src/curl -q --output log/3/curl901.out --include --trace-ascii log/3/trace901 --trace-time smtp://127.0.0.1:46117/901 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/3/stdout901 2> log/3/stderr901 ng input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.050733 ====> Client connect 10:32:40.055608 Received DATA (on stdin) 10:32:40.055941 > 160 bytes data, server => client 10:32:40.056086 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:40.056178 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:40.056258 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:40.058216 < 21 bytes data, client => server 10:32:40.058476 'EHLO verifiedserver\r\n' 10:32:40.060071 Received DATA (on stdin) 10:32:40.060296 > 53 bytes data, server => client 10:32:40.060417 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:40.066698 < 6 bytes data, client => server 10:32:40.066947 'HELP\r\n' 10:32:40.068000 Received DATA (on stdin) 10:32:40.068193 > 22 bytes data, server => client 10:32:40.068293 '214 WE ROOLZ: 107206\r\n' 10:32:40.069395 < 6 bytes data, client => server 10:32:40.069648 'QUIT\r\n' 10:32:40.070597 Received DATA (on stdin) 10:32:40.070841 > 35 bytes data, server => client 10:32:40.070943 '221 curl ESMTP server signing off\r\n' 10:32:40.071520 ====> Client disconnect 10:32:40.072408 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-903 mail body === End of file stdin-for-903 === Start of file valgrind903 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind903 test 0908...[SMTP OAuth 2.0 (XOAUTH2) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind908 ../src/curl -q --output log/2/curl908.out --include --trace-ascii log/2/trace908 --trace-time smtp://127.0.0.1:40329/908 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/2/stdout908 2> log/2/stderr908 908: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 908 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind908 ../src/curl -q --output log/2/curl908.out --include --trace-ascii log/2/trace908 --trace-time smtp://127.0.0.1:40329/908 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/2/stdout908 2> log/2/stderr908 === End of file commands.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTH 334 XOAUTH2 supported REPLY dXNlcj11c2VyAWF1dGg9QmVhcmVyIG1GXzkuQjVmLTQuMUpxTQEB 235 Authenticated Testnum 908 === End of file server.cmd === Start of file smtp_server.log 10:32:40.564580 ====> Client connect 10:32:40.566019 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:40.574707 < "EHLO verifiedserver" 10:32:40.575316 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:40.582638 < "HELP" 10:32:40.583291 > "214 WE ROOLZ: 107342[CR][LF]" 10:32:40.583625 return proof we are we 10:32:40.585898 < "QUIT" 10:32:40.586351 > "221 curl ESMTP server signing off[CR][LF]" 10:32:40.592587 MAIN sockfilt said DISC 10:32:40.593145 ====> Client disconnected 10:32:40.593977 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:41.230204 ====> Client connect 10:32:41.238659 Received DATA (on stdin) 10:32:41.238948 > 160 bytes data, server => client 10:32:41.239104 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:41.239217 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:41.239302 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:41.241259 < 21 bytes data, client => server 10:32:41.241462 'EHLO verifiedserver\r\n' 10:32:41.244432 Received DATA (on stdin) 10:32:41.244640 > 53 bytes data, server => client 10:32:41.244772 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:41.247853 < 6 bytes data, client => server 10:32:41.248060 'HELP\r\n' 10:32:41.252414 Received DATA (on stdin) 10:32:41.252661 > 22 bytes data, server => client 10:32:41.252819 '214 WE ROOLZ: 107342\r\n' 10:32:41.254193 < 6 bytes data, client => server 10:32:41.254454 'QUIT\r\n' 10:32:41.256237 Received DATA (on stdin) 10:32:41.256482 > 35 bytes data, server => client 10:32:41.256597 '221 curl ESMTP server signing off\r\n' 10:32:41.261003 ====> Client disconnect 10:32:41.262721 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-908 mail body === End of file stdin-for-908 === Start of file valgrind908 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind908 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/3/server/smtp_server.pid" --logfile "log/3/smtp_server.log" --logdir "log/3" --portfile "log/3/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 46117 (log/3/server/smtp_server.port) RUN: SMTP server is PID 120346 port 46117 * pid smtp => 120346 120346 test 0901...[SMTP witCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind911 ../src/curl -q --output log/1/curl911.out --include --trace-ascii log/1/trace911 --trace-time smtp://127.0.0.1:42637/911 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/1/stdout911 2> log/1/stderr911 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind910 ../src/curl -q --output log/8/curl910.out --include --trace-ascii log/8/trace910 --trace-time smtp://127.0.0.1:38345/910 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/8/stdout910 2> log/8/stderr910 h CRLF-dot-CRLF in data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind901 ../src/curl -q --output log/3/curl901.out --include --trace-ascii log/3/trace901 --trace-time smtp://127.0.0.1:46117/901 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/3/stdout901 2> log/3/stderr901 901: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 901 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind901 ../src/curl -q --output log/3/curl901.out --include --trace-ascii log/3/trace901 --trace-time smtp://127.0.0.1:46117/901 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/3/stdout901 2> log/3/stderr901 === End of file commands.log === Start of file server.cmd Testnum 901 === End of file server.cmd === Start of file smtp_server.log 10:32:40.602078 SMTP server listens on port IPv4/46117 10:32:40.603453 logged pid 120346 in log/3/server/smtp_server.pid 10:32:40.603916 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.267303 Running IPv4 version 10:32:40.268016 Listening on port 46117 10:32:40.268552 Wrote pid 120450 to log/3/server/smtp_sockfilt.pid 10:32:40.269043 Wrote port 46117 to log/3/server/smtp_server.port 10:32:40.270104 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-901 From: different To: another . . . body === End of file stdin-for-901 === Start of file valgrind901 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind901 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/4/server/smtp_server.pid" --logfile "log/4/smtp_server.log" --logdir "log/4" --portfile "log/4/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 44481 (log/4/server/smtp_server.port) RUN: SMTP server is PID 120358 port 44481 * pid smtp => 120358 120358 test 0902...[RFC821-only SMTP server (EHLO not supported)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind902 ../src/curl -q --output log/4/curl902.out --include --trace-ascii log/4/trace902 --trace-time smtp://127.0.0.1:44481/902 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/4/stdout902 2> log/4/stderr902 902: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 902 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind902 ../src/curl -q --output log/4/curl902.out --include --trace-ascii log/4/trace902 --trace-time smtp://127.0.0.1:44481/902 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/4/stdout902 2> log/4/stderr902 === End of file commands.log === Start of file server.cmd REPLY EHLO 500 Command unrecognized Testnum 902 === End of file server.cmd === Start of file smtp_server.log 10:32:40.579934 SMTP server listens on port IPv4/44481 10:32:40.580921 logged pid 120358 in log/4/server/smtp_server.pid 10:32:40.581282 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.245346 Running IPv4 version 10:32:40.245964 Listening on port 44481 10:32:40.246431 Wrote pid 120446 to log/4/server/smtp_sockfilt.pid 10:32:40.246961 Wrote port 44481 to log/4/server/smtp_server.port 10:32:40.248285 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-902 From: different To: another body === End of file stdin-for-902 === Start of file valgrind902 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind902 test 0911...[SMTP with no mail data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind911 ../src/curl -q --output log/1/curl911.out --include --trace-ascii log/1/trace911 --trace-time smtp://127.0.0.1:42637/911 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/1/stdout911 2> log/1/stderr911 911: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 911 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind911 ../src/curl -q --output log/1/curl911.out --include --trace-ascii log/1/trace911 --trace-time smtp://127.0.0.1:42637/911 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/1/stdout911 2> log/1/stderr911 === End of file commands.log === Start of file server.cmd Testnum 911 === End of file server.cmd === Start of file smtp_server.log 10:32:41.254860 ====> Client connect 10:32:41.258103 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:41.260654 < "EHLO verifiedserver" 10:32:41.261118 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:41.262729 < "HELP" 10:32:41.263220 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:41.263473 return proof we are we 10:32:41.265097 < "QUIT" 10:32:41.265453 > "221 curl ESMTP server signing off[CR][LF]" 10:32:41.268236 MAIN sockfilt said DISC 10:32:41.268654 ====> Client disconnected 10:32:41.269231 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.923317 ====> Client connect 10:32:40.927378 Received DATA (on stdin) 10:32:40.927605 > 160 bytes data, server => client 10:32:40.927743 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:40.927833 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:40.927908 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:40.928856 < 21 bytes data, client => server 10:32:40.929071 'EHLO verifiedserver\r\n' 10:32:40.930200 Received DATA (on stdin) 10:32:40.930369 > 53 bytes data, server => client 10:32:40.930461 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:40.931182 < 6 bytes data, client => server 10:32:40.931402 'HELP\r\n' 10:32:40.932280 Received DATA (on stdin) 10:32:40.932473 > 22 bytes data, server => client 10:32:40.932557 '214 WE ROOLZ: 107206\r\n' 10:32:40.933585 < 6 bytes data, client => server 10:32:40.933783 'QUIT\r\n' 10:32:40.934582 Received DATA (on stdin) 10:32:40.934788 > 35 bytes data, server => client 10:32:40.934889 '221 curl ESMTP server signing off\r\n' 10:32:40.936888 ====> Client disconnect 10:32:40.937716 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind911 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind911 test 0910...[SMTP without terminating CRLF] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind910 ../src/curl -q --output log/8/curl910.out --include --trace-ascii log/8/trace910 --trace-time smtp://127.0.0.1:38345/910 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/8/stdout910 2> log/8/stderr910 910: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 910 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind910 ../src/curl -q --output log/8/curl910.out --include --trace-ascii log/8/trace910 --trace-time smtp://127.0.0.1:38345/910 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/8/stdout910 2> log/8/stderr910 === End of file commands.log === Start of file server.cmd Testnum 910 === End of file server.cmd === Start of file smtp_server.log 10:32:41.232533 ====> Client connect 10:32:41.233838 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:41.238029 < "EHLO verifiedserver" 10:32:41.239074 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:41.246171 < "HELP" 10:32:41.246683 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:41.246928 return proof we are we 10:32:41.249250 < "QUIT" 10:32:41.249681 > "221 curl ESMTP server signing off[CR][LF]" 10:32:41.251140 MAIN sockfilt said DISC 10:32:41.251499 ====> Client disconnected 10:32:41.251977 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.901024 ====> Client connect 10:32:40.902858 Received DATA (on stdin) 10:32:40.903140 > 160 bytes data, server => client 10:32:40.903272 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:40.903358 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:40.903429 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:40.905687 < 21 bytes data, client => server 10:32:40.905933 'EHLO verifiedserver\r\n' 10:32:40.907661 Received DATA (on stdin) 10:32:40.907851 > 53 bytes data, server => client 10:32:40.908639 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:40.909410 < 6 bytes data, client => server 10:32:40.909650 'HELP\r\n' 10:32:40.916232 Received DATA (on stdin) 10:32:40.916416 > 22 bytes data, server => client 10:32:40.916497 '214 WE ROOLZ: 107099\r\n' 10:32:40.919048 < 6 bytes data, client => server 10:32:40.919206 'QUIT\r\n' 10:32:40.919315 Received DATA (on stdin) 10:32:40.919390 > 35 bytes data, server => client 10:32:40.919461 '221 curl ESMTP server signing off\r\n' 10:32:40.919899 ====> Client disconnect 10:32:40.921409 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-910 From: different To: another body === End of file stdin-for-910 === Start of file valgrind910 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a correspondCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind905 ../src/curl -q --output log/7/curl905.out --include --trace-ascii log/7/trace905 --trace-time smtp://127.0.0.1:45189/905 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/7/stdout905 2> log/7/stderr905 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind906 ../src/curl -q --output log/6/curl906.out --include --trace-ascii log/6/trace906 --trace-time smtp://127.0.0.1:42767/906 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - log/6/stdout906 2> log/6/stderr906 ing 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind910 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/7/server/smtp_server.pid" --logfile "log/7/smtp_server.log" --logdir "log/7" --portfile "log/7/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 45189 (log/7/server/smtp_server.port) RUN: SMTP server is PID 120422 port 45189 * pid smtp => 120422 120422 test 0905...[SMTP CRAM-MD5 authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind905 ../src/curl -q --output log/7/curl905.out --include --trace-ascii log/7/trace905 --trace-time smtp://127.0.0.1:45189/905 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/7/stdout905 2> log/7/stderr905 905: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 905 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind905 ../src/curl -q --output log/7/curl905.out --include --trace-ascii log/7/trace905 --trace-time smtp://127.0.0.1:45189/905 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/7/stdout905 2> log/7/stderr905 === End of file commands.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTH 334 PDE5NzIuOTg3NjU0MzIxQGN1cmw+ REPLY dXNlciA3MDMxNzI1NTk5ZmRiYjVkNDEyNjg5YWEzMjNlM2UwYg== 235 Authenticated Testnum 905 === End of file server.cmd === Start of file smtp_server.log 10:32:40.906064 SMTP server listens on port IPv4/45189 10:32:40.907198 logged pid 120422 in log/7/server/smtp_server.pid 10:32:40.907609 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.573144 Running IPv4 version 10:32:40.573668 Listening on port 45189 10:32:40.574009 Wrote pid 120568 to log/7/server/smtp_sockfilt.pid 10:32:40.574222 Wrote port 45189 to log/7/server/smtp_server.port 10:32:40.574354 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-905 mail body === End of file stdin-for-905 === Start of file valgrind905 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind905 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/6/server/smtp_server.pid" --logfile "log/6/smtp_server.log" --logdir "log/6" --portfile "log/6/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 42767 (log/6/server/smtp_server.port) RUN: SMTP server is PID 120427 port 42767 * pid smtp => 120427 120427 test 0906...[SMTP NTLM authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind906 ../src/curl -q --output log/6/curl906.out --include --trace-ascii log/6/trace906 --trace-time smtp://127.0.0.1:42767/906 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - log/6/stdout906 2> log/6/stderr906 906: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 906 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind906 ../src/curl -q --output log/6/curl906.out --include --trace-ascii log/6/trace906 --trace-time smtp://127.0.0.1:42767/906 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - log/6/stdout906 2> log/6/stderr906 === End of file commands.log === Start of file server.cmd AUTH NTLM REPLY AUTH 334 NTLM supported REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 334 TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= 235 Authenticated Testnum 906 === End of file server.cmd === Start of file smtp_server.log 10:32:40.837500 SMTP server listens on port IPv4/42767 10:32:40.838712 logged pid 120427 in log/6/server/smtp_server.pid 10:32:40.839177 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.504407 Running IPv4 version 10:32:40.505047 Listening on port 42767 10:32:40.505445 Wrote pid 120540 to log/6/server/smtp_sockfilt.pid 10:32:40.505702 Wrote port 42767 to log/6/server/smtp_server.port 10:32:40.505840 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-906 mail body === End of file stdin-for-906 === Start of file valgrind906 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you wCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind912 ../src/curl -q --output log/2/curl912.out --include --trace-ascii log/2/trace912 --trace-time smtp://127.0.0.1:40329/912 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/2/test912.eml > log/2/stdout912 2> log/2/stderr912 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind909 ../src/curl -q --output log/5/curl909.out --include --trace-ascii log/5/trace909 --trace-time smtp://127.0.0.1:34989/909 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/5/test909.eml > log/5/stdout909 2> log/5/stderr909 ill need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind906 test 0912...[SMTP with SIZE support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind912 ../src/curl -q --output log/2/curl912.out --include --trace-ascii log/2/trace912 --trace-time smtp://127.0.0.1:40329/912 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/2/test912.eml > log/2/stdout912 2> log/2/stderr912 912: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 912 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind912 ../src/curl -q --output log/2/curl912.out --include --trace-ascii log/2/trace912 --trace-time smtp://127.0.0.1:40329/912 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/2/test912.eml > log/2/stdout912 2> log/2/stderr912 === End of file commands.log === Start of file server.cmd CAPA SIZE Testnum 912 === End of file server.cmd === Start of file smtp_server.log 10:32:41.385171 ====> Client connect 10:32:41.386717 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:41.390607 < "EHLO verifiedserver" 10:32:41.391252 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:41.394863 < "HELP" 10:32:41.395475 > "214 WE ROOLZ: 107342[CR][LF]" 10:32:41.395875 return proof we are we 10:32:41.401168 < "QUIT" 10:32:41.401764 > "221 curl ESMTP server signing off[CR][LF]" 10:32:41.407365 MAIN sockfilt said DISC 10:32:41.407841 ====> Client disconnected 10:32:41.408503 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:42.053559 ====> Client connect 10:32:42.056675 Received DATA (on stdin) 10:32:42.056906 > 160 bytes data, server => client 10:32:42.057013 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:42.057103 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:42.057180 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:42.058396 < 21 bytes data, client => server 10:32:42.058724 'EHLO verifiedserver\r\n' 10:32:42.060467 Received DATA (on stdin) 10:32:42.060628 > 53 bytes data, server => client 10:32:42.060747 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:42.063037 < 6 bytes data, client => server 10:32:42.063321 'HELP\r\n' 10:32:42.065508 Received DATA (on stdin) 10:32:42.065763 > 22 bytes data, server => client 10:32:42.065871 '214 WE ROOLZ: 107342\r\n' 10:32:42.069203 < 6 bytes data, client => server 10:32:42.069391 'QUIT\r\n' 10:32:42.071252 Received DATA (on stdin) 10:32:42.071423 > 35 bytes data, server => client 10:32:42.071511 '221 curl ESMTP server signing off\r\n' 10:32:42.075953 ====> Client disconnect 10:32:42.080039 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file test912.eml From: different To: another body === End of file test912.eml === Start of file valgrind912 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind912 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/5/server/smtp_server.pid" --logfile "log/5/smtp_server.log" --logdir "log/5" --portfile "log/5/server/smtp_server.port" --srcdir "/build/curl/src/curl/tests" --proto smtp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 34989 (log/5/server/smtp_server.port) RUN: SMTP server is PID 120432 port 34989 * pid smtp => 120432 120432 test 0909...[SMTP without SIZE support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind909 ../src/curl -q --output log/5/curl909.out --include --trace-ascii log/5/trace909 --trace-time smtp://127.0.0.1:34989/909 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/5/test909.eml > log/5/stdout909 2> log/5/stderr909 909: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 909 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind909 ../src/curl -q --output log/5/curl909.out --include --trace-ascii log/5/trace909 --trace-time smtp://127.0.0.1:34989/909 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/5/test909.eml > log/5/stdout909 2> log/5/stderr909 === End of file commands.log === Start of file server.cmd Testnum 909 === End of file server.cmd === Start of file smtp_server.log 10:32:40.910896 SMTP server listens on port IPv4/34989 10:32:40.911916 logged pid 120432 in log/5/server/smtp_server.pid 10:32:40.912280 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:40.578094 Running IPv4 version 10:32:40.578680 Listening on port 34989 10:32:40.579030 Wrote pid 120569 to log/5/server/smtp_sockfilt.pid 10:32:40.579219 Wrote port 34989 to log/5/server/smtp_server.port 10:32:40.579345 Received PING (on stdin) === End of file smtp_sockfilt.log === Start of file test909.eml From: different To: another body === End of file test909.eml === Start of file valgrind909 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The pacCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind913 ../src/curl -q --output log/4/curl913.out --include --trace-ascii log/4/trace913 --trace-time smtp://127.0.0.1:44481/913 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/4/test913.eml > log/4/stdout913 2> log/4/stderr913 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind914 ../src/curl -q --output log/3/curl914.out --include --trace-ascii log/3/trace914 --trace-time smtp://127.0.0.1:46117/914 --mail-rcpt recipient@example.com --mail-from invalid -T log/3/test914.eml > log/3/stdout914 2> log/3/stderr914 kage you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind909 test 0913...[SMTP with large message SIZE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind913 ../src/curl -q --output log/4/curl913.out --include --trace-ascii log/4/trace913 --trace-time smtp://127.0.0.1:44481/913 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/4/test913.eml > log/4/stdout913 2> log/4/stderr913 913: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 913 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind913 ../src/curl -q --output log/4/curl913.out --include --trace-ascii log/4/trace913 --trace-time smtp://127.0.0.1:44481/913 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/4/test913.eml > log/4/stdout913 2> log/4/stderr913 === End of file commands.log === Start of file server.cmd CAPA "SIZE 32" Testnum 913 === End of file server.cmd === Start of file smtp_server.log 10:32:41.905637 ====> Client connect 10:32:41.907256 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:41.918810 < "EHLO verifiedserver" 10:32:41.919480 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:41.923181 < "HELP" 10:32:41.923823 > "214 WE ROOLZ: 120358[CR][LF]" 10:32:41.924132 return proof we are we 10:32:41.928292 < "QUIT" 10:32:41.928830 > "221 curl ESMTP server signing off[CR][LF]" 10:32:41.934840 MAIN sockfilt said DISC 10:32:41.935367 ====> Client disconnected 10:32:41.936106 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:41.570927 ====> Client connect 10:32:41.576240 Received DATA (on stdin) 10:32:41.576526 > 160 bytes data, server => client 10:32:41.576679 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:41.576797 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:41.576899 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:41.579730 < 21 bytes data, client => server 10:32:41.579986 'EHLO verifiedserver\r\n' 10:32:41.589962 Received DATA (on stdin) 10:32:41.590202 > 53 bytes data, server => client 10:32:41.590331 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:41.591238 < 6 bytes data, client => server 10:32:41.591472 'HELP\r\n' 10:32:41.592875 Received DATA (on stdin) 10:32:41.593083 > 22 bytes data, server => client 10:32:41.593204 '214 WE ROOLZ: 120358\r\n' 10:32:41.596542 < 6 bytes data, client => server 10:32:41.596758 'QUIT\r\n' 10:32:41.598283 Received DATA (on stdin) 10:32:41.598549 > 35 bytes data, server => client 10:32:41.598717 '221 curl ESMTP server signing off\r\n' 10:32:41.599360 ====> Client disconnect 10:32:41.604504 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file test913.eml From: different To: another body === End of file test913.eml === Start of file valgrind913 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind913 test 0914...[SMTP invalid --mail-from] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind914 ../src/curl -q --output log/3/curl914.out --include --trace-ascii log/3/trace914 --trace-time smtp://127.0.0.1:46117/914 --mail-rcpt recipient@example.com --mail-from invalid -T log/3/test914.eml > log/3/stdout914 2> log/3/stderr914 914: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 914 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind914 ../src/curl -q --output log/3/curl914.out --include --trace-ascii log/3/trace914 --trace-time smtp://127.0.0.1:46117/914 --mail-rcpt recipient@example.com --mail-from invalid -T log/3/test914.eml > log/3/stdout914 2> log/3/stderr914 === End of file commands.log === Start of file server.cmd REPLY MAIL 501 not fine enough Testnum 914 === End of file server.cmd === Start of file smtp_server.log 10:32:42.012084 ====> Client connect 10:32:42.013757 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:42.026572 < "EHLO verifiedserver" 10:32:42.027408 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:42.038937 < "HELP" 10:32:42.039520 > "214 WE ROOLZ: 120346[CR][LF]" 10:32:42.039805 return proof we are we 10:32:42.042183 < "QUIT" 10:32:42.042739 > "221 curl ESMTP server signing off[CR][LF]" 10:32:42.045696 MAIN sockfilt said DISC 10:32:42.046162 ====> Client disconnected 10:32:42.046704 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:41.680007 ====> Client connect 10:32:41.682766 Received DATA (on stdin) 10:32:41.683109 > 160 bytes data, server => client 10:32:41.683271 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:41.683447 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:41.683554 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:41.690022 < 21 bytes data, client => server 10:32:41.690283 'EHLO verifiedserver\r\n' 10:32:41.696422 Received DATA (on stdin) 10:32:41.696749 > 53 bytes data, server => client 10:32:41.696907 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:41.701863 < 6 bytes data, client => server 10:32:41.703548 'HELP\r\n' 10:32:41.708859 Received DATA (on stdin) 10:32:41.709056 > 22 bytes data, server => client 10:32:41.709167 '214 WE ROOLZ: 120346\r\n' 10:32:41.710323 < 6 bytes data, client => server 10:32:41.710587 'QUIT\r\n' 10:32:41.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind916 ../src/curl -q --output log/8/curl916.out --include --trace-ascii log/8/trace916 --trace-time smtp://127.0.0.1:38345/916 --mail-rcpt invalid --mail-from sender@example.com -T - log/8/stdout916 2> log/8/stderr916 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind915 ../src/curl -q --output log/1/curl915.out --include --trace-ascii log/1/trace915 --trace-time smtp://127.0.0.1:42637/915 --mail-rcpt recipient@example.com -T - log/1/stdout915 2> log/1/stderr915 711786 Received DATA (on stdin) 10:32:41.712022 > 35 bytes data, server => client 10:32:41.712152 '221 curl ESMTP server signing off\r\n' 10:32:41.712909 ====> Client disconnect 10:32:41.717666 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file test914.eml From: different To: another body === End of file test914.eml === Start of file valgrind914 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind914 test 0916...[SMTP with invalid --mail-rcpt] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind916 ../src/curl -q --output log/8/curl916.out --include --trace-ascii log/8/trace916 --trace-time smtp://127.0.0.1:38345/916 --mail-rcpt invalid --mail-from sender@example.com -T - log/8/stdout916 2> log/8/stderr916 916: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 916 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind916 ../src/curl -q --output log/8/curl916.out --include --trace-ascii log/8/trace916 --trace-time smtp://127.0.0.1:38345/916 --mail-rcpt invalid --mail-from sender@example.com -T - log/8/stdout916 2> log/8/stderr916 === End of file commands.log === Start of file server.cmd Testnum 916 === End of file server.cmd === Start of file smtp_server.log 10:32:42.207666 ====> Client connect 10:32:42.213852 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:42.222056 < "EHLO verifiedserver" 10:32:42.223151 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:42.225612 < "HELP" 10:32:42.226207 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:42.226480 return proof we are we 10:32:42.229202 < "QUIT" 10:32:42.230157 > "221 curl ESMTP server signing off[CR][LF]" 10:32:42.243455 MAIN sockfilt said DISC 10:32:42.243985 ====> Client disconnected 10:32:42.244572 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:41.874299 ====> Client connect 10:32:41.878315 Received DATA (on stdin) 10:32:41.878837 > 160 bytes data, server => client 10:32:41.881848 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:41.883829 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:41.884124 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:41.887125 < 21 bytes data, client => server 10:32:41.887357 'EHLO verifiedserver\r\n' 10:32:41.892442 Received DATA (on stdin) 10:32:41.892644 > 53 bytes data, server => client 10:32:41.892811 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:41.893691 < 6 bytes data, client => server 10:32:41.893926 'HELP\r\n' 10:32:41.895260 Received DATA (on stdin) 10:32:41.895489 > 22 bytes data, server => client 10:32:41.895613 '214 WE ROOLZ: 107099\r\n' 10:32:41.896880 < 6 bytes data, client => server 10:32:41.897113 'QUIT\r\n' 10:32:41.900505 Received DATA (on stdin) 10:32:41.900829 > 35 bytes data, server => client 10:32:41.901068 '221 curl ESMTP server signing off\r\n' 10:32:41.906365 ====> Client disconnect 10:32:41.913274 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-916 From: different To: another body === End of file stdin-for-916 === Start of file valgrind916 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind916 test 0915...[SMTP without --mail-from] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind915 ../src/curl -q --output log/1/curl915.out --include --trace-ascii log/1/trace915 --trace-time smtp://127.0.0.1:42637/915 --mail-rcpt recipient@example.com -T - log/1/stdout915 2> log/1/stderr915 915: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 915 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind915 ../src/curl -q --output log/1/curl915.out --include --trace-ascii log/1/trace915 --trace-time smtp://127.0.0.1:42637/915 --mail-rcpt recipient@example.com -T - log/1/stdout915 2> log/1/stderr915 === End of file commands.log === Start of file server.cmd Testnum 915 === End of file server.cmd === Start of file smtp_server.log 10:32:42.188087 ====> Client connect 10:32:42.190223 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:42.195881 < "EHLO verifiedserver" 10:32:42.197135 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:42.202639 < "HELP" 10:32:42.204070 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:42.204665 retuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind917 ../src/curl -q --output log/7/curl917.out --include --trace-ascii log/7/trace917 --trace-time smtp://127.0.0.1:45189/917 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/7/stdout917 2> log/7/stderr917 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind919 ../src/curl -q --output log/2/curl919.out --include --trace-ascii log/2/trace919 --trace-time smtp://127.0.0.1:40329/919 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/2/stdout919 2> log/2/stderr919 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind918 ../src/curl -q --output log/6/curl918.out --include --trace-ascii log/6/trace918 --trace-time smtp://127.0.0.1:42767/918 --mail-rcpt recipient.one@example.com --mail-rcpt invalid --mail-rcpt recipient.three@example.com --mail-rcpt sTrAnGe --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/6/stdout918 2> log/6/stderr918 rn proof we are we 10:32:42.211266 < "QUIT" 10:32:42.211967 > "221 curl ESMTP server signing off[CR][LF]" 10:32:42.217767 MAIN sockfilt said DISC 10:32:42.218477 ====> Client disconnected 10:32:42.219216 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:41.854006 ====> Client connect 10:32:41.860238 Received DATA (on stdin) 10:32:41.860612 > 160 bytes data, server => client 10:32:41.860901 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:41.861160 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:41.861379 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:41.862782 < 21 bytes data, client => server 10:32:41.863025 'EHLO verifiedserver\r\n' 10:32:41.866770 Received DATA (on stdin) 10:32:41.867186 > 53 bytes data, server => client 10:32:41.867543 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:41.869836 < 6 bytes data, client => server 10:32:41.870138 'HELP\r\n' 10:32:41.873603 Received DATA (on stdin) 10:32:41.873961 > 22 bytes data, server => client 10:32:41.874119 '214 WE ROOLZ: 107206\r\n' 10:32:41.876492 < 6 bytes data, client => server 10:32:41.876763 'QUIT\r\n' 10:32:41.881058 Received DATA (on stdin) 10:32:41.881347 > 35 bytes data, server => client 10:32:41.881491 '221 curl ESMTP server signing off\r\n' 10:32:41.882377 ====> Client disconnect 10:32:41.888286 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-915 From: different To: another body === End of file stdin-for-915 === Start of file valgrind915 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind915 test 0917...[SMTP with multiple --mail-rcpt] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind917 ../src/curl -q --output log/7/curl917.out --include --trace-ascii log/7/trace917 --trace-time smtp://127.0.0.1:45189/917 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/7/stdout917 2> log/7/stderr917 917: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 917 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind917 ../src/curl -q --output log/7/curl917.out --include --trace-ascii log/7/trace917 --trace-time smtp://127.0.0.1:45189/917 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/7/stdout917 2> log/7/stderr917 === End of file commands.log === Start of file server.cmd Testnum 917 === End of file server.cmd === Start of file smtp_server.log 10:32:42.339431 ====> Client connect 10:32:42.341019 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:42.347776 < "EHLO verifiedserver" 10:32:42.348459 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:42.354616 < "HELP" 10:32:42.355139 > "214 WE ROOLZ: 120422[CR][LF]" 10:32:42.355486 return proof we are we 10:32:42.364082 < "QUIT" 10:32:42.364653 > "221 curl ESMTP server signing off[CR][LF]" 10:32:42.373038 MAIN sockfilt said DISC 10:32:42.373696 ====> Client disconnected 10:32:42.374525 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:42.006209 ====> Client connect 10:32:42.010653 Received DATA (on stdin) 10:32:42.010925 > 160 bytes data, server => client 10:32:42.011050 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:42.011145 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:42.011232 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:42.013952 < 21 bytes data, client => server 10:32:42.014189 'EHLO verifiedserver\r\n' 10:32:42.019602 Received DATA (on stdin) 10:32:42.019919 > 53 bytes data, server => client 10:32:42.020091 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:42.021578 < 6 bytes data, client => server 10:32:42.021855 'HELP\r\n' 10:32:42.026342 Received DATA (on stdin) 10:32:42.026671 > 22 bytes data, server => client 10:32:42.026798 '214 WE ROOLZ: 120422\r\n' 10:32:42.030694 < 6 bytes data, client => server 10:32:42.030991 'QUIT\r\n' 10:32:42.033718 Received DATA (on stdin) 10:32:42.033952 > 35 bytes data, server => client 10:32:42.034067 '221 curl ESMTP server signing off\r\n' 10:32:42.037865 ====> Client disconnect 10:32:42.046979 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-917 From: different To: another body === End of file stdin-for-917 === Start of file valgrind917 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind917 test 0919...[SMTP plain authentication with initial response] ../libtool --mode=execute /usr/bin/vaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind920 ../src/curl -q --output log/5/curl920.out --include --trace-ascii log/5/trace920 --trace-time smtp://127.0.0.1:34989/920 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/5/stdout920 2> log/5/stderr920 lgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind919 ../src/curl -q --output log/2/curl919.out --include --trace-ascii log/2/trace919 --trace-time smtp://127.0.0.1:40329/919 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/2/stdout919 2> log/2/stderr919 919: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 919 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind919 ../src/curl -q --output log/2/curl919.out --include --trace-ascii log/2/trace919 --trace-time smtp://127.0.0.1:40329/919 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/2/stdout919 2> log/2/stderr919 === End of file commands.log === Start of file server.cmd AUTH PLAIN REPLY AUTH 235 Authenticated Testnum 919 === End of file server.cmd === Start of file smtp_server.log 10:32:42.466413 ====> Client connect 10:32:42.468992 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:42.473098 < "EHLO verifiedserver" 10:32:42.474292 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:42.482280 < "HELP" 10:32:42.482747 > "214 WE ROOLZ: 107342[CR][LF]" 10:32:42.482981 return proof we are we 10:32:42.487313 < "QUIT" 10:32:42.487857 > "221 curl ESMTP server signing off[CR][LF]" 10:32:42.498245 MAIN sockfilt said DISC 10:32:42.498791 ====> Client disconnected 10:32:42.499542 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:43.134748 ====> Client connect 10:32:43.136862 Received DATA (on stdin) 10:32:43.137139 > 160 bytes data, server => client 10:32:43.137987 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:43.138213 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:43.138313 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:43.140730 < 21 bytes data, client => server 10:32:43.140976 'EHLO verifiedserver\r\n' 10:32:43.143340 Received DATA (on stdin) 10:32:43.143586 > 53 bytes data, server => client 10:32:43.143753 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:43.145770 < 6 bytes data, client => server 10:32:43.145991 'HELP\r\n' 10:32:43.153788 Received DATA (on stdin) 10:32:43.154062 > 22 bytes data, server => client 10:32:43.154170 '214 WE ROOLZ: 107342\r\n' 10:32:43.155535 < 6 bytes data, client => server 10:32:43.155807 'QUIT\r\n' 10:32:43.156915 Received DATA (on stdin) 10:32:43.157109 > 35 bytes data, server => client 10:32:43.157231 '221 curl ESMTP server signing off\r\n' 10:32:43.166830 ====> Client disconnect 10:32:43.167852 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-919 mail body === End of file stdin-for-919 === Start of file valgrind919 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind919 test 0918...[SMTP with multiple and invalid --mail-rcpt] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind918 ../src/curl -q --output log/6/curl918.out --include --trace-ascii log/6/trace918 --trace-time smtp://127.0.0.1:42767/918 --mail-rcpt recipient.one@example.com --mail-rcpt invalid --mail-rcpt recipient.three@example.com --mail-rcpt sTrAnGe --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/6/stdout918 2> log/6/stderr918 918: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 918 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind918 ../src/curl -q --output log/6/curl918.out --include --trace-ascii log/6/trace918 --trace-time smtp://127.0.0.1:42767/918 --mail-rcpt recipient.one@example.com --mail-rcpt invalid --mail-rcpt recipient.three@example.com --mail-rcpt sTrAnGe --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/6/stdout918 2> log/6/stderr918 === End of file commands.log === Start of file server.cmd Testnum 918 === End of file server.cmd === Start of file smtp_server.log 10:32:42.400309 ====> Client connect 10:32:42.402067 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:42.414566 < "EHLO verifiedserver" 10:32:42.415123 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:42.418947 < "HELP" 10:32:42.419645 > "214 WE ROOLZ: 120427[CR][LF]" 10:32:42.419890 return proof we are we 10:32:42.422795 < "QUIT" 10:32:42.423397 > "221 curl ESMTP server signing off[CR][LF]" 10:32:42.440125 MAIN sockfilt said DISC 10:32:42.441457 ====> Client disconnected 10:32:42.442593 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:42.068298 ====> Client connect 10:32:42.071057 Received DATA (on stdin) 10:32:42.071377 > 160 bytes data, server => client 10:32:42.071509 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:42.071614 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:42.071704 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:42.075395 < 21 bytes data, client => server 10:32:42.075653 'EHLO verifiedserver\r\n' 10:32:42.084183 Received DATA (on stdin) 10:32:42.084418 > 53 bytes data, server => client 10:32:42.084557 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:42.086312 < 6 bytes data, client => server 10:32:42.086646 'HELP\r\n' 10:32:42.088648 Received DATA (on stdin) 10:32:42.088859 > 22 bytes data, server => client 10:32:42.088948 '214 WE ROOLZ: 120427\r\n' 10:32:42.091062 < 6 bytes data, client => server 10:32:42.091301 'QUIT\r\n' 10:32:42.095128 Received DATA (on stdin) 10:32:42.095510 > 35 bytes data, server => client 10:32:42.095668 '221 curl ESMTP server signing off\r\n' 10:32:42.102566 ====> Client disconnect 10:32:42.109773 Received ACKD (on stdin) === End of fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind921 ../src/curl -q --output log/4/curl921.out --include --trace-ascii log/4/trace921 --trace-time smtp://127.0.0.1:44481/921 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass --sasl-ir -T - log/4/stdout921 2> log/4/stderr921 ile smtp_sockfilt.log === Start of file stdin-for-918 From: different To: another body === End of file stdin-for-918 === Start of file valgrind918 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind918 test 0920...[SMTP login authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind920 ../src/curl -q --output log/5/curl920.out --include --trace-ascii log/5/trace920 --trace-time smtp://127.0.0.1:34989/920 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/5/stdout920 2> log/5/stderr920 920: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 920 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind920 ../src/curl -q --output log/5/curl920.out --include --trace-ascii log/5/trace920 --trace-time smtp://127.0.0.1:34989/920 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --sasl-ir -T - log/5/stdout920 2> log/5/stderr920 === End of file commands.log === Start of file server.cmd AUTH LOGIN REPLY AUTH 334 UGFzc3dvcmQ6 REPLY c2VjcmV0 235 Authenticated Testnum 920 === End of file server.cmd === Start of file smtp_server.log 10:32:42.507117 ====> Client connect 10:32:42.508600 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:42.513940 < "EHLO verifiedserver" 10:32:42.514661 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:42.525811 < "HELP" 10:32:42.526434 > "214 WE ROOLZ: 120432[CR][LF]" 10:32:42.526747 return proof we are we 10:32:42.530668 < "QUIT" 10:32:42.531260 > "221 curl ESMTP server signing off[CR][LF]" 10:32:42.536823 MAIN sockfilt said DISC 10:32:42.537379 ====> Client disconnected 10:32:42.538196 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:42.175178 ====> Client connect 10:32:42.177626 Received DATA (on stdin) 10:32:42.177913 > 160 bytes data, server => client 10:32:42.178050 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:42.178146 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:42.178229 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:42.180359 < 21 bytes data, client => server 10:32:42.180583 'EHLO verifiedserver\r\n' 10:32:42.185698 Received DATA (on stdin) 10:32:42.185971 > 53 bytes data, server => client 10:32:42.186115 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:42.187690 < 6 bytes data, client => server 10:32:42.187900 'HELP\r\n' 10:32:42.195490 Received DATA (on stdin) 10:32:42.195722 > 22 bytes data, server => client 10:32:42.195842 '214 WE ROOLZ: 120432\r\n' 10:32:42.198694 < 6 bytes data, client => server 10:32:42.198943 'QUIT\r\n' 10:32:42.202845 Received DATA (on stdin) 10:32:42.203072 > 35 bytes data, server => client 10:32:42.203158 '221 curl ESMTP server signing off\r\n' 10:32:42.203873 ====> Client disconnect 10:32:42.206555 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-920 mail body === End of file stdin-for-920 === Start of file valgrind920 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind920 test 0921...[SMTP NTLM authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind921 ../src/curl -q --output log/4/curl921.out --include --trace-ascii log/4/trace921 --trace-time smtp://127.0.0.1:44481/921 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass --sasl-ir -T - log/4/stdout921 2> log/4/stderr921 921: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 921 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind921 ../src/curl -q --output log/4/curl921.out --include --trace-ascii log/4/trace921 --trace-time smtp://127.0.0.1:44481/921 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass --sasl-ir -T - log/4/stdout921 2> log/4/stderr921 === End of file commands.log === Start of file server.cmd AUTH NTLM REPLY AUTH 334 TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== REPLY TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= 235 Authenticated Testnum 921 === End of file server.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind922 ../src/curl -q --output log/3/curl922.out --include --trace-ascii log/3/trace922 --trace-time smtp://127.0.0.1:46117/922 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/3/stdout922 2> log/3/stderr922 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind923 ../src/curl -q --output log/8/curl923.out --include --trace-ascii log/8/trace923 --trace-time smtp://127.0.0.1:38345/923 --mail-rcpt recipient > log/8/stdout923 2> log/8/stderr923 cmd === Start of file smtp_server.log 10:32:42.960827 ====> Client connect 10:32:42.962320 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:42.972748 < "EHLO verifiedserver" 10:32:42.973420 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:42.978822 < "HELP" 10:32:42.979586 > "214 WE ROOLZ: 120358[CR][LF]" 10:32:42.980022 return proof we are we 10:32:42.986285 < "QUIT" 10:32:42.986882 > "221 curl ESMTP server signing off[CR][LF]" 10:32:42.993733 MAIN sockfilt said DISC 10:32:42.994299 ====> Client disconnected 10:32:42.996707 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:42.629059 ====> Client connect 10:32:42.631664 Received DATA (on stdin) 10:32:42.631878 > 160 bytes data, server => client 10:32:42.632018 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:42.632118 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:42.632204 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:42.637734 < 21 bytes data, client => server 10:32:42.637966 'EHLO verifiedserver\r\n' 10:32:42.642544 Received DATA (on stdin) 10:32:42.642801 > 53 bytes data, server => client 10:32:42.642915 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:42.643604 < 6 bytes data, client => server 10:32:42.643852 'HELP\r\n' 10:32:42.651007 Received DATA (on stdin) 10:32:42.651272 > 22 bytes data, server => client 10:32:42.651389 '214 WE ROOLZ: 120358\r\n' 10:32:42.652705 < 6 bytes data, client => server 10:32:42.653491 'QUIT\r\n' 10:32:42.658605 Received DATA (on stdin) 10:32:42.658889 > 35 bytes data, server => client 10:32:42.659025 '221 curl ESMTP server signing off\r\n' 10:32:42.659677 ====> Client disconnect 10:32:42.663367 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-921 mail body === End of file stdin-for-921 === Start of file valgrind921 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind921 test 0922...[SMTP OAuth 2.0 (XOAUTH2) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind922 ../src/curl -q --output log/3/curl922.out --include --trace-ascii log/3/trace922 --trace-time smtp://127.0.0.1:46117/922 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/3/stdout922 2> log/3/stderr922 922: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 922 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind922 ../src/curl -q --output log/3/curl922.out --include --trace-ascii log/3/trace922 --trace-time smtp://127.0.0.1:46117/922 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/3/stdout922 2> log/3/stderr922 === End of file commands.log === Start of file server.cmd AUTH XOAUTH2 REPLY AUTH 235 Authenticated Testnum 922 === End of file server.cmd === Start of file smtp_server.log 10:32:43.079402 ====> Client connect 10:32:43.080638 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:43.086874 < "EHLO verifiedserver" 10:32:43.087414 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:43.090834 < "HELP" 10:32:43.091463 > "214 WE ROOLZ: 120346[CR][LF]" 10:32:43.091786 return proof we are we 10:32:43.098349 < "QUIT" 10:32:43.098907 > "221 curl ESMTP server signing off[CR][LF]" 10:32:43.103476 MAIN sockfilt said DISC 10:32:43.105955 ====> Client disconnected 10:32:43.106697 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:42.746632 ====> Client connect 10:32:42.749644 Received DATA (on stdin) 10:32:42.749892 > 160 bytes data, server => client 10:32:42.749993 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:42.750075 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:42.750147 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:42.754685 < 21 bytes data, client => server 10:32:42.754941 'EHLO verifiedserver\r\n' 10:32:42.756446 Received DATA (on stdin) 10:32:42.756695 > 53 bytes data, server => client 10:32:42.756824 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:42.758760 < 6 bytes data, client => server 10:32:42.759016 'HELP\r\n' 10:32:42.760515 Received DATA (on stdin) 10:32:42.760764 > 22 bytes data, server => client 10:32:42.760877 '214 WE ROOLZ: 120346\r\n' 10:32:42.764303 < 6 bytes data, client => server 10:32:42.764533 'QUIT\r\n' 10:32:42.769345 Received DATA (on stdin) 10:32:42.769585 > 35 bytes data, server => client 10:32:42.769684 '221 curl ESMTP server signing off\r\n' 10:32:42.772060 ====> Client disconnect 10:32:42.777151 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-922 mail body === End of file stdin-for-922 === Start of file valgrind922 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process onCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind924 ../src/curl -q --output log/1/curl924.out --include --trace-ascii log/1/trace924 --trace-time smtp://127.0.0.1:42637/924 --mail-rcpt smith > log/1/stdout924 2> log/1/stderr924 a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind922 test 0923...[SMTP VRFY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind923 ../src/curl -q --output log/8/curl923.out --include --trace-ascii log/8/trace923 --trace-time smtp://127.0.0.1:38345/923 --mail-rcpt recipient > log/8/stdout923 2> log/8/stderr923 923: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 923 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind923 ../src/curl -q --output log/8/curl923.out --include --trace-ascii log/8/trace923 --trace-time smtp://127.0.0.1:38345/923 --mail-rcpt recipient > log/8/stdout923 2> log/8/stderr923 === End of file commands.log === Start of file server.cmd Testnum 923 === End of file server.cmd === Start of file smtp_server.log 10:32:43.182266 ====> Client connect 10:32:43.183444 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:43.186491 < "EHLO verifiedserver" 10:32:43.186954 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:43.188616 < "HELP" 10:32:43.189056 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:43.189283 return proof we are we 10:32:43.194687 < "QUIT" 10:32:43.195104 > "221 curl ESMTP server signing off[CR][LF]" 10:32:43.201539 MAIN sockfilt said DISC 10:32:43.202057 ====> Client disconnected 10:32:43.202628 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:42.850659 ====> Client connect 10:32:42.852483 Received DATA (on stdin) 10:32:42.852701 > 160 bytes data, server => client 10:32:42.852799 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:42.852877 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:42.852942 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:42.853700 < 21 bytes data, client => server 10:32:42.853891 'EHLO verifiedserver\r\n' 10:32:42.855979 Received DATA (on stdin) 10:32:42.856160 > 53 bytes data, server => client 10:32:42.856264 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:42.856987 < 6 bytes data, client => server 10:32:42.857159 'HELP\r\n' 10:32:42.858120 Received DATA (on stdin) 10:32:42.858283 > 22 bytes data, server => client 10:32:42.858379 '214 WE ROOLZ: 107099\r\n' 10:32:42.860706 < 6 bytes data, client => server 10:32:42.860905 'QUIT\r\n' 10:32:42.865210 Received DATA (on stdin) 10:32:42.865422 > 35 bytes data, server => client 10:32:42.865513 '221 curl ESMTP server signing off\r\n' 10:32:42.866908 ====> Client disconnect 10:32:42.872682 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind923 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind923 test 0924...[SMTP ambiguous VRFY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind924 ../src/curl -q --output log/1/curl924.out --include --trace-ascii log/1/trace924 --trace-time smtp://127.0.0.1:42637/924 --mail-rcpt smith > log/1/stdout924 2> log/1/stderr924 924: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 924 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind924 ../src/curl -q --output log/1/curl924.out --include --trace-ascii log/1/trace924 --trace-time smtp://127.0.0.1:42637/924 --mail-rcpt smith > log/1/stdout924 2> log/1/stderr924 === End of file commands.log === Start of file server.cmd Testnum 924 === End of file server.cmd === Start of file smtp_server.log 10:32:43.186850 ====> Client connect 10:32:43.190130 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:43.194057 < "EHLO verifiedserver" 10:32:43.195084 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:43.199154 < "HELP" 10:32:43.199833 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:43.200171 return proof we are we 10:32:43.205044 < "QUIT" 10:32:43.205578 > "221 curl ESMTP server signing off[CR][LF]" 10:32:43.207452 MAIN sockfilt said DISC 10:32:43.207993 ====> Client disconnected 10:32:43.208648 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:42.855271 ====> Client connect 10:32:42.859639 Received DATA (on stdin) 10:32:42.859908 > 160 bytes data, server => client 10:32:42.860044 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:42.860158 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:42.860248 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:42.861646 < 21 bytes data, client => server 10:32:42.861839 'EHLO verifiedserver\r\n' 10:32:42.863645 Received DATA (on stdin) 10:32:42.863837 > 53 bytes data, server => client 10:32:42.864482 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:42.865942 < 6 bytes data, client => server 10:32:42.866195 'HELP\r\n' 10:32:42.869544 Received DATA (on stdin) 10:32:42.869723 > 22 bytes data, server => client 10:32:42.869810 '214 WE ROOLZ: 107206\r\n' 10:32:42.871004 < 6 bytes data, client => server 10:32:42.871234 'QUIT\r\n' 10:32:42.874975 Received DATA (on stdin) 10:32:42.875153 > 35 bytes data, server => client 10:32:42.875256 '221 curl ESMTP server signing off\r\n' 10:32:42.875934 ====> Client disconnect 10:32:42.878106 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind924 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind925 ../src/curl -q --output log/7/curl925.out --include --trace-ascii log/7/trace925 --trace-time smtp://127.0.0.1:45189/925 --mail-rcpt user@example.net > log/7/stdout925 2> log/7/stderr925 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind926 ../src/curl -q --output log/2/curl926.out --include --trace-ascii log/2/trace926 --trace-time smtp://127.0.0.1:40329/926 --mail-rcpt recipient > log/2/stdout926 2> log/2/stderr926 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind927 ../src/curl -q --output log/6/curl927.out --include --trace-ascii log/6/trace927 --trace-time smtp://127.0.0.1:42767/927 --mail-rcpt Friends -X EXPN > log/6/stdout927 2> log/6/stderr927 not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind924 test 0925...[SMTP external VRFY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind925 ../src/curl -q --output log/7/curl925.out --include --trace-ascii log/7/trace925 --trace-time smtp://127.0.0.1:45189/925 --mail-rcpt user@example.net > log/7/stdout925 2> log/7/stderr925 925: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 925 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind925 ../src/curl -q --output log/7/curl925.out --include --trace-ascii log/7/trace925 --trace-time smtp://127.0.0.1:45189/925 --mail-rcpt user@example.net > log/7/stdout925 2> log/7/stderr925 === End of file commands.log === Start of file server.cmd Testnum 925 === End of file server.cmd === Start of file smtp_server.log 10:32:43.433850 ====> Client connect 10:32:43.435313 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:43.437891 < "EHLO verifiedserver" 10:32:43.438588 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:43.441583 < "HELP" 10:32:43.442209 > "214 WE ROOLZ: 120422[CR][LF]" 10:32:43.442524 return proof we are we 10:32:43.448637 < "QUIT" 10:32:43.449178 > "221 curl ESMTP server signing off[CR][LF]" 10:32:43.457687 MAIN sockfilt said DISC 10:32:43.458252 ====> Client disconnected 10:32:43.458971 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:43.098605 ====> Client connect 10:32:43.104298 Received DATA (on stdin) 10:32:43.104597 > 160 bytes data, server => client 10:32:43.104734 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:43.104829 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:43.104904 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:43.105896 < 21 bytes data, client => server 10:32:43.106131 'EHLO verifiedserver\r\n' 10:32:43.107602 Received DATA (on stdin) 10:32:43.107856 > 53 bytes data, server => client 10:32:43.107971 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:43.109655 < 6 bytes data, client => server 10:32:43.109914 'HELP\r\n' 10:32:43.112625 Received DATA (on stdin) 10:32:43.112871 > 22 bytes data, server => client 10:32:43.112988 '214 WE ROOLZ: 120422\r\n' 10:32:43.114260 < 6 bytes data, client => server 10:32:43.114503 'QUIT\r\n' 10:32:43.118658 Received DATA (on stdin) 10:32:43.118859 > 35 bytes data, server => client 10:32:43.118967 '221 curl ESMTP server signing off\r\n' 10:32:43.124599 ====> Client disconnect 10:32:43.128017 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind925 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind925 test 0926...[SMTP unknown user VRFY] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind926 ../src/curl -q --output log/2/curl926.out --include --trace-ascii log/2/trace926 --trace-time smtp://127.0.0.1:40329/926 --mail-rcpt recipient > log/2/stdout926 2> log/2/stderr926 926: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 926 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind926 ../src/curl -q --output log/2/curl926.out --include --trace-ascii log/2/trace926 --trace-time smtp://127.0.0.1:40329/926 --mail-rcpt recipient > log/2/stdout926 2> log/2/stderr926 === End of file commands.log === Start of file server.cmd REPLY VRFY 550 Unknown user Testnum 926 === End of file server.cmd === Start of file smtp_server.log 10:32:43.567027 ====> Client connect 10:32:43.568458 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:43.579691 < "EHLO verifiedserver" 10:32:43.580367 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:43.590508 < "HELP" 10:32:43.591179 > "214 WE ROOLZ: 107342[CR][LF]" 10:32:43.591535 return proof we are we 10:32:43.598448 < "QUIT" 10:32:43.598987 > "221 curl ESMTP server signing off[CR][LF]" 10:32:43.600559 MAIN sockfilt said DISC 10:32:43.601030 ====> Client disconnected 10:32:43.601642 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:44.231529 ====> Client connect 10:32:44.238124 Received DATA (on stdin) 10:32:44.238407 > 160 bytes data, server => client 10:32:44.238849 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:44.239024 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:44.239130 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:44.244212 < 21 bytes data, client => server 10:32:44.244441 'EHLO verifiedserver\r\n' 10:32:44.250162 Received DATA (on stdin) 10:32:44.250434 > 53 bytes data, server => client 10:32:44.250760 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:44.254749 < 6 bytes data, client => server 10:32:44.255003 'HELP\r\n' 10:32:44.260752 Received DATA (oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind928 ../src/curl -q --output log/5/curl928.out --include --trace-ascii log/5/trace928 --trace-time smtp://127.0.0.1:34989/928 > log/5/stdout928 2> log/5/stderr928 n stdin) 10:32:44.260929 > 22 bytes data, server => client 10:32:44.261039 '214 WE ROOLZ: 107342\r\n' 10:32:44.262292 < 6 bytes data, client => server 10:32:44.262592 'QUIT\r\n' 10:32:44.268234 Received DATA (on stdin) 10:32:44.268463 > 35 bytes data, server => client 10:32:44.268582 '221 curl ESMTP server signing off\r\n' 10:32:44.269193 ====> Client disconnect 10:32:44.271907 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind926 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind926 test 0927...[SMTP mailing list EXPN (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind927 ../src/curl -q --output log/6/curl927.out --include --trace-ascii log/6/trace927 --trace-time smtp://127.0.0.1:42767/927 --mail-rcpt Friends -X EXPN > log/6/stdout927 2> log/6/stderr927 927: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 927 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind927 ../src/curl -q --output log/6/curl927.out --include --trace-ascii log/6/trace927 --trace-time smtp://127.0.0.1:42767/927 --mail-rcpt Friends -X EXPN > log/6/stdout927 2> log/6/stderr927 === End of file commands.log === Start of file server.cmd Testnum 927 === End of file server.cmd === Start of file smtp_server.log 10:32:43.585286 ====> Client connect 10:32:43.586973 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:43.591100 < "EHLO verifiedserver" 10:32:43.591827 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:43.598002 < "HELP" 10:32:43.598601 > "214 WE ROOLZ: 120427[CR][LF]" 10:32:43.598854 return proof we are we 10:32:43.605335 < "QUIT" 10:32:43.606015 > "221 curl ESMTP server signing off[CR][LF]" 10:32:43.607495 MAIN sockfilt said DISC 10:32:43.607990 ====> Client disconnected 10:32:43.608600 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:43.253618 ====> Client connect 10:32:43.256675 Received DATA (on stdin) 10:32:43.256941 > 160 bytes data, server => client 10:32:43.257088 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:43.257181 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:43.257263 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:43.258395 < 21 bytes data, client => server 10:32:43.258685 'EHLO verifiedserver\r\n' 10:32:43.263971 Received DATA (on stdin) 10:32:43.264212 > 53 bytes data, server => client 10:32:43.264338 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:43.265474 < 6 bytes data, client => server 10:32:43.265687 'HELP\r\n' 10:32:43.267690 Received DATA (on stdin) 10:32:43.267851 > 22 bytes data, server => client 10:32:43.267961 '214 WE ROOLZ: 120427\r\n' 10:32:43.271368 < 6 bytes data, client => server 10:32:43.271578 'QUIT\r\n' 10:32:43.275040 Received DATA (on stdin) 10:32:43.275270 > 35 bytes data, server => client 10:32:43.275392 '221 curl ESMTP server signing off\r\n' 10:32:43.276028 ====> Client disconnect 10:32:43.278110 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind927 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind927 test 0928...[SMTP HELP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind928 ../src/curl -q --output log/5/curl928.out --include --trace-ascii log/5/trace928 --trace-time smtp://127.0.0.1:34989/928 > log/5/stdout928 2> log/5/stderr928 928: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 928 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind928 ../src/curl -q --output log/5/curl928.out --include --trace-ascii log/5/trace928 --trace-time smtp://127.0.0.1:34989/928 > log/5/stdout928 2> log/5/stderr928 === End of file commands.log === Start of file server.cmd Testnum 928 === End of file server.cmd === Start of file smtp_server.log 10:32:43.627744 ====> Client connect 10:32:43.629253 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:43.632874 < "EHLO verifiedserver" 10:32:43.633414 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:43.635921 < "HELP" 10:32:43.636530 > "214 WE ROOLZ: 120432[CR][LF]" 10:32:43.636901 return proof we are we 10:32:43.640768 < "QUIT" 10:32:43.641357 > "221 curl ESMTP server signing off[CR][LF]" 10:32:43.647166 MAIN sockfilt said DISC 10:32:43.647729 ====> Client disconnected 10:32:43.648377 Awaiting input CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind929 ../src/curl -q --output log/4/curl929.out --include --trace-ascii log/4/trace929 --trace-time smtp://127.0.0.1:44481/929 -X NOOP -I > log/4/stdout929 2> log/4/stderr929 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind931 ../src/curl -q --output log/8/curl931.out --include --trace-ascii log/8/trace931 --trace-time smtp://127.0.0.1:38345/%0d%0a/931 > log/8/stdout931 2> log/8/stderr931 === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:43.295715 ====> Client connect 10:32:43.298665 Received DATA (on stdin) 10:32:43.298903 > 160 bytes data, server => client 10:32:43.299032 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:43.299127 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:43.299205 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:43.300324 < 21 bytes data, client => server 10:32:43.300571 'EHLO verifiedserver\r\n' 10:32:43.302448 Received DATA (on stdin) 10:32:43.302742 > 53 bytes data, server => client 10:32:43.302877 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:43.303725 < 6 bytes data, client => server 10:32:43.303957 'HELP\r\n' 10:32:43.306306 Received DATA (on stdin) 10:32:43.306644 > 22 bytes data, server => client 10:32:43.306850 '214 WE ROOLZ: 120432\r\n' 10:32:43.308362 < 6 bytes data, client => server 10:32:43.308635 'QUIT\r\n' 10:32:43.311044 Received DATA (on stdin) 10:32:43.311271 > 35 bytes data, server => client 10:32:43.311386 '221 curl ESMTP server signing off\r\n' 10:32:43.313127 ====> Client disconnect 10:32:43.318656 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind928 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind928 test 0929...[SMTP NOOP (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind929 ../src/curl -q --output log/4/curl929.out --include --trace-ascii log/4/trace929 --trace-time smtp://127.0.0.1:44481/929 -X NOOP -I > log/4/stdout929 2> log/4/stderr929 929: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 929 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind929 ../src/curl -q --output log/4/curl929.out --include --trace-ascii log/4/trace929 --trace-time smtp://127.0.0.1:44481/929 -X NOOP -I > log/4/stdout929 2> log/4/stderr929 === End of file commands.log === Start of file server.cmd Testnum 929 === End of file server.cmd === Start of file smtp_server.log 10:32:44.065204 ====> Client connect 10:32:44.067125 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:44.071859 < "EHLO verifiedserver" 10:32:44.072558 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:44.082479 < "HELP" 10:32:44.083357 > "214 WE ROOLZ: 120358[CR][LF]" 10:32:44.083854 return proof we are we 10:32:44.094814 < "QUIT" 10:32:44.095586 > "221 curl ESMTP server signing off[CR][LF]" 10:32:44.102119 MAIN sockfilt said DISC 10:32:44.102691 ====> Client disconnected 10:32:44.103413 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:43.733090 ====> Client connect 10:32:43.736085 Received DATA (on stdin) 10:32:43.736370 > 160 bytes data, server => client 10:32:43.736500 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:43.736605 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:43.736685 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:43.739217 < 21 bytes data, client => server 10:32:43.739432 'EHLO verifiedserver\r\n' 10:32:43.742249 Received DATA (on stdin) 10:32:43.743006 > 53 bytes data, server => client 10:32:43.743232 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:43.747500 < 6 bytes data, client => server 10:32:43.747884 'HELP\r\n' 10:32:43.755962 Received DATA (on stdin) 10:32:43.756239 > 22 bytes data, server => client 10:32:43.756371 '214 WE ROOLZ: 120358\r\n' 10:32:43.758686 < 6 bytes data, client => server 10:32:43.758958 'QUIT\r\n' 10:32:43.765709 Received DATA (on stdin) 10:32:43.766018 > 35 bytes data, server => client 10:32:43.766231 '221 curl ESMTP server signing off\r\n' 10:32:43.769982 ====> Client disconnect 10:32:43.773824 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind929 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind929 test 0931...[SMTP with URL-encoded CR LF in the URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind931 ../src/curl -q --output log/8/curl931.out --include --trace-ascii log/8/trace931 --trace-time smtp://127.0.0.1:38345/%0d%0a/931 > log/8/stdout931 2> log/8/stderr931 curl returned 1, when expecting 3 931: exit FAILED == Contents of files in the log/8/ dir after test 931 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind931 ../src/curl -q --output log/8/curl931.out --include --trace-ascii log/8/trace931 --trace-time smtp://127.0.0.1:38345/%0d%0a/931 > log/8/stdout931 2> log/8/stderr931 === End of file commands.log === Start of file server.cmd Testnum 931 === End of file server.cmd === StarCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind930 ../src/curl -q --output log/3/curl930.out --include --trace-ascii log/3/trace930 --trace-time smtp://127.0.0.1:46117/930 -X RSET -I > log/3/stdout930 2> log/3/stderr930 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind932 ../src/curl -q --output log/1/curl932.out --include --trace-ascii log/1/trace932 --trace-time smtp://127.0.0.1:42637/932 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - > log/1/stdout932 2> log/1/stderr932 t of file smtp_server.log 10:32:44.157324 ====> Client connect 10:32:44.158652 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:44.166572 < "EHLO verifiedserver" 10:32:44.167061 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:44.170556 < "HELP" 10:32:44.170979 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:44.171202 return proof we are we 10:32:44.174191 < "QUIT" 10:32:44.174646 > "221 curl ESMTP server signing off[CR][LF]" 10:32:44.177601 MAIN sockfilt said DISC 10:32:44.177982 ====> Client disconnected 10:32:44.178512 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:43.825558 ====> Client connect 10:32:43.828656 Received DATA (on stdin) 10:32:43.828857 > 160 bytes data, server => client 10:32:43.828970 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:43.829075 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:43.829173 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:43.830087 < 21 bytes data, client => server 10:32:43.830337 'EHLO verifiedserver\r\n' 10:32:43.836405 Received DATA (on stdin) 10:32:43.836564 > 53 bytes data, server => client 10:32:43.836669 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:43.837375 < 6 bytes data, client => server 10:32:43.837559 'HELP\r\n' 10:32:43.839975 Received DATA (on stdin) 10:32:43.840139 > 22 bytes data, server => client 10:32:43.840231 '214 WE ROOLZ: 107099\r\n' 10:32:43.841303 < 6 bytes data, client => server 10:32:43.841507 'QUIT\r\n' 10:32:43.843666 Received DATA (on stdin) 10:32:43.843812 > 35 bytes data, server => client 10:32:43.843908 '221 curl ESMTP server signing off\r\n' 10:32:43.844347 ====> Client disconnect 10:32:43.847023 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind931 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind931 test 0930...[SMTP RSET (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind930 ../src/curl -q --output log/3/curl930.out --include --trace-ascii log/3/trace930 --trace-time smtp://127.0.0.1:46117/930 -X RSET -I > log/3/stdout930 2> log/3/stderr930 930: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 930 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind930 ../src/curl -q --output log/3/curl930.out --include --trace-ascii log/3/trace930 --trace-time smtp://127.0.0.1:46117/930 -X RSET -I > log/3/stdout930 2> log/3/stderr930 === End of file commands.log === Start of file server.cmd Testnum 930 === End of file server.cmd === Start of file smtp_server.log 10:32:44.158140 ====> Client connect 10:32:44.159274 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:44.166572 < "EHLO verifiedserver" 10:32:44.167100 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:44.169634 < "HELP" 10:32:44.170185 > "214 WE ROOLZ: 120346[CR][LF]" 10:32:44.170435 return proof we are we 10:32:44.173350 < "QUIT" 10:32:44.174283 > "221 curl ESMTP server signing off[CR][LF]" 10:32:44.175674 MAIN sockfilt said DISC 10:32:44.176059 ====> Client disconnected 10:32:44.176567 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:43.826602 ====> Client connect 10:32:43.828260 Received DATA (on stdin) 10:32:43.828531 > 160 bytes data, server => client 10:32:43.828637 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:43.828716 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:43.828783 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:43.834699 < 21 bytes data, client => server 10:32:43.834955 'EHLO verifiedserver\r\n' 10:32:43.836072 Received DATA (on stdin) 10:32:43.836251 > 53 bytes data, server => client 10:32:43.836349 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:43.837017 < 6 bytes data, client => server 10:32:43.837229 'HELP\r\n' 10:32:43.839212 Received DATA (on stdin) 10:32:43.839408 > 22 bytes data, server => client 10:32:43.839510 '214 WE ROOLZ: 120346\r\n' 10:32:43.841677 < 6 bytes data, client => server 10:32:43.841828 'QUIT\r\n' 10:32:43.843321 Received DATA (on stdin) 10:32:43.843460 > 35 bytes data, server => client 10:32:43.843555 '221 curl ESMTP server signing off\r\n' 10:32:43.844118 ====> Client disconnect 10:32:43.845110 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind930 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind930 test 0932...[SMTP CRAM-MD5 graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind932 ../src/curl -q --output log/1/curl932.out --incCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind933 ../src/curl -q --output log/7/curl933.out --include --trace-ascii log/7/trace933 --trace-time smtp://127.0.0.1:45189/933 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - > log/7/stdout933 2> log/7/stderr933 lude --trace-ascii log/1/trace932 --trace-time smtp://127.0.0.1:42637/932 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - > log/1/stdout932 2> log/1/stderr932 932: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 932 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind932 ../src/curl -q --output log/1/curl932.out --include --trace-ascii log/1/trace932 --trace-time smtp://127.0.0.1:42637/932 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - > log/1/stdout932 2> log/1/stderr932 === End of file commands.log === Start of file server.cmd AUTH CRAM-MD5 REPLY AUTH 334 Rubbish REPLY * 501 AUTH exchange cancelled by client Testnum 932 === End of file server.cmd === Start of file smtp_server.log 10:32:44.175937 ====> Client connect 10:32:44.179393 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:44.180698 < "EHLO verifiedserver" 10:32:44.181790 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:44.194360 < "HELP" 10:32:44.194847 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:44.195133 return proof we are we 10:32:44.198093 < "QUIT" 10:32:44.198561 > "221 curl ESMTP server signing off[CR][LF]" 10:32:44.202026 MAIN sockfilt said DISC 10:32:44.202551 ====> Client disconnected 10:32:44.203151 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:43.844371 ====> Client connect 10:32:43.846167 Received DATA (on stdin) 10:32:43.846424 > 160 bytes data, server => client 10:32:43.846777 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:43.846890 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:43.846975 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:43.847916 < 21 bytes data, client => server 10:32:43.848087 'EHLO verifiedserver\r\n' 10:32:43.850248 Received DATA (on stdin) 10:32:43.850501 > 53 bytes data, server => client 10:32:43.851208 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:43.859513 < 6 bytes data, client => server 10:32:43.859744 'HELP\r\n' 10:32:43.864401 Received DATA (on stdin) 10:32:43.864566 > 22 bytes data, server => client 10:32:43.864660 '214 WE ROOLZ: 107206\r\n' 10:32:43.866297 < 6 bytes data, client => server 10:32:43.866581 'QUIT\r\n' 10:32:43.867672 Received DATA (on stdin) 10:32:43.867852 > 35 bytes data, server => client 10:32:43.867951 '221 curl ESMTP server signing off\r\n' 10:32:43.868576 ====> Client disconnect 10:32:43.876389 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind932 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind932 test 0933...[SMTP NTLM graceful cancellation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind933 ../src/curl -q --output log/7/curl933.out --include --trace-ascii log/7/trace933 --trace-time smtp://127.0.0.1:45189/933 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - > log/7/stdout933 2> log/7/stderr933 933: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 933 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind933 ../src/curl -q --output log/7/curl933.out --include --trace-ascii log/7/trace933 --trace-time smtp://127.0.0.1:45189/933 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T - > log/7/stdout933 2> log/7/stderr933 === End of file commands.log === Start of file server.cmd AUTH NTLM REPLY AUTH 334 NTLM supported REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 334 Rubbish REPLY * 501 AUTH exchange cancelled by client Testnum 933 === End of file server.cmd === Start of file smtp_server.log 10:32:44.389891 ====> Client connect 10:32:44.391292 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:44.402690 < "EHLO verifiedserver" 10:32:44.403156 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:44.405245 < "HELP" 10:32:44.406018 > "214 WE ROOLZ: 120422[CR][LF]" 10:32:44.406267 return proof we are we 10:32:44.413003 < "QUIT" 10:32:44.413711 > "221 curl ESMTP server signing off[CR][LF]" 10:32:44.417644 MAIN sockfilt said DISC 10:32:44.418123 ====> Client disconnected 10:32:44.418695 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:44.057107 ====> Client connect 10:32:44.062785 Received DATA (on stdin) 10:32:44.063049 > 160 bytes data, server => client 10:32:44.063178 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:44.063265 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:44.063335 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:44.065289 < 21 bytes data, client => server 10:32:44.065534 'EHLO verifiedserver\r\n' 10:32:44.072172 Received DATA (on stdin) 10:32:44.072346 > 53 bytes data, server => client 10:32:44.072450 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:44.073312 < 6 bytes data, client => server 10:32:44.073586 'HELP\r\n' 10:32:44.075018 Received DATA (on stdin) 10:32:44.075187 > 22 bytes data, server => client 10:32:44.075279 '214 WE ROOLZ: 120422\r\n' 10:32:44.078693 < 6 bytes data, client => server 10:32:44.078924 'QUIT\r\n' 10:32:44.082812 Received DATA (on stdin) 10:32:44.083101 > 35 bytes data, server => client 10:32:44.083233 '221 curl ESMTP server signing off\r\n' 10:32:44.085750 ====> Client disconnect 10:32:44.087173 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind933 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matchCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind935 ../src/curl -q --output log/2/curl935.out --include --trace-ascii log/2/trace935 --trace-time smtp://127.0.0.1:40329/935 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/2/stdout935 2> log/2/stderr935 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind939 ../src/curl -q --output log/5/curl939.out --include --trace-ascii log/5/trace939 --trace-time smtp://127.0.0.1:34989/939 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/5/stdout939 2> log/5/stderr939 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind936 ../src/curl -q --output log/6/curl936.out --include --trace-ascii log/6/trace936 --trace-time smtp://127.0.0.1:42767/936 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/6/stdout936 2> log/6/stderr936 ing: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind933 test 0935...[SMTP CRAM-MD5 authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind935 ../src/curl -q --output log/2/curl935.out --include --trace-ascii log/2/trace935 --trace-time smtp://127.0.0.1:40329/935 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/2/stdout935 2> log/2/stderr935 935: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 935 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind935 ../src/curl -q --output log/2/curl935.out --include --trace-ascii log/2/trace935 --trace-time smtp://127.0.0.1:40329/935 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/2/stdout935 2> log/2/stderr935 === End of file commands.log === Start of file server.cmd AUTH CRAM-MD5 PLAIN REPLY "AUTH CRAM-MD5" 334 Rubbish REPLY * 501 AUTH exchange cancelled by client REPLY "AUTH PLAIN" 334 PLAIN supported REPLY AHVzZXIAc2VjcmV0 235 Authenticated Testnum 935 === End of file server.cmd === Start of file smtp_server.log 10:32:44.527862 ====> Client connect 10:32:44.529248 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:44.538121 < "EHLO verifiedserver" 10:32:44.538699 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:44.549445 < "HELP" 10:32:44.550144 > "214 WE ROOLZ: 107342[CR][LF]" 10:32:44.550447 return proof we are we 10:32:44.557101 < "QUIT" 10:32:44.557700 > "221 curl ESMTP server signing off[CR][LF]" 10:32:44.563580 MAIN sockfilt said DISC 10:32:44.564857 ====> Client disconnected 10:32:44.565646 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:45.196098 ====> Client connect 10:32:45.202593 Received DATA (on stdin) 10:32:45.202895 > 160 bytes data, server => client 10:32:45.203026 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:45.203131 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:45.203214 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:45.204323 < 21 bytes data, client => server 10:32:45.204564 'EHLO verifiedserver\r\n' 10:32:45.214511 Received DATA (on stdin) 10:32:45.214792 > 53 bytes data, server => client 10:32:45.214966 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:45.215691 < 6 bytes data, client => server 10:32:45.215908 'HELP\r\n' 10:32:45.219149 Received DATA (on stdin) 10:32:45.219395 > 22 bytes data, server => client 10:32:45.219503 '214 WE ROOLZ: 107342\r\n' 10:32:45.220808 < 6 bytes data, client => server 10:32:45.221027 'QUIT\r\n' 10:32:45.226724 Received DATA (on stdin) 10:32:45.226961 > 35 bytes data, server => client 10:32:45.227062 '221 curl ESMTP server signing off\r\n' 10:32:45.230669 ====> Client disconnect 10:32:45.233131 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-935 mail body === End of file stdin-for-935 === Start of file valgrind935 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind935 test 0939...[RFC821-only SMTP with username and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind939 ../src/curl -q --output log/5/curl939.out --include --trace-ascii log/5/trace939 --trace-time smtp://127.0.0.1:34989/939 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/5/stdout939 2> log/5/stderr939 939: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 939 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind939 ../src/curl -q --output log/5/curl939.out --include --trace-ascii log/5/trace939 --trace-time smtp://127.0.0.1:34989/939 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/5/stdout939 2> log/5/stderr939 === End of file commands.log === Start of file server.cmd REPLY EHLO 500 Command unrecognized Testnum 939 === End of file server.cmd === Start of file smtp_server.log 10:32:44.614674 ====> Client connect 10:32:44.616870 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:44.619688 < "EHLO verifiedserver" 10:32:44.620208 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:44.625905 < "HELP" 10:32:44.626531 > "214 WE ROOLZ: 120432[CR][LF]" 10:32:44.626866 return proof we are we 10:32:44.630110 < "QUIT" 10:32:44.630642 > "221 curl ESMTP server signing off[CR][LF]" 10:32:44.636263 MAIN sockfilt said DISC 10:32:44.636738 ====> Client disconnected 10:32:44.637339 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:44.282899 ====> Client connect 10:32:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind940 ../src/curl -q --output log/4/curl940.out --include --trace-ascii log/4/trace940 --trace-time smtp://127.0.0.1:44481/940 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/4/stdout940 2> log/4/stderr940 44.285886 Received DATA (on stdin) 10:32:44.286202 > 160 bytes data, server => client 10:32:44.286368 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:44.286575 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:44.286694 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:44.287731 < 21 bytes data, client => server 10:32:44.287996 'EHLO verifiedserver\r\n' 10:32:44.289709 Received DATA (on stdin) 10:32:44.289910 > 53 bytes data, server => client 10:32:44.290026 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:44.293549 < 6 bytes data, client => server 10:32:44.293800 'HELP\r\n' 10:32:44.296178 Received DATA (on stdin) 10:32:44.296368 > 22 bytes data, server => client 10:32:44.296452 '214 WE ROOLZ: 120432\r\n' 10:32:44.297916 < 6 bytes data, client => server 10:32:44.298147 'QUIT\r\n' 10:32:44.300039 Received DATA (on stdin) 10:32:44.300223 > 35 bytes data, server => client 10:32:44.300312 '221 curl ESMTP server signing off\r\n' 10:32:44.300891 ====> Client disconnect 10:32:44.308254 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-939 mail body === End of file stdin-for-939 === Start of file valgrind939 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind939 test 0936...[SMTP NTLM authentication with SASL downgrade] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind936 ../src/curl -q --output log/6/curl936.out --include --trace-ascii log/6/trace936 --trace-time smtp://127.0.0.1:42767/936 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/6/stdout936 2> log/6/stderr936 936: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 936 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind936 ../src/curl -q --output log/6/curl936.out --include --trace-ascii log/6/trace936 --trace-time smtp://127.0.0.1:42767/936 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/6/stdout936 2> log/6/stderr936 === End of file commands.log === Start of file server.cmd AUTH NTLM PLAIN REPLY "AUTH NTLM" 334 NTLM supported REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 334 Rubbish REPLY * 501 AUTH exchange cancelled by client REPLY "AUTH PLAIN" 334 PLAIN supported REPLY AHVzZXIAc2VjcmV0 235 Authenticated Testnum 936 === End of file server.cmd === Start of file smtp_server.log 10:32:44.588199 ====> Client connect 10:32:44.589810 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:44.593627 < "EHLO verifiedserver" 10:32:44.595031 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:44.598324 < "HELP" 10:32:44.598965 > "214 WE ROOLZ: 120427[CR][LF]" 10:32:44.599340 return proof we are we 10:32:44.602482 < "QUIT" 10:32:44.603434 > "221 curl ESMTP server signing off[CR][LF]" 10:32:44.608326 MAIN sockfilt said DISC 10:32:44.608827 ====> Client disconnected 10:32:44.609456 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:44.256448 ====> Client connect 10:32:44.259349 Received DATA (on stdin) 10:32:44.259599 > 160 bytes data, server => client 10:32:44.259734 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:44.259828 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:44.259908 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:44.260992 < 21 bytes data, client => server 10:32:44.261251 'EHLO verifiedserver\r\n' 10:32:44.263424 Received DATA (on stdin) 10:32:44.263678 > 53 bytes data, server => client 10:32:44.264614 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:44.265728 < 6 bytes data, client => server 10:32:44.265972 'HELP\r\n' 10:32:44.268707 Received DATA (on stdin) 10:32:44.268945 > 22 bytes data, server => client 10:32:44.269074 '214 WE ROOLZ: 120427\r\n' 10:32:44.270364 < 6 bytes data, client => server 10:32:44.270631 'QUIT\r\n' 10:32:44.271949 Received DATA (on stdin) 10:32:44.272158 > 35 bytes data, server => client 10:32:44.272876 '221 curl ESMTP server signing off\r\n' 10:32:44.275502 ====> Client disconnect 10:32:44.278834 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-936 mail body === End of file stdin-for-936 === Start of file valgrind936 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind936 test 0940...[SMTP with username and password but no AUTH capability] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind940 ../src/curl -q --output log/4/curl940.out --include --trace-ascii log/4/trace940 --trace-time smtp://127.0.0.1:44481/940 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/4/stdout940 2> log/4/stdCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind942 ../src/curl -q --output log/3/curl942.out --include --trace-ascii log/3/trace942 --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:46117/942' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/3/stdout942 2> log/3/stderr942 err940 940: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 940 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind940 ../src/curl -q --output log/4/curl940.out --include --trace-ascii log/4/trace940 --trace-time smtp://127.0.0.1:44481/940 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T - log/4/stdout940 2> log/4/stderr940 === End of file commands.log === Start of file server.cmd Testnum 940 === End of file server.cmd === Start of file smtp_server.log 10:32:45.039525 ====> Client connect 10:32:45.041105 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:45.045371 < "EHLO verifiedserver" 10:32:45.046664 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:45.048705 < "HELP" 10:32:45.049203 > "214 WE ROOLZ: 120358[CR][LF]" 10:32:45.049570 return proof we are we 10:32:45.055999 < "QUIT" 10:32:45.056563 > "221 curl ESMTP server signing off[CR][LF]" 10:32:45.064005 MAIN sockfilt said DISC 10:32:45.064572 ====> Client disconnected 10:32:45.065289 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:44.707722 ====> Client connect 10:32:44.710860 Received DATA (on stdin) 10:32:44.711179 > 160 bytes data, server => client 10:32:44.711321 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:44.711426 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:44.711519 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:44.712906 < 21 bytes data, client => server 10:32:44.713165 'EHLO verifiedserver\r\n' 10:32:44.715868 Received DATA (on stdin) 10:32:44.716027 > 53 bytes data, server => client 10:32:44.716131 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:44.716927 < 6 bytes data, client => server 10:32:44.717162 'HELP\r\n' 10:32:44.721407 Received DATA (on stdin) 10:32:44.721714 > 22 bytes data, server => client 10:32:44.721990 '214 WE ROOLZ: 120358\r\n' 10:32:44.724238 < 6 bytes data, client => server 10:32:44.724462 'QUIT\r\n' 10:32:44.725562 Received DATA (on stdin) 10:32:44.725753 > 35 bytes data, server => client 10:32:44.725856 '221 curl ESMTP server signing off\r\n' 10:32:44.730736 ====> Client disconnect 10:32:44.734699 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-940 mail body === End of file stdin-for-940 === Start of file valgrind940 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind940 test 0942...[SMTP external authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind942 ../src/curl -q --output log/3/curl942.out --include --trace-ascii log/3/trace942 --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:46117/942' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/3/stdout942 2> log/3/stderr942 942: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 942 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind942 ../src/curl -q --output log/3/curl942.out --include --trace-ascii log/3/trace942 --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:46117/942' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/3/stdout942 2> log/3/stderr942 === End of file commands.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH 334 EXTERNAL supported REPLY dXNlcg== 235 Authenticated Testnum 942 === End of file server.cmd === Start of file smtp_server.log 10:32:45.140655 ====> Client connect 10:32:45.142810 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:45.146529 < "EHLO verifiedserver" 10:32:45.147185 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:45.150483 < "HELP" 10:32:45.153183 > "214 WE ROOLZ: 120346[CR][LF]" 10:32:45.153608 return proof we are we 10:32:45.154570 < "QUIT" 10:32:45.161575 > "221 curl ESMTP server signing off[CR][LF]" 10:32:45.162128 MAIN sockfilt said DISC 10:32:45.162666 ====> Client disconnected 10:32:45.182016 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:44.807420 ====> Client connect 10:32:44.812358 Received DATA (on stdin) 10:32:44.812580 > 160 bytes data, server => client 10:32:44.812685 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:44.812765 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:44.812995 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:44.813841 < 21 bytes data, client => server 10:32:44.814115 'EHLO verifiedserver\r\n' 10:32:44.816711 Received DATA (on stdin) 10:32:44.816917 > 53 bytes data, server => client 10:32:44.817035 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:44.818110 < 6 bytes data, client => server 10:32:44.818410 'HELP\r\n' 10:32:44.820021 Received DATA (on stdin) 10:32:44.820249 > 22 bytes data, server => client 10:32:44.820462 '214 WE ROOLZ: 120346\r\n' 10:32:44.821669 < 6 bytes data, client => server 10:32:44.821872 'QUIT\r\n' 10:32:44.824300 Received DATA (on stdin) 10:32:44.824539 > 35 bytes data, server => client 10:32:44.824787 '221 curl ESMTP server signing off\r\n' 10:32:44.830006 ====> Client disconnect 10:32:44.832351 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-942 mail body === End of file stdin-for-942 === Start of file valgrind942 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-rCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind943 ../src/curl -q --output log/1/curl943.out --include --trace-ascii log/1/trace943 --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:42637/943' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/1/stdout943 2> log/1/stderr943 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind941 ../src/curl -q --output log/8/curl941.out --include --trace-ascii log/8/trace941 --trace-time smtp://127.0.0.1:38345/941 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/8/upload941 --crlf > log/8/stdout941 2> log/8/stderr941 iscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind942 test 0943...[SMTP external authentication without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind943 ../src/curl -q --output log/1/curl943.out --include --trace-ascii log/1/trace943 --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:42637/943' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/1/stdout943 2> log/1/stderr943 943: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 943 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind943 ../src/curl -q --output log/1/curl943.out --include --trace-ascii log/1/trace943 --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:42637/943' --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/1/stdout943 2> log/1/stderr943 === End of file commands.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH 334 EXTERNAL supported REPLY = 235 Authenticated Testnum 943 === End of file server.cmd === Start of file smtp_server.log 10:32:45.239930 ====> Client connect 10:32:45.241094 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:45.250582 < "EHLO verifiedserver" 10:32:45.251112 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:45.253290 < "HELP" 10:32:45.253851 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:45.254089 return proof we are we 10:32:45.255957 < "QUIT" 10:32:45.256386 > "221 curl ESMTP server signing off[CR][LF]" 10:32:45.261669 MAIN sockfilt said DISC 10:32:45.262253 ====> Client disconnected 10:32:45.262951 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:44.908231 ====> Client connect 10:32:44.910076 Received DATA (on stdin) 10:32:44.910359 > 160 bytes data, server => client 10:32:44.911128 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:44.911293 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:44.911376 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:44.912136 < 21 bytes data, client => server 10:32:44.912335 'EHLO verifiedserver\r\n' 10:32:44.920284 Received DATA (on stdin) 10:32:44.920498 > 53 bytes data, server => client 10:32:44.920621 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:44.921506 < 6 bytes data, client => server 10:32:44.921782 'HELP\r\n' 10:32:44.922822 Received DATA (on stdin) 10:32:44.923022 > 22 bytes data, server => client 10:32:44.923117 '214 WE ROOLZ: 107206\r\n' 10:32:44.924243 < 6 bytes data, client => server 10:32:44.924494 'QUIT\r\n' 10:32:44.925371 Received DATA (on stdin) 10:32:44.925544 > 35 bytes data, server => client 10:32:44.925641 '221 curl ESMTP server signing off\r\n' 10:32:44.926801 ====> Client disconnect 10:32:44.931296 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-943 mail body === End of file stdin-for-943 === Start of file valgrind943 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind943 test 0941...[SMTP with --crlf] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind941 ../src/curl -q --output log/8/curl941.out --include --trace-ascii log/8/trace941 --trace-time smtp://127.0.0.1:38345/941 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/8/upload941 --crlf > log/8/stdout941 2> log/8/stderr941 941: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 941 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind941 ../src/curl -q --output log/8/curl941.out --include --trace-ascii log/8/trace941 --trace-time smtp://127.0.0.1:38345/941 --mail-rcpt recipient@example.com --mail-from sender@example.com -T log/8/upload941 --crlf > log/8/stdout941 2> log/8/stderr941 === End of file commands.log === Start of file server.cmd Testnum 941 === End of file server.cmd === Start of file smtp_server.log 10:32:45.068267 ====> Client connect 10:32:45.069871 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:45.075474 < "EHLO verifiedserver" 10:32:45.076469 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:45.080093 < "HELP" 10:32:45.081246 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:45.081705 return proof we are we 10:32:45.085965 < "QUIT" 10:32:45.087041 > "221 curl ESMTP server signing off[CR][LF]" 10:32:45.092217 MAIN sockfilt said DISC 10:32:45.092743 ====> Client disconnected 10:32:45.093344 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:44.736523 ====> Client connect 10:32:44.739593 Received DATA (on stdin) 10:32:44.739850 > 160 bytes data, server => client 10:32:44.739972 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:44.740065 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:44.740150 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:44.743071 < 21 bytes data, client => server 10:32:44.743317 'EHLO verifiedserver\r\n' 10:32:44.745009 Received DATA (on stdin) 10:32:44.745192 > 53 bytes data, server => client 10:32:44.745854 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:44.747845 < 6 bytes data, client => server 10:32:44.748085 'HELP\r\n' 10:32:44.749671 Received DATA (on stdin) 10:32:44.749909 > 22 bytes data, server => client 10:32:44.751092 '214 WE ROOLZ: 107099\r\n' 10:32:44.753778 < 6 bytes data, client => server 10:32:44.753967 'QUIT\r\n' 10:32:44.755504 Received DATA (on stdin) 10:32:44.755743 > 35 bytes data, server => client 10:32:44.756477 '221 curl ESMTP server signing off\r\n' 10:32:44.758418 ====> Client disconnect 10:32:44.762675 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file upload941 From: different To: another email headers and body with Unix newlines meant to be converted with the --crlf option 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind944 ../src/curl -q --output log/7/curl944.out --include --trace-ascii log/7/trace944 --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:45189/944' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/7/stdout944 2> log/7/stderr944 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind945 ../src/curl -q --output log/2/curl945.out --include --trace-ascii log/2/trace945 --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:40329/945' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/2/stdout945 2> log/2/stderr945 345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 === End of file upload941 === Start of file valgrind941 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind941 test 0944...[SMTP external authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind944 ../src/curl -q --output log/7/curl944.out --include --trace-ascii log/7/trace944 --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:45189/944' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/7/stdout944 2> log/7/stderr944 944: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 944 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind944 ../src/curl -q --output log/7/curl944.out --include --trace-ascii log/7/trace944 --trace-time 'smtp://user;AUTH=EXTERNAL@127.0.0.1:45189/944' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/7/stdout944 2> log/7/stderr944 === End of file commands.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH 235 Authenticated Testnum 944 === End of file server.cmd === Start of file smtp_server.log 10:32:45.484450 ====> Client connect 10:32:45.486077 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:45.489840 < "EHLO verifiedserver" 10:32:45.491078 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:45.494033 < "HELP" 10:32:45.494610 > "214 WE ROOLZ: 120422[CR][LF]" 10:32:45.494928 return proof we are we 10:32:45.498314 < "QUIT" 10:32:45.499496 > "221 curl ESMTP server signing off[CR][LF]" 10:32:45.505713 MAIN sockfilt said DISC 10:32:45.506953 ====> Client disconnected 10:32:45.507775 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:45.152681 ====> Client connect 10:32:45.155610 Received DATA (on stdin) 10:32:45.155843 > 160 bytes data, server => client 10:32:45.155967 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:45.156088 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:45.156191 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:45.157306 < 21 bytes data, client => server 10:32:45.157515 'EHLO verifiedserver\r\n' 10:32:45.159474 Received DATA (on stdin) 10:32:45.159726 > 53 bytes data, server => client 10:32:45.160562 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:45.161547 < 6 bytes data, client => server 10:32:45.161738 'HELP\r\n' 10:32:45.164260 Received DATA (on stdin) 10:32:45.164437 > 22 bytes data, server => client 10:32:45.164537 '214 WE ROOLZ: 120422\r\n' 10:32:45.165804 < 6 bytes data, client => server 10:32:45.166025 'QUIT\r\n' 10:32:45.167898 Received DATA (on stdin) 10:32:45.168140 > 35 bytes data, server => client 10:32:45.168985 '221 curl ESMTP server signing off\r\n' 10:32:45.174059 ====> Client disconnect 10:32:45.175231 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-944 mail body === End of file stdin-for-944 === Start of file valgrind944 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind944 test 0945...[SMTP external authentication with initial response without credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind946 ../src/curl -q --output log/6/curl946.out --include --trace-ascii log/6/trace946 --trace-time smtp://127.0.0.1:42767/946 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/6/stdout946 2> log/6/stderr946 --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind945 ../src/curl -q --output log/2/curl945.out --include --trace-ascii log/2/trace945 --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:40329/945' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/2/stdout945 2> log/2/stderr945 945: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 945 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind945 ../src/curl -q --output log/2/curl945.out --include --trace-ascii log/2/trace945 --trace-time 'smtp://;AUTH=EXTERNAL@127.0.0.1:40329/945' --mail-rcpt recipient@example.com --mail-from sender@example.com --sasl-ir -T - log/2/stdout945 2> log/2/stderr945 === End of file commands.log === Start of file server.cmd AUTH EXTERNAL REPLY AUTH 235 Authenticated Testnum 945 === End of file server.cmd === Start of file smtp_server.log 10:32:45.605603 ====> Client connect 10:32:45.613803 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:45.622920 < "EHLO verifiedserver" 10:32:45.625028 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:45.627902 < "HELP" 10:32:45.628546 > "214 WE ROOLZ: 107342[CR][LF]" 10:32:45.628922 return proof we are we 10:32:45.632662 < "QUIT" 10:32:45.633324 > "221 curl ESMTP server signing off[CR][LF]" 10:32:45.641431 MAIN sockfilt said DISC 10:32:45.642021 ====> Client disconnected 10:32:45.642636 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:46.270823 ====> Client connect 10:32:46.276036 Received DATA (on stdin) 10:32:46.276362 > 160 bytes data, server => client 10:32:46.283306 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:46.283500 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:46.283586 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:46.290558 < 21 bytes data, client => server 10:32:46.290808 'EHLO verifiedserver\r\n' 10:32:46.292437 Received DATA (on stdin) 10:32:46.292657 > 53 bytes data, server => client 10:32:46.293333 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:46.295494 < 6 bytes data, client => server 10:32:46.295769 'HELP\r\n' 10:32:46.298549 Received DATA (on stdin) 10:32:46.298855 > 22 bytes data, server => client 10:32:46.299027 '214 WE ROOLZ: 107342\r\n' 10:32:46.300375 < 6 bytes data, client => server 10:32:46.300615 'QUIT\r\n' 10:32:46.304389 Received DATA (on stdin) 10:32:46.304696 > 35 bytes data, server => client 10:32:46.304869 '221 curl ESMTP server signing off\r\n' 10:32:46.309933 ====> Client disconnect 10:32:46.312043 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-945 mail body === End of file stdin-for-945 === Start of file valgrind945 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind945 test 0946...[SMTP OAuth 2.0 (OAUTHBEARER) authentication] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind946 ../src/curl -q --output log/6/curl946.out --include --trace-ascii log/6/trace946 --trace-time smtp://127.0.0.1:42767/946 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/6/stdout946 2> log/6/stderr946 946: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 946 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind946 ../src/curl -q --output log/6/curl946.out --include --trace-ascii log/6/trace946 --trace-time smtp://127.0.0.1:42767/946 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/6/stdout946 2> log/6/stderr946 === End of file commands.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH 334 OAUTHBEARER supported REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9NDI3NjcBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= 235 Authenticated Testnum 946 === End of file server.cmd === Start of file smtp_server.log 10:32:45.652396 ====> Client connect 10:32:45.653831 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:45.657362 < "EHLO verifiedserver" 10:32:45.658991 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:45.660782 < "HELP" 10:32:45.661357 > "214 WE ROOLZ: 120427[CR][LF]" 10:32:45.661821 return proof we are we 10:32:45.666621 < "QUIT" 10:32:45.667769 > "221 curl ESMTP server signing off[CR][LF]" 10:32:45.673632 MAIN sockfilt said DISC 10:32:45.674227 ====> Client disconnected 10:32:45.674888 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:45.318758 ====> Client connect 10:32:45.323433 Received DATA (on stdin) 10:32:45.323723 > 160 bytes data, server => client 10:32:45.323863 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:45.323949 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:45.324026 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:45.324950 < 21 bytes data, client => server 10:32:45.325195 'EHLO verifiedserver\r\n' 10:32:45.327059 Received DATA (on stdin) 10:32:45.327302 > 53 bytes data, server => client 10:32:45.327503 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:45.328824 < 6 bytes data, client => server 10:32:45.329053 'HELP\r\n' 10:32:45.331145 Received DATA (on stdin) 10:32:45.331329 > 22 bytes data, server => client 10:32:45.331415 '214 WE ROOLZ: 120427\r\n' 10:32:45.334228 < 6 bytes data, client => server 10:32:45.334611 'QUIT\r\n' 10:32:45.336153 Received DATA (on stdin) 10:32:45.336414 > 35 bytes data, server => client 10:32:45.337316 '221 curl ESMTP server signing off\r\n' 10:32:45.338847 ====> Client disconnect 10:32:45.344327 Received ACKD (on stdin) === End of file smtp_soCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind947 ../src/curl -q --output log/5/curl947.out --include --trace-ascii log/5/trace947 --trace-time smtp://127.0.0.1:34989/947 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/5/stdout947 2> log/5/stderr947 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind948 ../src/curl -q --output log/4/curl948.out --include --trace-ascii log/4/trace948 --trace-time smtp://127.0.0.1:44481/948 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/4/stdout948 2> log/4/stderr948 ckfilt.log === Start of file stdin-for-946 mail body === End of file stdin-for-946 === Start of file valgrind946 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind946 test 0947...[SMTP OAuth 2.0 (OAUTHBEARER) authentication with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind947 ../src/curl -q --output log/5/curl947.out --include --trace-ascii log/5/trace947 --trace-time smtp://127.0.0.1:34989/947 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/5/stdout947 2> log/5/stderr947 947: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 947 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind947 ../src/curl -q --output log/5/curl947.out --include --trace-ascii log/5/trace947 --trace-time smtp://127.0.0.1:34989/947 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/5/stdout947 2> log/5/stderr947 === End of file commands.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH 235 Authenticated Testnum 947 === End of file server.cmd === Start of file smtp_server.log 10:32:45.757641 ====> Client connect 10:32:45.759253 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:45.768106 < "EHLO verifiedserver" 10:32:45.769956 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:45.771598 < "HELP" 10:32:45.773753 > "214 WE ROOLZ: 120432[CR][LF]" 10:32:45.774174 return proof we are we 10:32:45.779222 < "QUIT" 10:32:45.779715 > "221 curl ESMTP server signing off[CR][LF]" 10:32:45.787017 MAIN sockfilt said DISC 10:32:45.787486 ====> Client disconnected 10:32:45.788053 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:45.425814 ====> Client connect 10:32:45.428738 Received DATA (on stdin) 10:32:45.429096 > 160 bytes data, server => client 10:32:45.429225 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:45.429305 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:45.429393 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:45.434681 < 21 bytes data, client => server 10:32:45.434949 'EHLO verifiedserver\r\n' 10:32:45.437712 Received DATA (on stdin) 10:32:45.437955 > 53 bytes data, server => client 10:32:45.438180 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:45.439407 < 6 bytes data, client => server 10:32:45.439593 'HELP\r\n' 10:32:45.441026 Received DATA (on stdin) 10:32:45.441255 > 22 bytes data, server => client 10:32:45.443449 '214 WE ROOLZ: 120432\r\n' 10:32:45.447399 < 6 bytes data, client => server 10:32:45.447618 'QUIT\r\n' 10:32:45.450604 Received DATA (on stdin) 10:32:45.450844 > 35 bytes data, server => client 10:32:45.450950 '221 curl ESMTP server signing off\r\n' 10:32:45.451557 ====> Client disconnect 10:32:45.456533 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-947 mail body === End of file stdin-for-947 === Start of file valgrind947 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind947 test 0948...[SMTP OAuth 2.0 (OAUTHBEARER) failure as continuation] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind948 ../src/curl -q --output log/4/curl948.out --include --trace-ascii log/4/trace948 --trace-time smtp://127.0.0.1:44481/948 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/4/stdout948 2> log/4/stderr948 948: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 948 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind948 ../src/curl -q --output log/4/curl948.out --include --trace-ascii log/4/trace948 --trace-time smtp://127.0.0.1:44481/948 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM -T - log/4/stdout948 2> log/4/stderr948 === End of file commands.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH 334 OAUTHBEARER supported REPLY bixhPXVzZXIsAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9NDQ0ODEBYXV0aD1CZWFyZXIgbUZfOS5CNWYtNC4xSnFNAQE= 334 eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0= REPLY AQ== 535 Username and Password not accepted. Learn more at\r\n535 http://support.example.com/mail/oauth Testnum 948 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind949 ../src/curl -q --output log/3/curl949.out --include --trace-ascii log/3/trace949 --trace-time smtp://127.0.0.1:46117/949 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/3/stdout949 2> log/3/stderr949 === End of file server.cmd === Start of file smtp_server.log 10:32:46.048083 ====> Client connect 10:32:46.049455 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:46.056299 < "EHLO verifiedserver" 10:32:46.056899 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:46.062400 < "HELP" 10:32:46.062893 > "214 WE ROOLZ: 120358[CR][LF]" 10:32:46.063135 return proof we are we 10:32:46.068024 < "QUIT" 10:32:46.068601 > "221 curl ESMTP server signing off[CR][LF]" 10:32:46.073697 MAIN sockfilt said DISC 10:32:46.074335 ====> Client disconnected 10:32:46.075107 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:45.714645 ====> Client connect 10:32:45.718463 Received DATA (on stdin) 10:32:45.718869 > 160 bytes data, server => client 10:32:45.719050 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:45.719174 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:45.719288 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:45.723022 < 21 bytes data, client => server 10:32:45.723231 'EHLO verifiedserver\r\n' 10:32:45.725899 Received DATA (on stdin) 10:32:45.726121 > 53 bytes data, server => client 10:32:45.726248 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:45.727193 < 6 bytes data, client => server 10:32:45.727391 'HELP\r\n' 10:32:45.734598 Received DATA (on stdin) 10:32:45.734829 > 22 bytes data, server => client 10:32:45.734926 '214 WE ROOLZ: 120358\r\n' 10:32:45.736107 < 6 bytes data, client => server 10:32:45.736328 'QUIT\r\n' 10:32:45.737593 Received DATA (on stdin) 10:32:45.737799 > 35 bytes data, server => client 10:32:45.737905 '221 curl ESMTP server signing off\r\n' 10:32:45.738881 ====> Client disconnect 10:32:45.743336 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-948 mail body === End of file stdin-for-948 === Start of file valgrind948 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind948 test 0949...[SMTP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind949 ../src/curl -q --output log/3/curl949.out --include --trace-ascii log/3/trace949 --trace-time smtp://127.0.0.1:46117/949 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/3/stdout949 2> log/3/stderr949 949: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 949 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind949 ../src/curl -q --output log/3/curl949.out --include --trace-ascii log/3/trace949 --trace-time smtp://127.0.0.1:46117/949 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T - log/3/stdout949 2> log/3/stderr949 === End of file commands.log === Start of file server.cmd AUTH OAUTHBEARER REPLY AUTH 334 eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0= REPLY AQ== 535 Username and Password not accepted. Learn more at\r\n535 http://support.example.com/mail/oauth Testnum 949 === End of file server.cmd === Start of file smtp_server.log 10:32:46.177623 ====> Client connect 10:32:46.180783 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:46.189148 < "EHLO verifiedserver" 10:32:46.190414 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:46.195515 < "HELP" 10:32:46.197368 > "214 WE ROOLZ: 120346[CR][LF]" 10:32:46.197999 return proof we are we 10:32:46.200718 < "QUIT" 10:32:46.202253 > "221 curl ESMTP server signing off[CR][LF]" 10:32:46.210044 MAIN sockfilt said DISC 10:32:46.213670 ====> Client disconnected 10:32:46.217146 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:45.845917 ====> Client connect 10:32:45.850242 Received DATA (on stdin) 10:32:45.850705 > 160 bytes data, server => client 10:32:45.850850 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:45.850947 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:45.852456 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:45.855737 < 21 bytes data, client => server 10:32:45.856017 'EHLO verifiedserver\r\n' 10:32:45.858860 Received DATA (on stdin) 10:32:45.859080 > 53 bytes data, server => client 10:32:45.859863 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:45.863163 < 6 bytes data, client => server 10:32:45.863454 'HELP\r\n' 10:32:45.865001 Received DATA (on stdin) 10:32:45.865186 > 22 bytes data, server => client 10:32:45.865686 '214 WE ROOLZ: 120346\r\n' 10:32:45.867367 < 6 bytes data, client => server 10:32:45.867868 'QUIT\r\n' 10:32:45.870660 Received DATA (on stdin) 10:32:45.871838 > 35 bytes data, server => client 10:32:45.872169 '221 curl ESMTP server signing off\r\n' 10:32:45.878566 ====> Client disconnect 10:32:45.879485 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-949 mail body === End of file stdin-for-949 === Start of file valgrind949 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind950 ../src/curl -q --output log/1/curl950.out --include --trace-ascii log/1/trace950 --trace-time smtp://127.0.0.1:42637/950 --mail-rcpt recipient --request "vrfy" > log/1/stdout950 2> log/1/stderr950 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind951 ../src/curl -q --output log/8/curl951.out --include --trace-ascii log/8/trace951 --trace-time smtp://127.0.0.1:38345/951 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/8/stdout951 2> log/8/stderr951 conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind949 test 0950...[SMTP VRFY with custom request] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind950 ../src/curl -q --output log/1/curl950.out --include --trace-ascii log/1/trace950 --trace-time smtp://127.0.0.1:42637/950 --mail-rcpt recipient --request "vrfy" > log/1/stdout950 2> log/1/stderr950 950: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 950 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind950 ../src/curl -q --output log/1/curl950.out --include --trace-ascii log/1/trace950 --trace-time smtp://127.0.0.1:42637/950 --mail-rcpt recipient --request "vrfy" > log/1/stdout950 2> log/1/stderr950 === End of file commands.log === Start of file server.cmd Testnum 950 === End of file server.cmd === Start of file smtp_server.log 10:32:46.266551 ====> Client connect 10:32:46.267893 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:46.278759 < "EHLO verifiedserver" 10:32:46.279307 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:46.292165 < "HELP" 10:32:46.292817 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:46.293172 return proof we are we 10:32:46.295120 < "QUIT" 10:32:46.295639 > "221 curl ESMTP server signing off[CR][LF]" 10:32:46.302007 MAIN sockfilt said DISC 10:32:46.302505 ====> Client disconnected 10:32:46.303127 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:45.930350 ====> Client connect 10:32:45.936931 Received DATA (on stdin) 10:32:45.937205 > 160 bytes data, server => client 10:32:45.937343 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:45.937447 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:45.937530 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:45.942243 < 21 bytes data, client => server 10:32:45.942538 'EHLO verifiedserver\r\n' 10:32:45.948976 Received DATA (on stdin) 10:32:45.949181 > 53 bytes data, server => client 10:32:45.949300 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:45.958709 < 6 bytes data, client => server 10:32:45.958947 'HELP\r\n' 10:32:45.961775 Received DATA (on stdin) 10:32:45.962022 > 22 bytes data, server => client 10:32:45.962124 '214 WE ROOLZ: 107206\r\n' 10:32:45.963318 < 6 bytes data, client => server 10:32:45.963571 'QUIT\r\n' 10:32:45.964629 Received DATA (on stdin) 10:32:45.964834 > 35 bytes data, server => client 10:32:45.964955 '221 curl ESMTP server signing off\r\n' 10:32:45.965607 ====> Client disconnect 10:32:45.971512 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind950 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind950 test 0951...[SMTP data with dot as first character] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind951 ../src/curl -q --output log/8/curl951.out --include --trace-ascii log/8/trace951 --trace-time smtp://127.0.0.1:38345/951 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/8/stdout951 2> log/8/stderr951 951: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 951 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind951 ../src/curl -q --output log/8/curl951.out --include --trace-ascii log/8/trace951 --trace-time smtp://127.0.0.1:38345/951 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/8/stdout951 2> log/8/stderr951 === End of file commands.log === Start of file server.cmd Testnum 951 === End of file server.cmd === Start of file smtp_server.log 10:32:46.371923 ====> Client connect 10:32:46.373614 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:46.379021 < "EHLO verifiedserver" 10:32:46.379602 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:46.383704 < "HELP" 10:32:46.384279 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:46.384587 return proof we are we 10:32:46.389157 < "QUIT" 10:32:46.389783 > "221 curl ESMTP server signing off[CR][LF]" 10:32:46.392783 MAIN sockfilt said DISC 10:32:46.393203 ====> Client disconnected 10:32:46.393865 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:46.038643 ====> Client connect 10:32:46.042528 Received DATA (on stdin) 10:32:46.042796 > 160 bytes data, server => client 10:32:46.042917 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:46.043033 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:46.043125 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:46.047027 < 21 bytes data, client => server 10:32:46.047314 'EHLO verifiedserver\r\n' 10:32:46.048576 Received DATA (on stdin) 10:32:46.048786 > 53 bytes data, server => client 10:32:46.048888 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:46.049592 < 6 bytes data, client => server 10:32:46.049817 'HELP\r\n' 10:32:46.053279 Received DATA (on stdin) 10:32:46.053488 > 22 bytes data, server => client 10:32:46.053643 '214 WE ROOLZ: 107099\r\n' 10:32:46.054818 < 6 bytes data, client => server 10:32:46.055063 'QUIT\r\n' 10:32:46.059661 Received DATA (on stdin) 10:32:46.059900 > 35 bytes data, server => client 10:32:46.060009 '221 curl ESMTP server signing off\r\n' 10:32:46.0CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind952 ../src/curl -q --output log/7/curl952.out --include --trace-ascii log/7/trace952 --trace-time smtp://127.0.0.1:45189/952 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/7/stdout952 2> log/7/stderr952 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind953 ../src/curl -q --output log/2/curl953.out --include --trace-ascii log/2/trace953 --trace-time smtp://127.0.0.1:40329/953 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/2/stdout953 2> log/2/stderr953 61283 ====> Client disconnect 10:32:46.064959 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-951 .This first line starts with a dot === End of file stdin-for-951 === Start of file valgrind951 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind951 test 0952...[SMTP data with single dot-only line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind952 ../src/curl -q --output log/7/curl952.out --include --trace-ascii log/7/trace952 --trace-time smtp://127.0.0.1:45189/952 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/7/stdout952 2> log/7/stderr952 952: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 952 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind952 ../src/curl -q --output log/7/curl952.out --include --trace-ascii log/7/trace952 --trace-time smtp://127.0.0.1:45189/952 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - log/7/stdout952 2> log/7/stderr952 === End of file commands.log === Start of file server.cmd Testnum 952 === End of file server.cmd === Start of file smtp_server.log 10:32:46.546709 ====> Client connect 10:32:46.548243 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:46.565822 < "EHLO verifiedserver" 10:32:46.566445 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:46.568833 < "HELP" 10:32:46.569611 > "214 WE ROOLZ: 120422[CR][LF]" 10:32:46.570020 return proof we are we 10:32:46.573223 < "QUIT" 10:32:46.574043 > "221 curl ESMTP server signing off[CR][LF]" 10:32:46.579370 MAIN sockfilt said DISC 10:32:46.579904 ====> Client disconnected 10:32:46.580613 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:46.214955 ====> Client connect 10:32:46.220815 Received DATA (on stdin) 10:32:46.221107 > 160 bytes data, server => client 10:32:46.221244 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:46.221338 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:46.221446 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:46.227535 < 21 bytes data, client => server 10:32:46.227783 'EHLO verifiedserver\r\n' 10:32:46.235431 Received DATA (on stdin) 10:32:46.235661 > 53 bytes data, server => client 10:32:46.235770 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:46.236783 < 6 bytes data, client => server 10:32:46.237086 'HELP\r\n' 10:32:46.239678 Received DATA (on stdin) 10:32:46.239920 > 22 bytes data, server => client 10:32:46.240037 '214 WE ROOLZ: 120422\r\n' 10:32:46.241296 < 6 bytes data, client => server 10:32:46.241546 'QUIT\r\n' 10:32:46.243357 Received DATA (on stdin) 10:32:46.243544 > 35 bytes data, server => client 10:32:46.243661 '221 curl ESMTP server signing off\r\n' 10:32:46.244340 ====> Client disconnect 10:32:46.249108 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-952 . === End of file stdin-for-952 === Start of file valgrind952 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind952 test 0953...[SMTP plain authentication with alternative authorization identity] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind953 ../src/curl -q --output log/2/curl953.out --include --trace-ascii log/2/trace953 --trace-time smtp://127.0.0.1:40329/953 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/2/stdout953 2> log/2/stderr953 953: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 953 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind953 ../src/curl -q --output log/2/curl953.out --include --trace-ascii log/2/trace953 --trace-time smtp://127.0.0.1:40329/953 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/2/stdout953 2> log/2/stderr953 === End of file commands.log === Start of file server.cmd AUTH PLAIN REPLY AUTH 334 PLAIN supported REPLY dXJzZWwAa3VydAB4aXBqM3BsbXE= 235 Authenticated Testnum 953 === End of file server.cmd === Start of file smtp_server.log 10:32:46.657885 ====> Client connect 10:32:46.660303 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:46.662425 < "EHLO verifiedserver" 10:32:46.663025 > "250 ESMTP pingpong test sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind954 ../src/curl -q --output log/6/curl954.out --include --trace-ascii log/6/trace954 --trace-time smtp://127.0.0.1:42767/954 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/6/stdout954 2> log/6/stderr954 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind955 ../src/curl -q --output log/5/curl955.out --include --trace-ascii log/5/trace955 --trace-time smtp://127.0.0.1:34989/955 --mail-rcpt recipient@example.com --mail-from Avsändaren@example.com -T - log/5/stdout955 2> log/5/stderr955 erver Hello verifiedserver[CR][LF]" 10:32:46.666056 < "HELP" 10:32:46.667325 > "214 WE ROOLZ: 107342[CR][LF]" 10:32:46.667714 return proof we are we 10:32:46.676006 < "QUIT" 10:32:46.676606 > "221 curl ESMTP server signing off[CR][LF]" 10:32:46.682893 MAIN sockfilt said DISC 10:32:46.683452 ====> Client disconnected 10:32:46.684088 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:47.326120 ====> Client connect 10:32:47.327999 Received DATA (on stdin) 10:32:47.328257 > 160 bytes data, server => client 10:32:47.328499 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:47.328620 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:47.328698 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:47.329948 < 21 bytes data, client => server 10:32:47.330177 'EHLO verifiedserver\r\n' 10:32:47.332416 Received DATA (on stdin) 10:32:47.332568 > 53 bytes data, server => client 10:32:47.332653 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:47.333738 < 6 bytes data, client => server 10:32:47.333942 'HELP\r\n' 10:32:47.335691 Received DATA (on stdin) 10:32:47.335970 > 22 bytes data, server => client 10:32:47.337058 '214 WE ROOLZ: 107342\r\n' 10:32:47.343720 < 6 bytes data, client => server 10:32:47.343946 'QUIT\r\n' 10:32:47.347058 Received DATA (on stdin) 10:32:47.347315 > 35 bytes data, server => client 10:32:47.347430 '221 curl ESMTP server signing off\r\n' 10:32:47.350091 ====> Client disconnect 10:32:47.352456 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-953 mail body === End of file stdin-for-953 === Start of file valgrind953 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind953 test 0954...[SMTP plain auth with alt authorization identity (Not authorized)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind954 ../src/curl -q --output log/6/curl954.out --include --trace-ascii log/6/trace954 --trace-time smtp://127.0.0.1:42767/954 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/6/stdout954 2> log/6/stderr954 954: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 954 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind954 ../src/curl -q --output log/6/curl954.out --include --trace-ascii log/6/trace954 --trace-time smtp://127.0.0.1:42767/954 --mail-rcpt recipient@example.com --mail-from sender@example.com -u kurt:xipj3plmq --sasl-authzid ursel -T - log/6/stdout954 2> log/6/stderr954 === End of file commands.log === Start of file server.cmd AUTH PLAIN REPLY AUTH 334 PLAIN supported REPLY dXJzZWwAa3VydAB4aXBqM3BsbXE= 501 Not authorized Testnum 954 === End of file server.cmd === Start of file smtp_server.log 10:32:46.744063 ====> Client connect 10:32:46.745390 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:46.748255 < "EHLO verifiedserver" 10:32:46.748892 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:46.753096 < "HELP" 10:32:46.753707 > "214 WE ROOLZ: 120427[CR][LF]" 10:32:46.754026 return proof we are we 10:32:46.757434 < "QUIT" 10:32:46.758308 > "221 curl ESMTP server signing off[CR][LF]" 10:32:46.764766 MAIN sockfilt said DISC 10:32:46.769596 ====> Client disconnected 10:32:46.770446 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:46.412402 ====> Client connect 10:32:46.414305 Received DATA (on stdin) 10:32:46.414717 > 160 bytes data, server => client 10:32:46.414851 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:46.414942 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:46.415021 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:46.416079 < 21 bytes data, client => server 10:32:46.416342 'EHLO verifiedserver\r\n' 10:32:46.417916 Received DATA (on stdin) 10:32:46.418132 > 53 bytes data, server => client 10:32:46.418282 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:46.420837 < 6 bytes data, client => server 10:32:46.421057 'HELP\r\n' 10:32:46.423295 Received DATA (on stdin) 10:32:46.423483 > 22 bytes data, server => client 10:32:46.423587 '214 WE ROOLZ: 120427\r\n' 10:32:46.425010 < 6 bytes data, client => server 10:32:46.425285 'QUIT\r\n' 10:32:46.427790 Received DATA (on stdin) 10:32:46.428048 > 35 bytes data, server => client 10:32:46.428174 '221 curl ESMTP server signing off\r\n' 10:32:46.433240 ====> Client disconnect 10:32:46.434352 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-954 mail body === End of file stdin-for-954 === Start of file valgrind954 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind954 setenv LC_ALL = C.UTF-8 test 0955...[SMTP without SMTPUTF8 support - UTF-8 based sender (local part only)] ../libtool --mode=CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind956 ../src/curl -q --output log/4/curl956.out --include --trace-ascii log/4/trace956 --trace-time smtp://127.0.0.1:44481/956 --mail-rcpt Stödmottagaren@example.com --mail-from sender@example.com -T - log/4/stdout956 2> log/4/stderr956 execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind955 ../src/curl -q --output log/5/curl955.out --include --trace-ascii log/5/trace955 --trace-time smtp://127.0.0.1:34989/955 --mail-rcpt recipient@example.com --mail-from Avsändaren@example.com -T - log/5/stdout955 2> log/5/stderr955 955: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 955 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind955 ../src/curl -q --output log/5/curl955.out --include --trace-ascii log/5/trace955 --trace-time smtp://127.0.0.1:34989/955 --mail-rcpt recipient@example.com --mail-from Avsändaren@example.com -T - log/5/stdout955 2> log/5/stderr955 === End of file commands.log === Start of file server.cmd REPLY MAIL 501 not fine enough Testnum 955 === End of file server.cmd === Start of file smtp_server.log 10:32:46.783251 ====> Client connect 10:32:46.784416 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:46.794595 < "EHLO verifiedserver" 10:32:46.795120 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:46.798531 < "HELP" 10:32:46.799062 > "214 WE ROOLZ: 120432[CR][LF]" 10:32:46.799373 return proof we are we 10:32:46.806389 < "QUIT" 10:32:46.806931 > "221 curl ESMTP server signing off[CR][LF]" 10:32:46.814602 MAIN sockfilt said DISC 10:32:46.815127 ====> Client disconnected 10:32:46.815693 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:46.451548 ====> Client connect 10:32:46.453369 Received DATA (on stdin) 10:32:46.453613 > 160 bytes data, server => client 10:32:46.453755 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:46.453881 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:46.453968 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:46.459614 < 21 bytes data, client => server 10:32:46.459834 'EHLO verifiedserver\r\n' 10:32:46.465559 Received DATA (on stdin) 10:32:46.465819 > 53 bytes data, server => client 10:32:46.465933 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:46.466761 < 6 bytes data, client => server 10:32:46.466974 'HELP\r\n' 10:32:46.468027 Received DATA (on stdin) 10:32:46.468244 > 22 bytes data, server => client 10:32:46.468367 '214 WE ROOLZ: 120432\r\n' 10:32:46.473030 < 6 bytes data, client => server 10:32:46.473301 'QUIT\r\n' 10:32:46.478530 Received DATA (on stdin) 10:32:46.478768 > 35 bytes data, server => client 10:32:46.478886 '221 curl ESMTP server signing off\r\n' 10:32:46.482553 ====> Client disconnect 10:32:46.484118 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-955 From: different To: another body === End of file stdin-for-955 === Start of file valgrind955 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind955 setenv LC_ALL = C.UTF-8 test 0956...[SMTP without SMTPUTF8 support - UTF-8 based recipient (local part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind956 ../src/curl -q --output log/4/curl956.out --include --trace-ascii log/4/trace956 --trace-time smtp://127.0.0.1:44481/956 --mail-rcpt Stödmottagaren@example.com --mail-from sender@example.com -T - log/4/stdout956 2> log/4/stderr956 956: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 956 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind956 ../src/curl -q --output log/4/curl956.out --include --trace-ascii log/4/trace956 --trace-time smtp://127.0.0.1:44481/956 --mail-rcpt Stödmottagaren@example.com --mail-from sender@example.com -T - log/4/stdout956 2> log/4/stderr956 === End of file commands.log === Start of file server.cmd Testnum 956 === End of file server.cmd === Start of file smtp_server.log 10:32:47.188006 ====> Client connect 10:32:47.189973 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:47.195744 < "EHLO verifiedserver" 10:32:47.196599 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:47.206782 < "HELP" 10:32:47.207673 > "214 WE ROOLZ: 120358[CR][LF]" 10:32:47.208140 return proof we are we 10:32:47.212752 < "QUIT" 10:32:47.213608 > "221 curl ESMTP server signing off[CR][LF]" 10:32:47.221885 MAIN sockfilt said DISC 10:32:47.222586 ====> Client disconnected 10:32:47.223633 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:46.856094 ====> Client connect 10:32:46.859655 Received DATA (on stdin) 10:32:46.860019 > 160 bytes data, server => client 10:32:46.860199 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:46.860302 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:46.860393 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:46.862853 < 21 bytes data, client => server 10:32:46.863115 'EHLO verifiedserver\r\n' 10:32:46.865595 Received DATA (on stdin) 10:32:46.865945 > 53 bytes data, server => client 10:32:46.866109 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:46.871215 < 6 bytes data, client => server 10:32:46.871527 'HELP\r\n' 10:32:46.877565 Received DATA (on stdin) 10:32:46.877883 > 22 bytes data, server => client 10:32:46.878066 '214 WE ROOLZ: 120358\r\n' 10:32:46.880577 < 6 bytes data, client => server 10:32:46.880830 'QUIT\r\n' 10:32:46.884353 Received DATA (on stdin) 10:32:46.884658 > 35 bytes data, server => client 10:32:46.884830 '221 curl ESMTP server signing off\r\n' 10:32:46.885689 ====> Client disconnect 10:32:46.891592 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-956 From: different To: another body === End of file stdin-for-956 === Start of file valgrind956 valgrind: Fatal error at startup: aCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind957 ../src/curl -q --output log/3/curl957.out --include --trace-ascii log/3/trace957 --trace-time smtp://127.0.0.1:46117/957 --mail-rcpt Användaren > log/3/stdout957 2> log/3/stderr957 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind958 ../src/curl -q --output log/1/curl958.out --include --trace-ascii log/1/trace958 --trace-time smtp://127.0.0.1:42637/958 --mail-rcpt Användaren@example.com > log/1/stdout958 2> log/1/stderr958 function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind956 setenv LC_ALL = C.UTF-8 test 0957...[SMTP VRFY without SMTPUTF8 support - UTF-8 recipient (local part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind957 ../src/curl -q --output log/3/curl957.out --include --trace-ascii log/3/trace957 --trace-time smtp://127.0.0.1:46117/957 --mail-rcpt Användaren > log/3/stdout957 2> log/3/stderr957 957: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 957 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind957 ../src/curl -q --output log/3/curl957.out --include --trace-ascii log/3/trace957 --trace-time smtp://127.0.0.1:46117/957 --mail-rcpt Användaren > log/3/stdout957 2> log/3/stderr957 === End of file commands.log === Start of file server.cmd Testnum 957 === End of file server.cmd === Start of file smtp_server.log 10:32:47.270590 ====> Client connect 10:32:47.272000 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:47.275382 < "EHLO verifiedserver" 10:32:47.276027 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:47.278446 < "HELP" 10:32:47.278975 > "214 WE ROOLZ: 120346[CR][LF]" 10:32:47.279249 return proof we are we 10:32:47.284715 < "QUIT" 10:32:47.285251 > "221 curl ESMTP server signing off[CR][LF]" 10:32:47.290889 MAIN sockfilt said DISC 10:32:47.291411 ====> Client disconnected 10:32:47.292102 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:46.938661 ====> Client connect 10:32:46.940913 Received DATA (on stdin) 10:32:46.941211 > 160 bytes data, server => client 10:32:46.941358 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:46.941463 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:46.941551 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:46.943170 < 21 bytes data, client => server 10:32:46.943382 'EHLO verifiedserver\r\n' 10:32:46.944998 Received DATA (on stdin) 10:32:46.945200 > 53 bytes data, server => client 10:32:46.945339 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:46.946593 < 6 bytes data, client => server 10:32:46.946801 'HELP\r\n' 10:32:46.950526 Received DATA (on stdin) 10:32:46.950944 > 22 bytes data, server => client 10:32:46.951141 '214 WE ROOLZ: 120346\r\n' 10:32:46.952789 < 6 bytes data, client => server 10:32:46.953054 'QUIT\r\n' 10:32:46.954203 Received DATA (on stdin) 10:32:46.954661 > 35 bytes data, server => client 10:32:46.954835 '221 curl ESMTP server signing off\r\n' 10:32:46.958596 ====> Client disconnect 10:32:46.960401 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind957 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind957 setenv LC_ALL = C.UTF-8 test 0958...[SMTP external VRFY without SMTPUTF8 - UTF-8 recipient (local part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind958 ../src/curl -q --output log/1/curl958.out --include --trace-ascii log/1/trace958 --trace-time smtp://127.0.0.1:42637/958 --mail-rcpt Användaren@example.com > log/1/stdout958 2> log/1/stderr958 958: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 958 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind958 ../src/curl -q --output log/1/curl958.out --include --trace-ascii log/1/trace958 --trace-time smtp://127.0.0.1:42637/958 --mail-rcpt Användaren@example.com > log/1/stdout958 2> log/1/stderr958 === End of file commands.log === Start of file server.cmd Testnum 958 === End of file server.cmd === Start of file smtp_server.log 10:32:47.336470 ====> Client connect 10:32:47.338038 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:47.348548 < "EHLO verifiedserver" 10:32:47.349114 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:47.355158 < "HELP" 10:32:47.355780 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:47.356131 return proof we are we 10:32:47.362698 < "QUIT" 10:32:47.363136 > "221 curl ESMTP server signing off[CR][LF]" 10:32:47.373648 MAIN sockfilt said DISC 10:32:47.374152 ====> Client disconnected 10:32:47.374784 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:47.002570 ====> Client connect 10:32:47.006985 Received DATA (on stdin) 10:32:47.007282 > 160 bytes data, server => client 10:32:47.007420 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:47.007511 ' \r\n220-CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind962 ../src/curl -q --output log/8/curl962.out --include --trace-ascii log/8/trace962 --trace-time smtp://127.0.0.1:38345/962 --mail-rcpt recipient@example.com --mail-from sender@åäö.se -T - log/8/stdout962 2> log/8/stderr962 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind963 ../src/curl -q --output log/7/curl963.out --include --trace-ascii log/7/trace963 --trace-time smtp://127.0.0.1:45189/963 --mail-rcpt recipient@åäö.se --mail-from sender@example.com -T - log/7/stdout963 2> log/7/stderr963 / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:47.007589 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:47.014956 < 21 bytes data, client => server 10:32:47.015132 'EHLO verifiedserver\r\n' 10:32:47.018085 Received DATA (on stdin) 10:32:47.018285 > 53 bytes data, server => client 10:32:47.018515 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:47.020368 < 6 bytes data, client => server 10:32:47.020661 'HELP\r\n' 10:32:47.025558 Received DATA (on stdin) 10:32:47.025822 > 22 bytes data, server => client 10:32:47.025968 '214 WE ROOLZ: 107206\r\n' 10:32:47.027470 < 6 bytes data, client => server 10:32:47.027714 'QUIT\r\n' 10:32:47.034848 Received DATA (on stdin) 10:32:47.035129 > 35 bytes data, server => client 10:32:47.035262 '221 curl ESMTP server signing off\r\n' 10:32:47.040095 ====> Client disconnect 10:32:47.043547 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind958 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind958 setenv LC_ALL = C.UTF-8 test 0962...[SMTP without SMTPUTF8 support - UTF-8 based sender (host part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind962 ../src/curl -q --output log/8/curl962.out --include --trace-ascii log/8/trace962 --trace-time smtp://127.0.0.1:38345/962 --mail-rcpt recipient@example.com --mail-from sender@åäö.se -T - log/8/stdout962 2> log/8/stderr962 962: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 962 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind962 ../src/curl -q --output log/8/curl962.out --include --trace-ascii log/8/trace962 --trace-time smtp://127.0.0.1:38345/962 --mail-rcpt recipient@example.com --mail-from sender@åäö.se -T - log/8/stdout962 2> log/8/stderr962 === End of file commands.log === Start of file server.cmd Testnum 962 === End of file server.cmd === Start of file smtp_server.log 10:32:47.403402 ====> Client connect 10:32:47.405002 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:47.409604 < "EHLO verifiedserver" 10:32:47.410412 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:47.413928 < "HELP" 10:32:47.414622 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:47.415035 return proof we are we 10:32:47.418986 < "QUIT" 10:32:47.419701 > "221 curl ESMTP server signing off[CR][LF]" 10:32:47.425647 MAIN sockfilt said DISC 10:32:47.426244 ====> Client disconnected 10:32:47.426950 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:47.071497 ====> Client connect 10:32:47.074854 Received DATA (on stdin) 10:32:47.075151 > 160 bytes data, server => client 10:32:47.075296 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:47.075400 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:47.075487 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:47.076822 < 21 bytes data, client => server 10:32:47.077119 'EHLO verifiedserver\r\n' 10:32:47.079953 Received DATA (on stdin) 10:32:47.080231 > 53 bytes data, server => client 10:32:47.080363 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:47.081438 < 6 bytes data, client => server 10:32:47.081720 'HELP\r\n' 10:32:47.084439 Received DATA (on stdin) 10:32:47.084736 > 22 bytes data, server => client 10:32:47.084904 '214 WE ROOLZ: 107099\r\n' 10:32:47.086473 < 6 bytes data, client => server 10:32:47.086754 'QUIT\r\n' 10:32:47.089231 Received DATA (on stdin) 10:32:47.089476 > 35 bytes data, server => client 10:32:47.089602 '221 curl ESMTP server signing off\r\n' 10:32:47.090706 ====> Client disconnect 10:32:47.095223 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-962 From: different To: another body === End of file stdin-for-962 === Start of file valgrind962 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind962 setenv LC_ALL = C.UTF-8 test 0963...[SMTP without SMTPUTF8 support (IDN) - UTF-8 recipient (host part only)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind963 ../src/curl -q --output log/7/curl963.out --include --trace-ascii log/7/trace963 --trace-time smtp://127.0.0.1:45189/963 --mail-rcpt recipient@åäö.se --mail-from sender@example.com -T - log/7/stdout963 2> log/7/stderr963 963: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 963 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind963 ../src/curl -q --output log/7/curl963.out -CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test971.pl /build/curl/src/curl/tests/../docs/options-in-versions /build/curl/src/curl/tests/../docs/cmdline-opts /build/curl/src/curl/tests/../docs/VERSIONS.md > log/8/stdout971 2> log/8/stderr971 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind964 ../src/curl -q --output log/2/curl964.out --include --trace-ascii log/2/trace964 --trace-time smtp://127.0.0.1:40329/964 --mail-rcpt user@åäö.se > log/2/stdout964 2> log/2/stderr964 -include --trace-ascii log/7/trace963 --trace-time smtp://127.0.0.1:45189/963 --mail-rcpt recipient@åäö.se --mail-from sender@example.com -T - log/7/stdout963 2> log/7/stderr963 === End of file commands.log === Start of file server.cmd Testnum 963 === End of file server.cmd === Start of file smtp_server.log 10:32:47.496559 ====> Client connect 10:32:47.498502 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:47.505126 < "EHLO verifiedserver" 10:32:47.505967 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:47.510482 < "HELP" 10:32:47.511177 > "214 WE ROOLZ: 120422[CR][LF]" 10:32:47.511570 return proof we are we 10:32:47.518297 < "QUIT" 10:32:47.518911 > "221 curl ESMTP server signing off[CR][LF]" 10:32:47.524739 MAIN sockfilt said DISC 10:32:47.525266 ====> Client disconnected 10:32:47.526229 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:47.162687 ====> Client connect 10:32:47.168170 Received DATA (on stdin) 10:32:47.168526 > 160 bytes data, server => client 10:32:47.168701 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:47.168838 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:47.168943 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:47.170285 < 21 bytes data, client => server 10:32:47.170691 'EHLO verifiedserver\r\n' 10:32:47.174893 Received DATA (on stdin) 10:32:47.175185 > 53 bytes data, server => client 10:32:47.175305 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:47.176312 < 6 bytes data, client => server 10:32:47.176574 'HELP\r\n' 10:32:47.182262 Received DATA (on stdin) 10:32:47.182645 > 22 bytes data, server => client 10:32:47.182883 '214 WE ROOLZ: 120422\r\n' 10:32:47.184912 < 6 bytes data, client => server 10:32:47.185218 'QUIT\r\n' 10:32:47.189032 Received DATA (on stdin) 10:32:47.189275 > 35 bytes data, server => client 10:32:47.189401 '221 curl ESMTP server signing off\r\n' 10:32:47.191492 ====> Client disconnect 10:32:47.194276 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-963 From: different To: another body === End of file stdin-for-963 === Start of file valgrind963 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind963 test 0971...[Verify that options-in-versions and docs/cmdline-opts are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test971.pl /build/curl/src/curl/tests/../docs/options-in-versions /build/curl/src/curl/tests/../docs/cmdline-opts /build/curl/src/curl/tests/../docs/VERSIONS.md > log/8/stdout971 2> log/8/stderr971 valgrind SKIPPED -r-----e--- OK (902 out of 1725, remaining: 02:00, took 0.262s, duration: 02:12) setenv LC_ALL = C.UTF-8 test 0964...[SMTP external VRFY without SMTPUTF8 (IDN) - UTF-8 recipient (host part)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind964 ../src/curl -q --output log/2/curl964.out --include --trace-ascii log/2/trace964 --trace-time smtp://127.0.0.1:40329/964 --mail-rcpt user@åäö.se > log/2/stdout964 2> log/2/stderr964 964: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 964 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind964 ../src/curl -q --output log/2/curl964.out --include --trace-ascii log/2/trace964 --trace-time smtp://127.0.0.1:40329/964 --mail-rcpt user@åäö.se > log/2/stdout964 2> log/2/stderr964 === End of file commands.log === Start of file server.cmd Testnum 964 === End of file server.cmd === Start of file smtp_server.log 10:32:47.765731 ====> Client connect 10:32:47.767204 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:47.772460 < "EHLO verifiedserver" 10:32:47.773170 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:47.777774 < "HELP" 10:32:47.778454 > "214 WE ROOLZ: 107342[CR][LF]" 10:32:47.778751 return proof we are we 10:32:47.783857 < "QUIT" 10:32:47.784405 > "221 curl ESMTP server signing off[CR][LF]" 10:32:47.790978 MAIN sockfilt said DISC 10:32:47.792225 ====> Client disconnected 10:32:47.793000 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:48.432265 ====> Client connect 10:32:48.436417 Received DATA (on stdin) 10:32:48.436637 > 160 bytes data, server => client 10:32:48.436794 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:48.436896 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:48.436980 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:48.438347 < 21 bytes data, client => server 10:32:48.438924 'EHLO verifiedserver\r\n' 10:32:48.442643 Received DATA (on stdin) 10:32:48.442921 > 53 bytes data, server => client 10:32:48.443052 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:48.445325 < 6 bytes data, client => server 10:32:48.445557 'HELP\r\n' 10:32:48.447876 Received DATA (on stdin) 10:32:48.448082 > 22 bytes data, server => client 10:32:48.448192 '214 WE ROOLZ: 107342\r\n' 10:32:48.451417 < 6 bytes data, client => server 10:32:48.451598 'QUIT\r\n' 10:32:48.454953 Received DATA (on stdin) 10:32:48.455154 > 35 bytes data, server => client 10:32:48.455259 '221 curl ESMTP server signing off\r\n' 10:32:48.456922 ====> Client disconnect 10:32:48.460432 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind964 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind965 ../src/curl -q --output log/6/curl965.out --include --trace-ascii log/6/trace965 --trace-time smtp://127.0.0.1:42767/965 --mail-rcpt recipient@example.com --mail-from Avsändaren@åäö.se -T - log/6/stdout965 2> log/6/stderr965 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind966 ../src/curl -q --output log/5/curl966.out --include --trace-ascii log/5/trace966 --trace-time smtp://127.0.0.1:34989/966 --mail-rcpt Stödmottagaren@åäö.se --mail-from sender@example.com -T - log/5/stdout966 2> log/5/stderr966 stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind964 setenv LC_ALL = C.UTF-8 test 0965...[SMTP with SMTPUTF8 support - UTF-8 based sender] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind965 ../src/curl -q --output log/6/curl965.out --include --trace-ascii log/6/trace965 --trace-time smtp://127.0.0.1:42767/965 --mail-rcpt recipient@example.com --mail-from Avsändaren@åäö.se -T - log/6/stdout965 2> log/6/stderr965 965: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 965 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind965 ../src/curl -q --output log/6/curl965.out --include --trace-ascii log/6/trace965 --trace-time smtp://127.0.0.1:42767/965 --mail-rcpt recipient@example.com --mail-from Avsändaren@åäö.se -T - log/6/stdout965 2> log/6/stderr965 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 965 === End of file server.cmd === Start of file smtp_server.log 10:32:47.772421 ====> Client connect 10:32:47.774769 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:47.778339 < "EHLO verifiedserver" 10:32:47.779007 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:47.785851 < "HELP" 10:32:47.787554 > "214 WE ROOLZ: 120427[CR][LF]" 10:32:47.788055 return proof we are we 10:32:47.791156 < "QUIT" 10:32:47.791689 > "221 curl ESMTP server signing off[CR][LF]" 10:32:47.797665 MAIN sockfilt said DISC 10:32:47.798205 ====> Client disconnected 10:32:47.798878 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:47.440798 ====> Client connect 10:32:47.443075 Received DATA (on stdin) 10:32:47.443291 > 160 bytes data, server => client 10:32:47.444394 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:47.444671 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:47.444782 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:47.445766 < 21 bytes data, client => server 10:32:47.445975 'EHLO verifiedserver\r\n' 10:32:47.451195 Received DATA (on stdin) 10:32:47.451488 > 53 bytes data, server => client 10:32:47.451602 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:47.453450 < 6 bytes data, client => server 10:32:47.453613 'HELP\r\n' 10:32:47.455416 Received DATA (on stdin) 10:32:47.455628 > 22 bytes data, server => client 10:32:47.455858 '214 WE ROOLZ: 120427\r\n' 10:32:47.458634 < 6 bytes data, client => server 10:32:47.458921 'QUIT\r\n' 10:32:47.461285 Received DATA (on stdin) 10:32:47.461523 > 35 bytes data, server => client 10:32:47.461658 '221 curl ESMTP server signing off\r\n' 10:32:47.464632 ====> Client disconnect 10:32:47.467785 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-965 From: different To: another body === End of file stdin-for-965 === Start of file valgrind965 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind965 setenv LC_ALL = C.UTF-8 test 0966...[SMTP with SMTPUTF8 support - UTF-8 based recipient] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind966 ../src/curl -q --output log/5/curl966.out --include --trace-ascii log/5/trace966 --trace-time smtp://127.0.0.1:34989/966 --mail-rcpt Stödmottagaren@åäö.se --mail-from sender@example.com -T - log/5/stdout966 2> log/5/stderr966 966: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 966 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind966 ../src/curl -q --output log/5/curl966.out --include --trace-ascii log/5/trace966 --trace-time smtp://127.0.0.1:34989/966 --mail-rcpt Stödmottagaren@åäö.se --mail-from sender@example.com -T - log/5/stdout966 2> log/5/stderr966 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 966 === End of file server.cmd === Start of file smtp_server.log 10:32:47.823399 ====> Client connect 10:32:47.824829 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:47.828679 < "EHLO verifiedserver" 10:32:47.829294 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:47.832398 < "HELP" 10:32:47.832945 > "214 WE ROOLZ: 120432[CR][LF]" 10:32:47.833265 return proof we are we 10:32:47.836316 < "QUIT" 10:32:47.837342 > "221 curl ESMTP server signing off[CR][LF]" 10:32:47.842045 MAIN sockfilt said DISC 10:32:47.843205 ====> Client disconnected 10:32:47.843960 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:47.490134 ====> Client connect 10:32:47.493771 Received DATA (on stdin) 10:32:47.494016 > 160 bytes data, server => client 10:32:47.494142 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:47.494226 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:47.494297 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:47.496164 < 21 bytes data, client => server 10:32:47.496397 'EHLO verifiedserver\r\n' 10:32:47.498590 Received DATA (on stdin) 10:32:47.498820 > 53 bytes data, server => client 10:32:47.498928 '250 ESMTP pingpong test server HeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind967 ../src/curl -q --output log/4/curl967.out --include --trace-ascii log/4/trace967 --trace-time smtp://127.0.0.1:44481/967 --mail-rcpt Användaren@åäö.se > log/4/stdout967 2> log/4/stderr967 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind968 ../src/curl -q --output log/3/curl968.out --include --trace-ascii log/3/trace968 --trace-time smtp://127.0.0.1:46117/968 --mail-rcpt Användaren > log/3/stdout968 2> log/3/stderr968 llo verifiedserver\r\n' 10:32:47.500413 < 6 bytes data, client => server 10:32:47.500653 'HELP\r\n' 10:32:47.502615 Received DATA (on stdin) 10:32:47.502823 > 22 bytes data, server => client 10:32:47.502920 '214 WE ROOLZ: 120432\r\n' 10:32:47.504083 < 6 bytes data, client => server 10:32:47.504322 'QUIT\r\n' 10:32:47.505792 Received DATA (on stdin) 10:32:47.506009 > 35 bytes data, server => client 10:32:47.506529 '221 curl ESMTP server signing off\r\n' 10:32:47.510505 ====> Client disconnect 10:32:47.511466 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-966 From: different To: another body === End of file stdin-for-966 === Start of file valgrind966 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind966 setenv LC_ALL = C.UTF-8 test 0967...[SMTP external VRFY with SMTPUTF8 support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind967 ../src/curl -q --output log/4/curl967.out --include --trace-ascii log/4/trace967 --trace-time smtp://127.0.0.1:44481/967 --mail-rcpt Användaren@åäö.se > log/4/stdout967 2> log/4/stderr967 967: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 967 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind967 ../src/curl -q --output log/4/curl967.out --include --trace-ascii log/4/trace967 --trace-time smtp://127.0.0.1:44481/967 --mail-rcpt Användaren@åäö.se > log/4/stdout967 2> log/4/stderr967 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 967 === End of file server.cmd === Start of file smtp_server.log 10:32:48.201711 ====> Client connect 10:32:48.203636 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:48.209672 < "EHLO verifiedserver" 10:32:48.210486 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:48.222614 < "HELP" 10:32:48.223338 > "214 WE ROOLZ: 120358[CR][LF]" 10:32:48.223767 return proof we are we 10:32:48.228917 < "QUIT" 10:32:48.229815 > "221 curl ESMTP server signing off[CR][LF]" 10:32:48.232604 MAIN sockfilt said DISC 10:32:48.233093 ====> Client disconnected 10:32:48.233956 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:47.865139 ====> Client connect 10:32:47.874524 Received DATA (on stdin) 10:32:47.874881 > 160 bytes data, server => client 10:32:47.875052 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:47.875185 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:47.875272 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:47.876582 < 21 bytes data, client => server 10:32:47.876859 'EHLO verifiedserver\r\n' 10:32:47.879985 Received DATA (on stdin) 10:32:47.880295 > 53 bytes data, server => client 10:32:47.880450 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:47.886563 < 6 bytes data, client => server 10:32:47.886878 'HELP\r\n' 10:32:47.893058 Received DATA (on stdin) 10:32:47.893268 > 22 bytes data, server => client 10:32:47.893368 '214 WE ROOLZ: 120358\r\n' 10:32:47.894574 < 6 bytes data, client => server 10:32:47.894829 'QUIT\r\n' 10:32:47.898668 Received DATA (on stdin) 10:32:47.898945 > 35 bytes data, server => client 10:32:47.899064 '221 curl ESMTP server signing off\r\n' 10:32:47.900968 ====> Client disconnect 10:32:47.903447 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind967 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind967 setenv LC_ALL = C.UTF-8 test 0968...[SMTP VRFY with SMTPUTF8 support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind968 ../src/curl -q --output log/3/curl968.out --include --trace-ascii log/3/trace968 --trace-time smtp://127.0.0.1:46117/968 --mail-rcpt Användaren > log/3/stdout968 2> log/3/stderr968 968: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 968 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind968 ../src/curl -q --output log/3/curl968.out --include --trace-ascii log/3/trace968 --trace-time smtp://127.0.0.1:46117/968 --mail-rcpt Användaren > log/3/stdout968 2> log/3/stderr968 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 968 === End of file server.cmd === Start of file smtp_server.log 10:32:48.327341 ====> Client connect 10:32:48.328716 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:48.332784 < "EHLO verifiedserver" 10:32:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind969 ../src/curl -q --output log/1/curl969.out --include --trace-ascii log/1/trace969 --trace-time smtp://127.0.0.1:42637/969 --mail-rcpt Friends -X EXPN > log/1/stdout969 2> log/1/stderr969 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind974 ../src/curl -q --output log/8/curl974.out --include --trace-ascii log/8/trace974 --trace-time -x http://127.0.0.1:36007 http://firsthost.com -L -u joe:secret > log/8/stdout974 2> log/8/stderr974 48.333350 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:48.336309 < "HELP" 10:32:48.336895 > "214 WE ROOLZ: 120346[CR][LF]" 10:32:48.337238 return proof we are we 10:32:48.340174 < "QUIT" 10:32:48.340768 > "221 curl ESMTP server signing off[CR][LF]" 10:32:48.346061 MAIN sockfilt said DISC 10:32:48.347204 ====> Client disconnected 10:32:48.347831 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:47.994566 ====> Client connect 10:32:47.997639 Received DATA (on stdin) 10:32:47.997925 > 160 bytes data, server => client 10:32:47.998055 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:47.998158 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:47.998245 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:48.000247 < 21 bytes data, client => server 10:32:48.000512 'EHLO verifiedserver\r\n' 10:32:48.003206 Received DATA (on stdin) 10:32:48.003385 > 53 bytes data, server => client 10:32:48.003474 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:48.004204 < 6 bytes data, client => server 10:32:48.004384 'HELP\r\n' 10:32:48.006483 Received DATA (on stdin) 10:32:48.006665 > 22 bytes data, server => client 10:32:48.006746 '214 WE ROOLZ: 120346\r\n' 10:32:48.007884 < 6 bytes data, client => server 10:32:48.008110 'QUIT\r\n' 10:32:48.010131 Received DATA (on stdin) 10:32:48.010436 > 35 bytes data, server => client 10:32:48.010608 '221 curl ESMTP server signing off\r\n' 10:32:48.014539 ====> Client disconnect 10:32:48.015443 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind968 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind968 test 0969...[SMTP mailing list EXPN (CUSTOMREQUEST) with SMTPUTF8 support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind969 ../src/curl -q --output log/1/curl969.out --include --trace-ascii log/1/trace969 --trace-time smtp://127.0.0.1:42637/969 --mail-rcpt Friends -X EXPN > log/1/stdout969 2> log/1/stderr969 969: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 969 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind969 ../src/curl -q --output log/1/curl969.out --include --trace-ascii log/1/trace969 --trace-time smtp://127.0.0.1:42637/969 --mail-rcpt Friends -X EXPN > log/1/stdout969 2> log/1/stderr969 === End of file commands.log === Start of file server.cmd CAPA SMTPUTF8 Testnum 969 === End of file server.cmd === Start of file smtp_server.log 10:32:48.439161 ====> Client connect 10:32:48.440728 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:48.444813 < "EHLO verifiedserver" 10:32:48.448310 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:48.449931 < "HELP" 10:32:48.450729 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:48.451135 return proof we are we 10:32:48.454734 < "QUIT" 10:32:48.455864 > "221 curl ESMTP server signing off[CR][LF]" 10:32:48.462220 MAIN sockfilt said DISC 10:32:48.463591 ====> Client disconnected 10:32:48.464411 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:48.107349 ====> Client connect 10:32:48.110285 Received DATA (on stdin) 10:32:48.110643 > 160 bytes data, server => client 10:32:48.110772 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:48.110882 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:48.110964 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:48.112154 < 21 bytes data, client => server 10:32:48.112366 'EHLO verifiedserver\r\n' 10:32:48.114796 Received DATA (on stdin) 10:32:48.115133 > 53 bytes data, server => client 10:32:48.115452 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:48.116600 < 6 bytes data, client => server 10:32:48.116860 'HELP\r\n' 10:32:48.120497 Received DATA (on stdin) 10:32:48.120725 > 22 bytes data, server => client 10:32:48.120856 '214 WE ROOLZ: 107206\r\n' 10:32:48.122403 < 6 bytes data, client => server 10:32:48.122658 'QUIT\r\n' 10:32:48.124238 Received DATA (on stdin) 10:32:48.124449 > 35 bytes data, server => client 10:32:48.125317 '221 curl ESMTP server signing off\r\n' 10:32:48.130646 ====> Client disconnect 10:32:48.131686 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file valgrind969 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind969 test 0974...[HTTP with auth redirected to HTTP on a diff port w/o auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind974 ../src/curl -q --output log/8/curl974.out --include --trace-ascii log/8/trace974 --trace-time -x http://127.0.0.1:36007 http://firsthost.com -L -u joe:secret > log/8/stdout974 2> log/8/stderr974 974: protocol FAILED! There was no content at all in the file log/8CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind973 ../src/curl -q --output log/7/curl973.out --include --trace-ascii log/7/trace973 --trace-time http://127.0.0.1:40129/973 -L -u joe:secret > log/7/stdout973 2> log/7/stderr973 /server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 974 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind974 ../src/curl -q --output log/8/curl974.out --include --trace-ascii log/8/trace974 --trace-time -x http://127.0.0.1:36007 http://firsthost.com -L -u joe:secret > log/8/stdout974 2> log/8/stderr974 === End of file commands.log === Start of file http_server.log 10:32:48.410745 ====> Client connect 10:32:48.411086 accept_connection 3 returned 4 10:32:48.411282 accept_connection 3 returned 0 10:32:48.411429 Read 93 bytes 10:32:48.411525 Process 93 bytes request 10:32:48.411616 Got request: GET /verifiedserver HTTP/1.1 10:32:48.411701 Are-we-friendly question received 10:32:48.412008 Wrote request (93 bytes) input to log/8/server.input 10:32:48.412238 Identifying ourselves as friends 10:32:48.413132 Response sent (56 bytes) and written to log/8/server.response 10:32:48.413312 special request received, no persistency 10:32:48.413392 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 42094 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 974 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind974 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind974 test 0973...[HTTP with auth redirected to FTP w/o auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind973 ../src/curl -q --output log/7/curl973.out --include --trace-ascii log/7/trace973 --trace-time http://127.0.0.1:40129/973 -L -u joe:secret > log/7/stdout973 2> log/7/stderr973 973: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 973 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind973 ../src/curl -q --output log/7/curl973.out --include --trace-ascii log/7/trace973 --trace-time http://127.0.0.1:40129/973 -L -u joe:secret > log/7/stdout973 2> log/7/stderr973 === End of file commands.log === Start of file ftp_server.log 10:32:48.658873 ====> Client connect 10:32:48.660564 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:48.666262 < "USER anonymous" 10:32:48.666940 > "331 We are happy you popped in![CR][LF]" 10:32:48.672771 < "PASS ftp@example.com" 10:32:48.673385 > "230 Welcome you silly person[CR][LF]" 10:32:48.675287 < "PWD" 10:32:48.675878 > "257 "/" is current directory[CR][LF]" 10:32:48.683164 < "EPSV" 10:32:48.683645 ====> Passive DATA channel requested by client 10:32:48.684005 DATA sockfilt for passive data channel starting... 10:32:48.698372 DATA sockfilt for passive data channel started (pid 124303) 10:32:48.702783 DATA sockfilt for passive data channel listens on port 43827 10:32:48.703382 > "229 Entering Passive Mode (|||43827|)[LF]" 10:32:48.703785 Client has been notified that DATA conn will be accepted on port 43827 10:32:48.713396 Client connects to port 43827 10:32:48.714100 ====> Client established passive DATA connection on port 43827 10:32:48.715507 < "TYPE I" 10:32:48.716240 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:48.722766 < "SIZE verifiedserver" 10:32:48.723348 > "213 17[CR][LF]" 10:32:48.726916 < "RETR verifiedserver" 10:32:48.727564 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:48.728430 =====> Closing passive DATA connection... 10:32:48.728726 Server disconnects passive DATA connection 10:32:48.730523 Server disconnected passive DATA connection 10:32:48.730991 DATA sockfilt for passive data channel quits (pid 124303) 10:32:48.735101 DATA sockfilt for passive data channel quit (pid 124303) 10:32:48.735547 =====> Closed passive DATA connection 10:32:48.736038 > "226 File transfer complete[CR][LF]" 10:32:48.778330 < "QUIT" 10:32:48.778754 > "221 bye bye baby[CR][LF]" 10:32:48.781244 MAIN sockfilt said DISC 10:32:48.782234 ====> Client disconnected 10:32:48.782895 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:49.324842 ====> Client connect 10:32:49.329471 Received DATA (on stdin) 10:32:49.329770 > 160 bytes data, server => client 10:32:49.329910 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:49.330030 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:49.330134 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:49.332661 < 16 bytes data, client => server 10:32:49.332948 'USER anonymous\r\n' 10:32:49.338656 Received DATA (on stdin) 10:32:49.338895 > 33 bytes data, server => client 10:32:49.339009 '331 We are happy you popped in!\r\n' 10:32:49.339696 < 22 bytes data, client => server 10:32:49.339881 'PASS ftp@example.com\r\n' 10:32:49.342289 Received DATA (on stdin) 10:32:49.342649 > 30 bytes data, server => client 10:32:49.342754 '230 Welcome you silly person\r\n' 10:32:49.343392 < 5 bytes data, client => server 10:32:49.343649 'PWD\r\n' 10:32:49.344753 Received DATA (on stdin) 10:32:49.344937 > 30 bytes data, server => client 10:32:49.345035 '257 "/" is current directory\r\n' 10:32:49.349163 < 6 bytes data, client => server 10:32:49.349387 'EPSV\r\n' 10:32:49.373094 Received DATA (on stdin) 10:32:49.373329 > 38 bytes data, server => client 10:32:49.373486 '229 Entering Passive Mode (|||43827|)\n' 10:32:49.376107 < 8 bytes data, client => server 10:32:49.376416 'TYPE I\r\n' 10:32:49.385507 Received DATA (on stdin) 10:32:49.385729 > 33 bytes data, server => client 10:32:49.385857 '200 I modify TYPE as you wanted\r\n' 10:32:49.388376 < 21 bytes data, client => server 10:32:49.388611 'SIZE verifiedserver\r\n' 10:32:49.392794 ReceiveCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind977 ../src/curl -q --output log/5/curl977.out --include --trace-ascii log/5/trace977 --trace-time -x http://127.0.0.1:41733 http://firsthost.me. -c log/5/cookies977 > log/5/stdout977 2> log/5/stderr977 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind976 ../src/curl -q --output log/6/curl976.out --include --trace-ascii log/6/trace976 --trace-time -x http://127.0.0.1:33363 http://firsthost.com --location-trusted -u joe:secret > log/6/stdout976 2> log/6/stderr976 d DATA (on stdin) 10:32:49.392986 > 8 bytes data, server => client 10:32:49.393085 '213 17\r\n' 10:32:49.394972 < 21 bytes data, client => server 10:32:49.395166 'RETR verifiedserver\r\n' 10:32:49.396468 Received DATA (on stdin) 10:32:49.396698 > 29 bytes data, server => client 10:32:49.396792 '150 Binary junk (17 bytes).\r\n' 10:32:49.408059 Received DATA (on stdin) 10:32:49.408349 > 28 bytes data, server => client 10:32:49.408490 '226 File transfer complete\r\n' 10:32:49.443162 < 6 bytes data, client => server 10:32:49.443388 'QUIT\r\n' 10:32:49.447667 Received DATA (on stdin) 10:32:49.447882 > 18 bytes data, server => client 10:32:49.447981 '221 bye bye baby\r\n' 10:32:49.449705 ====> Client disconnect 10:32:49.454463 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:48.363316 Running IPv4 version 10:32:48.363931 Listening on port 43827 10:32:48.364251 Wrote pid 124303 to log/7/server/ftp_sockdata.pid 10:32:48.364421 Received PING (on stdin) 10:32:48.370874 Received PORT (on stdin) 10:32:48.378617 ====> Client connect 10:32:48.396969 Received DATA (on stdin) 10:32:48.397164 > 17 bytes data, server => client 10:32:48.397277 'WE ROOLZ: 79543\r\n' 10:32:48.398806 Received DISC (on stdin) 10:32:48.399093 ====> Client forcibly disconnected 10:32:48.402468 Received QUIT (on stdin) 10:32:48.402731 quits 10:32:48.403163 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:32:48.161028 ====> Client connect 10:32:48.161342 accept_connection 3 returned 4 10:32:48.161519 accept_connection 3 returned 0 10:32:48.161656 Read 93 bytes 10:32:48.161757 Process 93 bytes request 10:32:48.161849 Got request: GET /verifiedserver HTTP/1.1 10:32:48.161922 Are-we-friendly question received 10:32:48.162175 Wrote request (93 bytes) input to log/7/server.input 10:32:48.162469 Identifying ourselves as friends 10:32:48.163321 Response sent (56 bytes) and written to log/7/server.response 10:32:48.163482 special request received, no persistency 10:32:48.163561 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 38898 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 973 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind973 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind973 test 0977...[URL with trailing dot and receiving a cookie for the TLD with dot] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind977 ../src/curl -q --output log/5/curl977.out --include --trace-ascii log/5/trace977 --trace-time -x http://127.0.0.1:41733 http://firsthost.me. -c log/5/cookies977 > log/5/stdout977 2> log/5/stderr977 977: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 977 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind977 ../src/curl -q --output log/5/curl977.out --include --trace-ascii log/5/trace977 --trace-time -x http://127.0.0.1:41733 http://firsthost.me. -c log/5/cookies977 > log/5/stdout977 2> log/5/stderr977 === End of file commands.log === Start of file http_server.log 10:32:49.582917 ====> Client connect 10:32:49.583447 accept_connection 3 returned 4 10:32:49.583788 accept_connection 3 returned 0 10:32:49.584025 Read 93 bytes 10:32:49.584207 Process 93 bytes request 10:32:49.584355 Got request: GET /verifiedserver HTTP/1.1 10:32:49.584473 Are-we-friendly question received 10:32:49.584785 Wrote request (93 bytes) input to log/5/server.input 10:32:49.585084 Identifying ourselves as friends 10:32:49.586100 Response sent (56 bytes) and written to log/5/server.response 10:32:49.586284 special request received, no persistency 10:32:49.590627 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 44944 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 977 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind977 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind975 ../src/curl -q --output log/2/curl975.out --include --trace-ascii log/2/trace975 --trace-time http://127.0.0.1:43789/975 --location-trusted -u joe:secret > log/2/stdout975 2> log/2/stderr975 valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind977 test 0976...[HTTP with auth redirected to HTTP on a diff port --location-trusted] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind976 ../src/curl -q --output log/6/curl976.out --include --trace-ascii log/6/trace976 --trace-time -x http://127.0.0.1:33363 http://firsthost.com --location-trusted -u joe:secret > log/6/stdout976 2> log/6/stderr976 976: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 976 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind976 ../src/curl -q --output log/6/curl976.out --include --trace-ascii log/6/trace976 --trace-time -x http://127.0.0.1:33363 http://firsthost.com --location-trusted -u joe:secret > log/6/stdout976 2> log/6/stderr976 === End of file commands.log === Start of file http_server.log 10:32:48.458780 ====> Client connect 10:32:48.459209 accept_connection 3 returned 4 10:32:48.459412 accept_connection 3 returned 0 10:32:48.459562 Read 93 bytes 10:32:48.459648 Process 93 bytes request 10:32:48.459736 Got request: GET /verifiedserver HTTP/1.1 10:32:48.459814 Are-we-friendly question received 10:32:48.460037 Wrote request (93 bytes) input to log/6/server.input 10:32:48.460245 Identifying ourselves as friends 10:32:48.461021 Response sent (56 bytes) and written to log/6/server.response 10:32:48.461198 special request received, no persistency 10:32:48.461285 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 56690 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 976 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind976 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind976 test 0975...[HTTP with auth redirected to FTP allowing auth to continue] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind975 ../src/curl -q --output log/2/curl975.out --include --trace-ascii log/2/trace975 --trace-time http://127.0.0.1:43789/975 --location-trusted -u joe:secret > log/2/stdout975 2> log/2/stderr975 975: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 975 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind975 ../src/curl -q --output log/2/curl975.out --include --trace-ascii log/2/trace975 --trace-time http://127.0.0.1:43789/975 --location-trusted -u joe:secret > log/2/stdout975 2> log/2/stderr975 === End of file commands.log === Start of file ftp_server.log 10:32:48.937636 ====> Client connect 10:32:48.939056 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:48.941065 < "USER anonymous" 10:32:48.941652 > "331 We are happy you popped in![CR][LF]" 10:32:48.943244 < "PASS ftp@example.com" 10:32:48.943704 > "230 Welcome you silly person[CR][LF]" 10:32:48.950581 < "PWD" 10:32:48.951063 > "257 "/" is current directory[CR][LF]" 10:32:48.954734 < "EPSV" 10:32:48.955082 ====> Passive DATA channel requested by client 10:32:48.955267 DATA sockfilt for passive data channel starting... 10:32:48.974556 DATA sockfilt for passive data channel started (pid 124433) 10:32:48.978480 DATA sockfilt for passive data channel listens on port 42295 10:32:48.978972 > "229 Entering Passive Mode (|||42295|)[LF]" 10:32:48.979256 Client has been notified that DATA conn will be accepted on port 42295 10:32:48.982340 Client connects to port 42295 10:32:48.982795 ====> Client established passive DATA connection on port 42295 10:32:48.983974 < "TYPE I" 10:32:48.984403 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:48.987289 < "SIZE verifiedserver" 10:32:48.987821 > "213 17[CR][LF]" 10:32:48.993155 < "RETR verifiedserver" 10:32:48.993904 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:48.994846 =====> Closing passive DATA connection... 10:32:48.995187 Server disconnects passive DATA connection 10:32:48.997155 Server disconnected passive DATA connection 10:32:48.997729 DATA sockfilt for passive data channel quits (pid 124433) 10:32:49.000188 DATA sockfilt for passive data channel quit (pid 124433) 10:32:49.000658 =====> Closed passive DATA connection 10:32:49.001152 > "226 File transfer complete[CR][LF]" 10:32:49.040733 < "QUIT" 10:32:49.041376 > "221 bye bye baby[CR][LF]" 10:32:49.046367 MAIN sockfilt said DISC 10:32:49.047002 ====> Client disconnected 10:32:49.047959 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:48.602515 ====> Client connect 10:32:48.607962 Received DATA (on stdin) 10:32:48.608226 > 160 bytes data, server => client 10:32:48.608362 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:48.608452 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:48.608523 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:48.609323 < 16 bytes data, client => server 10:32:48.609547 'USER anonymous\r\n' 10:32:48.610552 Received DATA (on stdin) 10:32:48.610765 > 33 bytes data, server => client 10:32:48.610859 '331 We are happy you popped in!\r\n' 10:32:48.611538 < 22 bytes data, client => server 10:32:48.611730 'PASS ftp@example.com\r\n' 10:32:48.613782 Received DATA (on stdin) 10:32:48.614055 > 30 bytes data, server => client 10:32:48.614189 '230 Welcome you silly person\r\n' 10:32:48.614992 < 5 bytes data, client => server 10:32:48.615218 'PWD\r\n' 10:32:48.62CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind978 ../src/curl -q --output log/4/curl978.out --include --trace-ascii log/4/trace978 --trace-time http://127.0.0.1:36757/978 --stderr log/4/redir --silent -w '%{stderr}nonsense\n' > log/4/stdout978 2> log/4/stderr978 1749 Received DATA (on stdin) 10:32:48.622020 > 30 bytes data, server => client 10:32:48.622118 '257 "/" is current directory\r\n' 10:32:48.622990 < 6 bytes data, client => server 10:32:48.623193 'EPSV\r\n' 10:32:48.647969 Received DATA (on stdin) 10:32:48.648132 > 38 bytes data, server => client 10:32:48.648233 '229 Entering Passive Mode (|||42295|)\n' 10:32:48.652271 < 8 bytes data, client => server 10:32:48.652492 'TYPE I\r\n' 10:32:48.653267 Received DATA (on stdin) 10:32:48.653463 > 33 bytes data, server => client 10:32:48.653556 '200 I modify TYPE as you wanted\r\n' 10:32:48.655493 < 21 bytes data, client => server 10:32:48.655700 'SIZE verifiedserver\r\n' 10:32:48.659934 Received DATA (on stdin) 10:32:48.660157 > 8 bytes data, server => client 10:32:48.660263 '213 17\r\n' 10:32:48.661063 < 21 bytes data, client => server 10:32:48.661273 'RETR verifiedserver\r\n' 10:32:48.664475 Received DATA (on stdin) 10:32:48.664691 > 29 bytes data, server => client 10:32:48.664864 '150 Binary junk (17 bytes).\r\n' 10:32:48.670035 Received DATA (on stdin) 10:32:48.670297 > 28 bytes data, server => client 10:32:48.670551 '226 File transfer complete\r\n' 10:32:48.708699 < 6 bytes data, client => server 10:32:48.708993 'QUIT\r\n' 10:32:48.710302 Received DATA (on stdin) 10:32:48.710682 > 18 bytes data, server => client 10:32:48.710828 '221 bye bye baby\r\n' 10:32:48.714524 ====> Client disconnect 10:32:48.716446 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:48.641288 Running IPv4 version 10:32:48.641855 Listening on port 42295 10:32:48.642320 Wrote pid 124433 to log/2/server/ftp_sockdata.pid 10:32:48.642637 Received PING (on stdin) 10:32:48.646657 Received PORT (on stdin) 10:32:48.650918 ====> Client connect 10:32:48.663816 Received DATA (on stdin) 10:32:48.664058 > 17 bytes data, server => client 10:32:48.664174 'WE ROOLZ: 79558\r\n' 10:32:48.664523 Received DISC (on stdin) 10:32:48.664722 ====> Client forcibly disconnected 10:32:48.667159 Received QUIT (on stdin) 10:32:48.667411 quits 10:32:48.667899 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:32:48.439590 ====> Client connect 10:32:48.439968 accept_connection 3 returned 4 10:32:48.440182 accept_connection 3 returned 0 10:32:48.440349 Read 93 bytes 10:32:48.440449 Process 93 bytes request 10:32:48.440547 Got request: GET /verifiedserver HTTP/1.1 10:32:48.440650 Are-we-friendly question received 10:32:48.440931 Wrote request (93 bytes) input to log/2/server.input 10:32:48.441148 Identifying ourselves as friends 10:32:48.441984 Response sent (56 bytes) and written to log/2/server.response 10:32:48.442135 special request received, no persistency 10:32:48.442213 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 39788 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 975 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind975 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind975 test 0978...[verify that --stderr works for -w's stderr as well] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind978 ../src/curl -q --output log/4/curl978.out --include --trace-ascii log/4/trace978 --trace-time http://127.0.0.1:36757/978 --stderr log/4/redir --silent -w '%{stderr}nonsense\n' > log/4/stdout978 2> log/4/stderr978 978: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 978 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind978 ../src/curl -q --output log/4/curl978.out --include --trace-ascii log/4/trace978 --trace-time http://127.0.0.1:36757/978 --stderr log/4/redir --silent -w '%{stderr}nonsense\n' > log/4/stdout978 2> log/4/stderr978 === End of file commands.log === Start of file http_server.log 10:32:49.846820 ====> Client connect 10:32:49.847162 accept_connection 3 returned 4 10:32:49.847374 accept_connection 3 returned 0 10:32:49.847545 Read 93 bytes 10:32:49.847640 Process 93 bytes request 10:32:49.847721 Got request: GET /verifiedserver HTTP/1.1 10:32:49.847785 Are-we-friendly question received 10:32:49.848002 Wrote request (93 bytes) input to log/4/server.input 10:32:49.848166 Identifying ourselves as friends 10:32:49.848881 Response sent (56 bytes) and written to log/4/server.response 10:32:49.849056 special request received, no persistency 10:32:49.849131 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 40128 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 978 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind978 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: pacCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind979 ../src/curl -q --output log/3/curl979.out --include --trace-ascii log/3/trace979 --trace-time http://first:secret@127.0.0.1:36933/979 -L -u smith:doggie > log/3/stdout979 2> log/3/stderr979 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind980 ../src/curl -q --output log/1/curl980.out --include --trace-ascii log/1/trace980 --trace-time smtp://127.0.0.1:42637/980 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --ssl --sasl-ir -T - log/1/stdout980 2> log/1/stderr980 kage on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind978 test 0979...[-u with redirect to absolute URL using same origin and auth] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind979 ../src/curl -q --output log/3/curl979.out --include --trace-ascii log/3/trace979 --trace-time http://first:secret@127.0.0.1:36933/979 -L -u smith:doggie > log/3/stdout979 2> log/3/stderr979 979: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 979 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind979 ../src/curl -q --output log/3/curl979.out --include --trace-ascii log/3/trace979 --trace-time http://first:secret@127.0.0.1:36933/979 -L -u smith:doggie > log/3/stdout979 2> log/3/stderr979 === End of file commands.log === Start of file http_server.log 10:32:49.011458 ====> Client connect 10:32:49.011792 accept_connection 3 returned 4 10:32:49.011962 accept_connection 3 returned 0 10:32:49.012109 Read 93 bytes 10:32:49.012196 Process 93 bytes request 10:32:49.012283 Got request: GET /verifiedserver HTTP/1.1 10:32:49.012352 Are-we-friendly question received 10:32:49.012648 Wrote request (93 bytes) input to log/3/server.input 10:32:49.012935 Identifying ourselves as friends 10:32:49.013870 Response sent (56 bytes) and written to log/3/server.response 10:32:49.014076 special request received, no persistency 10:32:49.014204 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 48042 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 979 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind979 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind979 test 0980...[SMTP STARTTLS pipelined server response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind980 ../src/curl -q --output log/1/curl980.out --include --trace-ascii log/1/trace980 --trace-time smtp://127.0.0.1:42637/980 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --ssl --sasl-ir -T - log/1/stdout980 2> log/1/stderr980 980: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 980 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind980 ../src/curl -q --output log/1/curl980.out --include --trace-ascii log/1/trace980 --trace-time smtp://127.0.0.1:42637/980 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret --ssl --sasl-ir -T - log/1/stdout980 2> log/1/stderr980 === End of file commands.log === Start of file server.cmd CAPA STARTTLS AUTH PLAIN REPLY STARTTLS 454 currently unavailable\r\n235 Authenticated\r\n250 2.1.0 Sender ok\r\n250 2.1.5 Recipient ok\r\n354 Enter mail\r\n250 2.0.0 Accepted REPLY AUTH 535 5.7.8 Authentication credentials invalid Testnum 980 === End of file server.cmd === Start of file smtp_server.log 10:32:49.460319 ====> Client connect 10:32:49.465787 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:49.468327 < "EHLO verifiedserver" 10:32:49.468854 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:49.470792 < "HELP" 10:32:49.471294 > "214 WE ROOLZ: 107206[CR][LF]" 10:32:49.471516 return proof we are we 10:32:49.474389 < "QUIT" 10:32:49.474893 > "221 curl ESMTP server signing off[CR][LF]" 10:32:49.485683 MAIN sockfilt said DISC 10:32:49.486334 ====> Client disconnected 10:32:49.487280 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:49.128377 ====> Client connect 10:32:49.130695 Received DATA (on stdin) 10:32:49.130967 > 160 bytes data, server => client 10:32:49.134664 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:49.134936 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:49.135049 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:49.136214 < 21 bytes data, client => server 10:32:49.136444 'EHLO verifiedserver\r\n' 10:32:49.137767 Received DATA (on stdin) 10:32:49.137944 > 53 bytes data, server => client 10:32:49.138047 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:49.138913 < 6 bytes data, client => server 10:32:49.139149 'HELP\r\n' 10:32:49.140195 Received DATA (on stdin) 10:32:49.140359 > 22 bytes data, server => client 10:32:49.140452 '214 WE ROOLZ: 107206\r\n' 10:32:49.141572 < 6 bytes data, client => server 10:32:49.141786 'QUIT\r\n' 10:32:49.149413 Received DATA (on stdin) 10:32:49.149623 > 35 bytes data, server => client 10:32:49.149721 '221 curl ESMTP server signing off\r\n' 10:32:49.150516 ====> Client disconnecCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind981 ../src/curl -q --output log/8/curl981.out --include --trace-ascii log/8/trace981 --trace-time imap://127.0.0.1:44267/981 -T log/8/upload981 -u user:secret --ssl > log/8/stdout981 2> log/8/stderr981 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind982 ../src/curl -q --output log/7/curl982.out --include --trace-ascii log/7/trace982 --trace-time pop3://127.0.0.1:46127/982 -u user:secret --ssl > log/7/stdout982 2> log/7/stderr982 t 10:32:49.156523 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-980 mail body === End of file stdin-for-980 === Start of file valgrind980 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind980 test 0981...[IMAP STARTTLS pipelined server response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind981 ../src/curl -q --output log/8/curl981.out --include --trace-ascii log/8/trace981 --trace-time imap://127.0.0.1:44267/981 -T log/8/upload981 -u user:secret --ssl > log/8/stdout981 2> log/8/stderr981 981: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 981 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind981 ../src/curl -q --output log/8/curl981.out --include --trace-ascii log/8/trace981 --trace-time imap://127.0.0.1:44267/981 -T log/8/upload981 -u user:secret --ssl > log/8/stdout981 2> log/8/stderr981 === End of file commands.log === Start of file imap_server.log 10:32:49.824233 ====> Client connect 10:32:49.826089 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:49.836031 < "A001 CAPABILITY" 10:32:49.836648 > "A001 BAD Command[CR][LF]" 10:32:49.848942 < "A002 LIST "verifiedserver" *" 10:32:49.849322 LIST_imap got "verifiedserver" * 10:32:49.849806 > "* LIST () "/" "WE ROOLZ: 114695"[CR][LF]" 10:32:49.850213 > "A002 OK LIST Completed[CR][LF]" 10:32:49.850410 return proof we are we 10:32:49.899272 < "A003 LOGOUT" 10:32:49.899702 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:49.899981 > "A003 OK LOGOUT completed[CR][LF]" 10:32:49.904474 MAIN sockfilt said DISC 10:32:49.904873 ====> Client disconnected 10:32:49.905561 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:49.490600 ====> Client connect 10:32:49.497434 Received DATA (on stdin) 10:32:49.497737 > 178 bytes data, server => client 10:32:49.497967 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:49.498176 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:49.498527 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:49.498730 'rve\r\n' 10:32:49.501262 < 17 bytes data, client => server 10:32:49.501507 'A001 CAPABILITY\r\n' 10:32:49.506126 Received DATA (on stdin) 10:32:49.506430 > 18 bytes data, server => client 10:32:49.506578 'A001 BAD Command\r\n' 10:32:49.513136 < 30 bytes data, client => server 10:32:49.513294 'A002 LIST "verifiedserver" *\r\n' 10:32:49.518718 Received DATA (on stdin) 10:32:49.518943 > 34 bytes data, server => client 10:32:49.519060 '* LIST () "/" "WE ROOLZ: 114695"\r\n' 10:32:49.519391 Received DATA (on stdin) 10:32:49.519508 > 24 bytes data, server => client 10:32:49.519613 'A002 OK LIST Completed\r\n' 10:32:49.567350 < 13 bytes data, client => server 10:32:49.567616 'A003 LOGOUT\r\n' 10:32:49.568598 Received DATA (on stdin) 10:32:49.568768 > 36 bytes data, server => client 10:32:49.568869 '* BYE curl IMAP server signing off\r\n' 10:32:49.569223 Received DATA (on stdin) 10:32:49.569383 > 26 bytes data, server => client 10:32:49.569493 'A003 OK LOGOUT completed\r\n' 10:32:49.570737 ====> Client disconnect 10:32:49.573790 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd CAPA STARTTLS REPLY STARTTLS A002 BAD currently unavailable\r\nA003 OK Authenticated\r\nA004 OK Accepted REPLY LOGIN A003 BAD Authentication credentials invalid Testnum 981 === End of file server.cmd === Start of file upload981 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? === End of file upload981 === Start of file valgrind981 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind981 test 0982...[POP3 STARTTLS pipelined server response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind982 ../src/curl -q --output log/7/curl982.out --include --trace-ascii log/7/trace982 --trace-time pop3://127.0.0.1:46127/982 -u user:secret --ssl > log/7/stdout982 2> log/7/stderr982 982: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 982 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind982 ../src/curl -q --output log/7/curl982.out --include --trace-ascii log/7/trace982 --trace-time pop3://127.0.0.1:46127/982 -u user:secret --ssl > log/7/stdout982 2> log/7/stderr982 ===CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind984 ../src/curl -q --output log/6/curl984.out --include --trace-ascii log/6/trace984 --trace-time imap://127.0.0.1:34025/984 -T log/6/upload984 -u user:secret --ssl-reqd > log/6/stdout984 2> log/6/stderr984 End of file commands.log === Start of file pop3_server.log 10:32:49.827334 ====> Client connect 10:32:49.829337 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:49.835978 < "CAPA" 10:32:49.836647 > "-ERR Unrecognized command[CR][LF]" 10:32:49.842228 < "RETR verifiedserver" 10:32:49.842656 return proof we are we 10:32:49.843122 > "+OK Mail transfer starts[CR][LF]" 10:32:49.843491 > "WE ROOLZ: 117426[CR][LF]" 10:32:49.843806 > ".[CR][LF]" 10:32:49.888573 < "QUIT" 10:32:49.889135 > "+OK curl POP3 server signing off[CR][LF]" 10:32:49.894878 MAIN sockfilt said DISC 10:32:49.895423 ====> Client disconnected 10:32:49.896181 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:49.495431 ====> Client connect 10:32:49.498557 Received DATA (on stdin) 10:32:49.498805 > 178 bytes data, server => client 10:32:49.498965 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:49.499110 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:49.499250 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:49.499372 've \r\n' 10:32:49.500636 < 6 bytes data, client => server 10:32:49.500920 'CAPA\r\n' 10:32:49.506519 Received DATA (on stdin) 10:32:49.506704 > 27 bytes data, server => client 10:32:49.506858 '-ERR Unrecognized command\r\n' 10:32:49.507775 < 21 bytes data, client => server 10:32:49.508004 'RETR verifiedserver\r\n' 10:32:49.512052 Received DATA (on stdin) 10:32:49.512273 > 26 bytes data, server => client 10:32:49.512370 '+OK Mail transfer starts\r\n' 10:32:49.512762 Received DATA (on stdin) 10:32:49.512904 > 18 bytes data, server => client 10:32:49.512982 'WE ROOLZ: 117426\r\n' 10:32:49.513086 Received DATA (on stdin) 10:32:49.513171 > 3 bytes data, server => client 10:32:49.513248 '.\r\n' 10:32:49.556126 < 6 bytes data, client => server 10:32:49.556394 'QUIT\r\n' 10:32:49.558824 Received DATA (on stdin) 10:32:49.559056 > 34 bytes data, server => client 10:32:49.559149 '+OK curl POP3 server signing off\r\n' 10:32:49.561228 ====> Client disconnect 10:32:49.565765 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA STLS USER REPLY STLS -ERR currently unavailable\r\n+OK user accepted\r\n+OK authenticated REPLY PASS -ERR Authentication credentials invalid Testnum 982 === End of file server.cmd === Start of file valgrind982 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind982 test 0984...[IMAP require STARTTLS with failing capabilities] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind984 ../src/curl -q --output log/6/curl984.out --include --trace-ascii log/6/trace984 --trace-time imap://127.0.0.1:34025/984 -T log/6/upload984 -u user:secret --ssl-reqd > log/6/stdout984 2> log/6/stderr984 984: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 984 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind984 ../src/curl -q --output log/6/curl984.out --include --trace-ascii log/6/trace984 --trace-time imap://127.0.0.1:34025/984 -T log/6/upload984 -u user:secret --ssl-reqd > log/6/stdout984 2> log/6/stderr984 === End of file commands.log === Start of file imap_server.log 10:32:49.930604 ====> Client connect 10:32:49.933534 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:32:49.938135 < "A001 CAPABILITY" 10:32:49.939265 > "A001 BAD Command[CR][LF]" 10:32:49.943602 < "A002 LIST "verifiedserver" *" 10:32:49.944170 LIST_imap got "verifiedserver" * 10:32:49.944834 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:32:49.945405 > "A002 OK LIST Completed[CR][LF]" 10:32:49.945875 return proof we are we 10:32:49.995495 < "A003 LOGOUT" 10:32:49.998123 > "* BYE curl IMAP server signing off[CR][LF]" 10:32:49.999234 > "A003 OK LOGOUT completed[CR][LF]" 10:32:49.999648 MAIN sockfilt said DISC 10:32:50.005417 ====> Client disconnected 10:32:50.006228 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:32:50.598818 ====> Client connect 10:32:50.601046 Received DATA (on stdin) 10:32:50.601230 > 178 bytes data, server => client 10:32:50.601458 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:50.601596 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:50.601691 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:32:50.601765 'rve\r\n' 10:32:50.604842 < 17 bytes data, client => server 10:32:50.605135 'A001 CAPABILITY\r\n' 10:32:50.607638 Received DATA (on stdin) 10:32:50.607846 > 18 bytes data, server => client 10:32:50.608608 'A001 BAD Command\r\n' 10:32:50.610605 < 30 bytes data, client => server 10:32:50.610856 'A002 LIST "verifiedserver" *\r\n' 10:32:50.615178 Received DATA (on stdin) 10:32:50.615422 > 34 bytes data, server => client 10:32:50.615543 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:32:50.616033 Received DATA (on stdin) 10:32:50.616223 > 24 bytes data, server => client 10:32:50.616359 'A002 OK LIST Completed\r\n' 10:32:50.663182 < 13 bytes data, client => server 10:32:50.663399 'A003 LOGOUT\r\n' 10:32:50.664839 Received DATA (on stdin) 10:32:50.665032 > 36 bytes data, server => client 10:32:50.665208 '* BYE curl IMAP server signing off\r\n' 10:32:50.666587 ====> Client disconnect 10:32:50.667460 Received DATA (on stdin) 10:32:50.667639 Throwing away data bytes 10:32:50.667741 > 26 bytes data, server => client 10:32:50.667906 'A003 OK LOGOUT completed\r\n' 10:32:50.670079 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd REPLY CAPABILITY A001 BAD Not implemented Testnum 984 === End of file server.cmd === Start of file upload984 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? === End of file upload984 === Start of file valgrind984 valgrind: Fatal error at startup: a function redirection valgrinCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind983 ../src/curl -q --output log/5/curl983.out --include --trace-ascii log/5/trace983 --trace-time --ssl --ftp-ssl-control ftp://127.0.0.1:43393/983 -T log/5/test983.txt -u user:secret -P 127.0.0.1 > log/5/stdout983 2> log/5/stderr983 d: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind984 test 0983...[FTP STARTTLS pipelined server response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind983 ../src/curl -q --output log/5/curl983.out --include --trace-ascii log/5/trace983 --trace-time --ssl --ftp-ssl-control ftp://127.0.0.1:43393/983 -T log/5/test983.txt -u user:secret -P 127.0.0.1 > log/5/stdout983 2> log/5/stderr983 983: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 983 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind983 ../src/curl -q --output log/5/curl983.out --include --trace-ascii log/5/trace983 --trace-time --ssl --ftp-ssl-control ftp://127.0.0.1:43393/983 -T log/5/test983.txt -u user:secret -P 127.0.0.1 > log/5/stdout983 2> log/5/stderr983 === End of file commands.log === Start of file ftp_server.log 10:32:49.902343 ====> Client connect 10:32:49.903839 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:49.906415 < "USER anonymous" 10:32:49.907007 > "331 We are happy you popped in![CR][LF]" 10:32:49.914966 < "PASS ftp@example.com" 10:32:49.915576 > "230 Welcome you silly person[CR][LF]" 10:32:49.917443 < "PWD" 10:32:49.918098 > "257 "/" is current directory[CR][LF]" 10:32:49.919939 < "EPSV" 10:32:49.920327 ====> Passive DATA channel requested by client 10:32:49.920736 DATA sockfilt for passive data channel starting... 10:32:49.932527 DATA sockfilt for passive data channel started (pid 124917) 10:32:49.933866 DATA sockfilt for passive data channel listens on port 43387 10:32:49.934461 > "229 Entering Passive Mode (|||43387|)[LF]" 10:32:49.934800 Client has been notified that DATA conn will be accepted on port 43387 10:32:49.938051 Client connects to port 43387 10:32:49.938597 ====> Client established passive DATA connection on port 43387 10:32:49.939709 < "TYPE I" 10:32:49.940290 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:49.946303 < "SIZE verifiedserver" 10:32:49.946890 > "213 17[CR][LF]" 10:32:49.950117 < "RETR verifiedserver" 10:32:49.950810 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:49.951827 =====> Closing passive DATA connection... 10:32:49.952186 Server disconnects passive DATA connection 10:32:49.958057 Server disconnected passive DATA connection 10:32:49.958509 DATA sockfilt for passive data channel quits (pid 124917) 10:32:49.960555 DATA sockfilt for passive data channel quit (pid 124917) 10:32:49.960963 =====> Closed passive DATA connection 10:32:49.961406 > "226 File transfer complete[CR][LF]" 10:32:50.000100 < "QUIT" 10:32:50.000814 > "221 bye bye baby[CR][LF]" 10:32:50.007584 MAIN sockfilt said DISC 10:32:50.008077 ====> Client disconnected 10:32:50.008679 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:49.570594 ====> Client connect 10:32:49.572723 Received DATA (on stdin) 10:32:49.573061 > 160 bytes data, server => client 10:32:49.573209 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:49.573309 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:49.573377 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:49.574209 < 16 bytes data, client => server 10:32:49.574621 'USER anonymous\r\n' 10:32:49.575932 Received DATA (on stdin) 10:32:49.576129 > 33 bytes data, server => client 10:32:49.576237 '331 We are happy you popped in!\r\n' 10:32:49.582608 < 22 bytes data, client => server 10:32:49.582856 'PASS ftp@example.com\r\n' 10:32:49.584502 Received DATA (on stdin) 10:32:49.584743 > 30 bytes data, server => client 10:32:49.584869 '230 Welcome you silly person\r\n' 10:32:49.585698 < 5 bytes data, client => server 10:32:49.585897 'PWD\r\n' 10:32:49.587005 Received DATA (on stdin) 10:32:49.587228 > 30 bytes data, server => client 10:32:49.587352 '257 "/" is current directory\r\n' 10:32:49.588188 < 6 bytes data, client => server 10:32:49.588373 'EPSV\r\n' 10:32:49.603363 Received DATA (on stdin) 10:32:49.603606 > 38 bytes data, server => client 10:32:49.603723 '229 Entering Passive Mode (|||43387|)\n' 10:32:49.605503 < 8 bytes data, client => server 10:32:49.605706 'TYPE I\r\n' 10:32:49.609212 Received DATA (on stdin) 10:32:49.609502 > 33 bytes data, server => client 10:32:49.609632 '200 I modify TYPE as you wanted\r\n' 10:32:49.611141 < 21 bytes data, client => server 10:32:49.611374 'SIZE verifiedserver\r\n' 10:32:49.616604 Received DATA (on stdin) 10:32:49.616839 > 8 bytes data, server => client 10:32:49.616943 '213 17\r\n' 10:32:49.617792 < 21 bytes data, client => server 10:32:49.618085 'RETR verifiedserver\r\n' 10:32:49.619702 Received DATA (on stdin) 10:32:49.619984 > 29 bytes data, server => client 10:32:49.620132 '150 Binary junk (17 bytes).\r\n' 10:32:49.630470 Received DATA (on stdin) 10:32:49.630733 > 28 bytes data, server => client 10:32:49.630861 '226 File transfer complete\r\n' 10:32:49.666583 < 6 bytes data, client => server 10:32:49.666836 'QUIT\r\n' 10:32:49.669703 Received DATA (on stdin) 10:32:49.669975 > 18 bytes data, server => client 10:32:49.670132 '221 bye bye baby\r\n' 10:32:49.671538 ====> Client disconnect 10:32:49.677005 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:49.599699 Running IPv4 version 10:32:49.600150 Listening on port 43387 10:32:49.600765 Wrote pid 124917 to log/5/server/ftp_sockdata.pid 10:32:49.601014 Received PING (on stdin) 10:32:49.601934 Received PORT (on stdin) 10:32:49.606495 ====> Client connect 10:32:49.620241 Received DATA (on stdin) 10:32:49.620496 > 17 bytes data, server => client 10:32:49.620712 'WE ROOLZ: 79602\r\n' 10:32:49.626459 Received DISC (on stdin) 10:32:49.626793 ====> Client forcibly disconnected 10:32:49.627764 Received QUIT (on stdin) 10:32:49.627975 quits 10:32:49.628522 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY AUTH 500 unknown command\r\n500 unknown command\r\n331 give password\r\n230 Authenticated\r\n257 "/"\r\n200 OK\r\n200 OK\r\n200 OK\r\n226 Transfer complete REPLY PASS 530 Login incorrect Testnum 983 === End of file server.cmd === Start of file test983.txt data to see that FTPS works so does it? === End of file test983.txt === Start of file valgrind983 valgrind: Fatal error at startup: a function redirection valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind985 ../src/curl -q --output log/2/curl985.out --include --trace-ascii log/2/trace985 --trace-time pop3://127.0.0.1:44883/985 -u user:secret --ssl-reqd > log/2/stdout985 2> log/2/stderr985 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind986 ../src/curl -q --output log/4/curl986.out --include --trace-ascii log/4/trace986 --trace-time --ssl-reqd --ftp-ssl-control ftp://127.0.0.1:42635/986 -T log/4/test986.txt -u user:secret > log/4/stdout986 2> log/4/stderr986 which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind983 test 0985...[POP3 require STARTTLS with failing capabilities] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind985 ../src/curl -q --output log/2/curl985.out --include --trace-ascii log/2/trace985 --trace-time pop3://127.0.0.1:44883/985 -u user:secret --ssl-reqd > log/2/stdout985 2> log/2/stderr985 985: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 985 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind985 ../src/curl -q --output log/2/curl985.out --include --trace-ascii log/2/trace985 --trace-time pop3://127.0.0.1:44883/985 -u user:secret --ssl-reqd > log/2/stdout985 2> log/2/stderr985 === End of file commands.log === Start of file pop3_server.log 10:32:50.097324 ====> Client connect 10:32:50.099024 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:50.102170 < "CAPA" 10:32:50.102668 > "-ERR Unrecognized command[CR][LF]" 10:32:50.105151 < "RETR verifiedserver" 10:32:50.105786 return proof we are we 10:32:50.106313 > "+OK Mail transfer starts[CR][LF]" 10:32:50.106737 > "WE ROOLZ: 117443[CR][LF]" 10:32:50.107047 > ".[CR][LF]" 10:32:50.157129 < "QUIT" 10:32:50.158304 > "+OK curl POP3 server signing off[CR][LF]" 10:32:50.165640 MAIN sockfilt said DISC 10:32:50.166105 ====> Client disconnected 10:32:50.166793 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:49.765625 ====> Client connect 10:32:49.768406 Received DATA (on stdin) 10:32:49.768619 > 178 bytes data, server => client 10:32:49.768710 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:49.768789 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:49.768862 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:49.768926 've \r\n' 10:32:49.769739 < 6 bytes data, client => server 10:32:49.769931 'CAPA\r\n' 10:32:49.771884 Received DATA (on stdin) 10:32:49.772070 > 27 bytes data, server => client 10:32:49.772153 '-ERR Unrecognized command\r\n' 10:32:49.772900 < 21 bytes data, client => server 10:32:49.773104 'RETR verifiedserver\r\n' 10:32:49.776231 Received DATA (on stdin) 10:32:49.776401 > 26 bytes data, server => client 10:32:49.776488 '+OK Mail transfer starts\r\n' 10:32:49.776788 Received DATA (on stdin) 10:32:49.776896 > 18 bytes data, server => client 10:32:49.776971 'WE ROOLZ: 117443\r\n' 10:32:49.777068 Received DATA (on stdin) 10:32:49.777169 > 3 bytes data, server => client 10:32:49.777256 '.\r\n' 10:32:49.824738 < 6 bytes data, client => server 10:32:49.825016 'QUIT\r\n' 10:32:49.828971 Received DATA (on stdin) 10:32:49.829277 > 34 bytes data, server => client 10:32:49.829426 '+OK curl POP3 server signing off\r\n' 10:32:49.830082 ====> Client disconnect 10:32:49.835073 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY CAPA -ERR Not implemented Testnum 985 === End of file server.cmd === Start of file valgrind985 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind985 test 0986...[FTP require STARTTLS while preauthenticated] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind986 ../src/curl -q --output log/4/curl986.out --include --trace-ascii log/4/trace986 --trace-time --ssl-reqd --ftp-ssl-control ftp://127.0.0.1:42635/986 -T log/4/test986.txt -u user:secret > log/4/stdout986 2> log/4/stderr986 986: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 986 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind986 ../src/curl -q --output log/4/curl986.out --include --trace-ascii log/4/trace986 --trace-time --ssl-reqd --ftp-ssl-control ftp://127.0.0.1:42635/986 -T log/4/test986.txt -u user:secret > log/4/stdout986 2> log/4/stderr986 === End of file commands.log === Start of file ftp_server.log 10:32:50.202293 ====> Client connect 10:32:50.203892 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:50.206477 < "USER anonymous" 10:32:50.207092 > "331 We are happy you popped in![CR][LF]" 10:32:50.210731 < "PASS ftp@example.com" 10:32:50.211331 > "230 Welcome you silly person[CR][LF]" 10:32:50.218542 < "PWD" 10:32:50.219081 > "257 "/" is current directory[CR][LF]" 10:32:50.222688 < "EPSV" 10:32:50.223028 ====> Passive DATA channel requested by client 10:32:50.223300 DATA sockfilt for passive data channel starting... 10:32:50.239890 DATA sockfilt for passive data channel started (pid 125029) 10CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind990 ../src/curl -q --output log/3/curl990.out --include --trace-ascii log/3/trace990 --trace-time http://127.0.0.1:36933/990 -w '%output{log/3/output}%{http_code}\n' > log/3/stdout990 2> log/3/stderr990 :32:50.242819 DATA sockfilt for passive data channel listens on port 39175 10:32:50.243612 > "229 Entering Passive Mode (|||39175|)[LF]" 10:32:50.243985 Client has been notified that DATA conn will be accepted on port 39175 10:32:50.246178 Client connects to port 39175 10:32:50.246629 ====> Client established passive DATA connection on port 39175 10:32:50.247894 < "TYPE I" 10:32:50.248498 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:50.255818 < "SIZE verifiedserver" 10:32:50.256510 > "213 17[CR][LF]" 10:32:50.264155 < "RETR verifiedserver" 10:32:50.265007 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:50.268408 =====> Closing passive DATA connection... 10:32:50.268868 Server disconnects passive DATA connection 10:32:50.269318 Fancy that; client wants to DISC, too 10:32:50.269751 Server disconnected passive DATA connection 10:32:50.270053 DATA sockfilt for passive data channel quits (pid 125029) 10:32:50.273709 DATA sockfilt for passive data channel quit (pid 125029) 10:32:50.274203 =====> Closed passive DATA connection 10:32:50.274587 > "226 File transfer complete[CR][LF]" 10:32:50.314353 < "QUIT" 10:32:50.314823 > "221 bye bye baby[CR][LF]" 10:32:50.318093 MAIN sockfilt said DISC 10:32:50.318647 ====> Client disconnected 10:32:50.319377 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:50.870508 ====> Client connect 10:32:50.872765 Received DATA (on stdin) 10:32:50.873058 > 160 bytes data, server => client 10:32:50.873230 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:50.873338 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:50.873428 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:50.874180 < 16 bytes data, client => server 10:32:50.874441 'USER anonymous\r\n' 10:32:50.875985 Received DATA (on stdin) 10:32:50.876202 > 33 bytes data, server => client 10:32:50.876319 '331 We are happy you popped in!\r\n' 10:32:50.878751 < 22 bytes data, client => server 10:32:50.879001 'PASS ftp@example.com\r\n' 10:32:50.880215 Received DATA (on stdin) 10:32:50.880438 > 30 bytes data, server => client 10:32:50.880550 '230 Welcome you silly person\r\n' 10:32:50.886705 < 5 bytes data, client => server 10:32:50.886971 'PWD\r\n' 10:32:50.887976 Received DATA (on stdin) 10:32:50.888192 > 30 bytes data, server => client 10:32:50.888319 '257 "/" is current directory\r\n' 10:32:50.890870 < 6 bytes data, client => server 10:32:50.891114 'EPSV\r\n' 10:32:50.912465 Received DATA (on stdin) 10:32:50.912751 > 38 bytes data, server => client 10:32:50.912883 '229 Entering Passive Mode (|||39175|)\n' 10:32:50.914876 < 8 bytes data, client => server 10:32:50.915021 'TYPE I\r\n' 10:32:50.917407 Received DATA (on stdin) 10:32:50.917590 > 33 bytes data, server => client 10:32:50.917701 '200 I modify TYPE as you wanted\r\n' 10:32:50.923039 < 21 bytes data, client => server 10:32:50.923352 'SIZE verifiedserver\r\n' 10:32:50.926565 Received DATA (on stdin) 10:32:50.926846 > 8 bytes data, server => client 10:32:50.926979 '213 17\r\n' 10:32:50.930974 < 21 bytes data, client => server 10:32:50.931259 'RETR verifiedserver\r\n' 10:32:50.933911 Received DATA (on stdin) 10:32:50.934170 > 29 bytes data, server => client 10:32:50.934411 '150 Binary junk (17 bytes).\r\n' 10:32:50.944402 Received DATA (on stdin) 10:32:50.944677 > 28 bytes data, server => client 10:32:50.944788 '226 File transfer complete\r\n' 10:32:50.982502 < 6 bytes data, client => server 10:32:50.982762 'QUIT\r\n' 10:32:50.983688 Received DATA (on stdin) 10:32:50.983889 > 18 bytes data, server => client 10:32:50.983987 '221 bye bye baby\r\n' 10:32:50.984584 ====> Client disconnect 10:32:50.987573 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:50.904972 Running IPv4 version 10:32:50.905734 Listening on port 39175 10:32:50.906530 Wrote pid 125029 to log/4/server/ftp_sockdata.pid 10:32:50.908178 Received PING (on stdin) 10:32:50.910641 Received PORT (on stdin) 10:32:50.914647 ====> Client connect 10:32:50.935457 Received DATA (on stdin) 10:32:50.935817 > 17 bytes data, server => client 10:32:50.936758 'WE ROOLZ: 79516\r\n' 10:32:50.937859 ====> Client disconnect 10:32:50.938136 Received DISC (on stdin) 10:32:50.938298 Crikey! Client also wants to disconnect 10:32:50.938587 Received ACKD (on stdin) 10:32:50.940422 Received QUIT (on stdin) 10:32:50.940708 quits 10:32:50.941260 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY welcome 230 Welcome REPLY AUTH 500 unknown command Testnum 986 === End of file server.cmd === Start of file test986.txt data to see that FTPS works so does it? === End of file test986.txt === Start of file valgrind986 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind986 test 0990...[use -w %output{}] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind990 ../src/curl -q --output log/3/curl990.out --include --trace-ascii log/3/trace990 --trace-time http://127.0.0.1:36933/990 -w '%output{log/3/output}%{http_code}\n' > log/3/stdout990 2> log/3/stderr990 990: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 990 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind990 ../src/curl -q --output log/3/curl990.out --include --trace-ascii log/3/trace990 --trace-time http://127.0.0.1:36933/990 -w '%output{log/3/output}%{http_code}\n' > log/3/stdout990 2> log/3/stderr990 === End of file commands.log === Start of file http_server.log 10:32:50.036396 ====> Client connect 10:32:50.036771 accept_connection 3 returned 4 10:32:50.036994 accept_connection 3 returned 0 10:32:50.038557 Read 93 bytes 10:32:50.038783 Process 93 bytes request 10:32:50.038899 Got request: GET /verifiedserver HTTP/1.1 10:32:50.038987 Are-we-friendly question received 10:32:50.039319 Wrote request (93 bytes) input to log/3/server.input 10:32:50.039656 Identifying ourselves as friends 10:32:50.042194 Response sent (56 bytes) and written to log/3/server.response 10:32:50.042484 special request received, no persistency 10:32:50.042616 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60900 * using HTTP/1.x > GET /verifiedserver HTTPCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind991 ../src/curl -q --output log/1/curl991.out --include --trace-ascii log/1/trace991 --trace-time http://127.0.0.1:36129/991 -w '%output{>>log/1/output}%{http_code}' > log/1/stdout991 2> log/1/stderr991 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind994 ../src/curl -q --include --trace-ascii log/6/trace994 --trace-time -o "log/6/#1" "http://127.0.0.1:33363/994/{hey,ho}" --skip-existing > log/6/stdout994 2> log/6/stderr994 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind992 ../src/curl -q --output log/8/curl992.out --include --trace-ascii log/8/trace992 --trace-time smtp://127.0.0.1:38345/992 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --login-options "AUTH=XOAUTH2" -T - log/8/stdout992 2> log/8/stderr992 /1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 990 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind990 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind990 test 0991...[use -w %output{} append] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind991 ../src/curl -q --output log/1/curl991.out --include --trace-ascii log/1/trace991 --trace-time http://127.0.0.1:36129/991 -w '%output{>>log/1/output}%{http_code}' > log/1/stdout991 2> log/1/stderr991 991: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 991 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind991 ../src/curl -q --output log/1/curl991.out --include --trace-ascii log/1/trace991 --trace-time http://127.0.0.1:36129/991 -w '%output{>>log/1/output}%{http_code}' > log/1/stdout991 2> log/1/stderr991 === End of file commands.log === Start of file http_server.log 10:32:50.209987 ====> Client connect 10:32:50.210299 accept_connection 3 returned 4 10:32:50.210860 accept_connection 3 returned 0 10:32:50.211062 Read 93 bytes 10:32:50.211165 Process 93 bytes request 10:32:50.211254 Got request: GET /verifiedserver HTTP/1.1 10:32:50.211325 Are-we-friendly question received 10:32:50.211636 Wrote request (93 bytes) input to log/1/server.input 10:32:50.211857 Identifying ourselves as friends 10:32:50.212684 Response sent (56 bytes) and written to log/1/server.response 10:32:50.212862 special request received, no persistency 10:32:50.212950 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 38376 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file output line one === End of file output === Start of file server.cmd Testnum 991 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind991 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind991 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind993 ../src/curl -q --output log/7/curl993.out --include --trace-ascii log/7/trace993 --trace-time pop3://127.0.0.1:46127/ -u user:secret > log/7/stdout993 2> log/7/stderr993 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind995 ../src/curl -q --trace-ascii log/5/trace995 --trace-time -o log/5/there http://127.0.0.1:41733/995 --skip-existing > log/5/stdout995 2> log/5/stderr995 test 0994...[--skip-existing with globbing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind994 ../src/curl -q --include --trace-ascii log/6/trace994 --trace-time -o "log/6/#1" "http://127.0.0.1:33363/994/{hey,ho}" --skip-existing > log/6/stdout994 2> log/6/stderr994 994: stderr FAILED: --- log/6/check-expected 2025-09-11 10:32:51.805483843 +0000 +++ log/6/check-generated 2025-09-11 10:32:51.805483843 +0000 @@ -1,2 +0,0 @@ -Note: skips transfer, "log/6/hey" exists locally[CR][LF] -Note: skips transfer, "log/6/ho" exists locally[CR][LF] == Contents of files in the log/6/ dir after test 994 === Start of file check-expected Note: skips transfer, "log/6/hey" exists locally[CR][LF] Note: skips transfer, "log/6/ho" exists locally[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind994 ../src/curl -q --include --trace-ascii log/6/trace994 --trace-time -o "log/6/#1" "http://127.0.0.1:33363/994/{hey,ho}" --skip-existing > log/6/stdout994 2> log/6/stderr994 === End of file commands.log === Start of file hey content === End of file hey === Start of file ho content === End of file ho === Start of file http_server.log 10:32:50.690753 ====> Client connect 10:32:50.691147 accept_connection 3 returned 4 10:32:50.691426 accept_connection 3 returned 0 10:32:50.693026 Read 93 bytes 10:32:50.693202 Process 93 bytes request 10:32:50.693302 Got request: GET /verifiedserver HTTP/1.1 10:32:50.693382 Are-we-friendly question received 10:32:50.693624 Wrote request (93 bytes) input to log/6/server.input 10:32:50.693778 Identifying ourselves as friends 10:32:50.694490 Response sent (56 bytes) and written to log/6/server.response 10:32:50.694612 special request received, no persistency 10:32:50.694694 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60030 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 994 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind994 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind994 test 0995...[--skip-existing without file present] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind995 ../src/curl -q --trace-ascii log/5/trace995 --trace-time -o log/5/there http://127.0.0.1:41733/995 --skip-existing > log/5/stdout995 2> log/5/stderr995 995: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 995 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind995 ../src/curl -q --trace-ascii log/5/trace995 --trace-time -o log/5/there http://127.0.0.1:41733/995 --skip-existing > log/5/stdout995 2> log/5/stderr995 === End of file commands.log === Start of file http_server.log 10:32:51.722555 ====> Client connect 10:32:51.722961 accept_connection 3 returned 4 10:32:51.723181 accept_connection 3 returned 0 10:32:51.723366 Read 93 bytes 10:32:51.723481 Process 93 bytes request 10:32:51.723588 Got request: GET /verifiedserver HTTP/1.1 10:32:51.723682 Are-we-friendly question received 10:32:51.723987 Wrote request (93 bytes) input to log/5/server.input 10:32:51.724234 Identifying ourselves as friends 10:32:51.725085 Response sent (56 bytes) and written to log/5/server.response 10:32:51.725225 special request received, no persistency 10:32:51.725304 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 58038 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 995 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind995 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind995 test 0993...[POP3 LIST 1000 messages] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind993 ../src/curl -q --output log/7/curl993.out --include --trace-ascii log/7/trace993 --trace-time pop3://127.0.0.1:46127/ -u user:secret > log/7/stdout993 2> log/7/stderr993 993: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 993 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind993 ../src/curl -q --output log/7/curl993.out --include --trace-ascii log/7/trace993 --trace-time pop3://127.0.0.1:46127/ -u user:secret > log/7/stdout993 2> log/7/stderr993 === End of file commands.log === Start of file pop3_server.log 10:32:50.928990 ====> Client connect 10:32:50.931491 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:50.943167 < "CAPA" 10:32:50.944299 > "-ERR Unrecognized command[CR][LF]" 10:32:50.948861 < "RETR verifiedserver" 10:32:50.949289 return proof we are we 10:32:50.950435 > "+OK Mail transfer starts[CR][LF]" 10:32:50.950935 > "WE ROOLZ: 117426[CR][LF]" 10:32:50.951344 > ".[CR][LF]" 10:32:50.999966 < "QUIT" 10:32:51.001114 > "+OK curl POP3 server signing off[CR][LF]" 10:32:51.002904 MAIN sockfilt said DISC 10:32:51.004018 ====> Client disconnected 10:32:51.004935 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:50.596090 ====> Client connect 10:32:50.599655 Received DATA (on stdin) 10:32:50.599939 > 178 bytes data, server => client 10:32:50.603795 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:50.604120 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:50.604307 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:50.604435 've \r\n' 10:32:50.610658 < 6 bytes data, client => server 10:32:50.610858 'CAPA\r\n' 10:32:50.612616 Received DATA (on stdin) 10:32:50.612837 > 27 bytes data, server => client 10:32:50.613678 '-ERR Unrecognized command\r\n' 10:32:50.616517 < 21 bytes data, client => server 10:32:50.616769 'RETR verifiedserver\r\n' 10:32:50.618719 Received DATA (on stdin) 10:32:50.618968 > 26 bytes data, server => client 10:32:50.620730 '+OK Mail transfer starts\r\n' 10:32:50.621248 Received DATA (on stdin) 10:32:50.621436 > 18 bytes data, server => client 10:32:50.621547 'WE ROOLZ: 117426\r\n' 10:32:50.621697 Received DATA (on stdin) 10:32:50.621795 > 3 bytes data, server => client 10:32:50.621884 '.\r\n' 10:32:50.667240 < 6 bytes data, client => server 10:32:50.667484 'QUIT\r\n' 10:32:50.669394 Received DATA (on stdin) 10:32:50.669660 > 34 bytes data, server => client 10:32:50.670592 '+OK curl POP3 server signing off\r\n' 10:32:50.671372 ====> Client disconnect 10:32:50.672244 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd Testnum 993 === End of file server.cmd === Start of file valgrind993 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind993 test 0992...[SASL verify default mechanisms are reset by login options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind992 ../src/curl -q --output log/8/curl992.out --include --trace-ascii log/8/trace992 --trace-time smtp://127.0.0.1:38345/992 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --login-options "AUTH=XOAUTH2" -T - log/8/stdout992 2> log/8/stderr992 992: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 992 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind992 ../src/curl -q --output log/8/curl992.out --include --trace-ascii log/8/trace992 --trace-time smtp://127.0.0.1:38345/992 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --login-options "AUTH=XOAUTH2" -T - log/8/stdout992 2> log/8/stderr992 === End of file commands.log === Start of file server.cmd AUTH OAUTHBEARER XOAUTH2 REPLY AUTH 334 XOAUTH2 supported REPLY dXNlcj11c2VyAWF1dGg9QmVhcmVyIG1GXzkuQjVmLTQuMUpxTQEB 235 Authenticated Testnum 992 === End of file server.cmd === Start of file smtp_server.log 10:32:50.859413 ====> Client connect 10:32:50.861100 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:50.869640 < "EHLO verifiedserver" 10:32:50.870350 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:32:50.876510 < "HELP" 10:32:50.877160 > "214 WE ROOLZ: 107099[CR][LF]" 10:32:50.877577 return proof we are we 10:32:50.886469 < "QUIT" 10:32:50.886943 > "221 curl ESMTP server signing off[CR][LF]" 10:32:50.890592 MAIN sockfilt said DISC 10:32:50.891048 ====> Client disconnected 10:32:50.891652 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:32:50.527410 ====> Client connect 10:32:50.530843 Received DATA (on stdin) 10:32:50.531167 > 160 bytes data, server => client 10:32:50.531316 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:50.531423 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:50.531506 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:50.536391 < 21 bytes data, client => server 10:32:50.536662 'EHLO verifiedserver\r\n' 10:32:50.539828 Received DATA (on stdin) 10:32:50.540082 > 53 bytes data, server => client 10:32:50.540212 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:32:50.540968 < 6 bytes data, client => server 10:32:50.541703 'HELP\r\n' 10:32:50.546482 Received DATA (on stdin) 10:32:50.546681 > 22 bytes data, server => client 10:32:50.546804 '214 WE ROOLZ: 107099\r\n' 10:32:50.549148 < 6 bytes data, client => server 10:32:50.549409 'QUIT\r\n' 10:32:50.555836 Received DATA (on stdin) 10:32:50.556034 > 35 bytes data, server => client 10:32:50.556136 '221 curl ESMTP server signing off\r\n' 10:32:50.559025 ====> CliCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind996 ../src/curl -q --include --trace-ascii log/2/trace996 --trace-time -o log/2/there http://127.0.0.1:43789/996 --skip-existing > log/2/stdout996 2> log/2/stderr996 ent disconnect 10:32:50.561611 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-992 mail body === End of file stdin-for-992 === Start of file valgrind992 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind992 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind997 ../src/curl -q --output log/4/curl997.out --include --trace-ascii log/4/trace997 --trace-time pop3://127.0.0.1:43735 -u user:secret -X 'STAT' > log/4/stdout997 2> log/4/stderr997 test 0996...[--skip-existing with file present] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind996 ../src/curl -q --include --trace-ascii log/2/trace996 --trace-time -o log/2/there http://127.0.0.1:43789/996 --skip-existing > log/2/stdout996 2> log/2/stderr996 996: stderr FAILED: --- log/2/check-expected 2025-09-11 10:32:51.981487346 +0000 +++ log/2/check-generated 2025-09-11 10:32:51.981487346 +0000 @@ -1 +0,0 @@ -Note: skips transfer, "log/2/there" exists locally[CR][LF] == Contents of files in the log/2/ dir after test 996 === Start of file check-expected Note: skips transfer, "log/2/there" exists locally[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind996 ../src/curl -q --include --trace-ascii log/2/trace996 --trace-time -o log/2/there http://127.0.0.1:43789/996 --skip-existing > log/2/stdout996 2> log/2/stderr996 === End of file commands.log === Start of file http_server.log 10:32:50.845231 ====> Client connect 10:32:50.845561 accept_connection 3 returned 4 10:32:50.845898 accept_connection 3 returned 0 10:32:50.846102 Read 93 bytes 10:32:50.846198 Process 93 bytes request 10:32:50.846282 Got request: GET /verifiedserver HTTP/1.1 10:32:50.846458 Are-we-friendly question received 10:32:50.846697 Wrote request (93 bytes) input to log/2/server.input 10:32:50.846875 Identifying ourselves as friends 10:32:50.847542 Response sent (56 bytes) and written to log/2/server.response 10:32:50.847687 special request received, no persistency 10:32:50.847758 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 37296 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 996 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file there content === End of file there === Start of file valgrind996 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind996 test 0997...[POP3 retrieve STAT (CUSTOMREQUEST)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind997 ../src/curl -q --output log/4/curl997.out --include --trace-ascii log/4/trace997 --trace-time pop3://127.0.0.1:43735 -u user:secret -X 'STAT' > log/4/stdout997 2> log/4/stderr997 997: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 997 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind997 ../src/curl -q --output log/4/curl997.out --include --trace-ascii log/4/trace997 --trace-time pop3://127.0.0.1:43735 -u user:secret -X 'STAT' > log/4/stdout997 2> log/4/stderr997 === End of file commands.log === Start of file pop3_server.log 10:32:51.327569 ====> Client connect 10:32:51.328895 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:32:51.335484 < "CAPA" 10:32:51.336213 > "-ERR Unrecognized command[CR][LF]" 10:32:51.340949 < "RETR verifiedserver" 10:32:51.341405 return proof we are we 10:32:51.341953 > "+OK Mail transfer starts[CR][LF]" 10:32:51.342375 > "WE ROOLZ: 117584[CR][LF]" 10:32:51.342609 > ".[CR][LF]" 10:32:51.391498 < "QUIT" 10:32:51.392124 > "+OK curl POP3 server signing off[CR][LF]" 10:32:51.394147 MAIN sockfilt said DISC 10:32:51.394617 ====> Client disconnected 10:32:51.395226 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:32:50.993525 ====> Client connect 10:32:51.000822 Received DATA (on stdin) 10:32:51.001155 > 178 bytes data, server => client 10:32:51.001271 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:32:51.001362 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:32:51.001450 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:32:51.001526 've \r\n' 10:32:51.002869 < 6 bytes data, client => server 10:32:51.003162 'CAPA\r\n' 10:32:51.005111 Received DATA (on stdin) 10:32:51.005312 > 27 bytes data, server => client 10:32:51.005415 '-ERR Unrecognized command\r\n' 10:32:51.006201 < 21 bytes data, client => server 10:32:51.006749 'RETR verifiedserver\r\n' 10:32:51.011132 Received DATA (on stdin) 10:32:51.011303 > 26 bytes data, server => client 10:32:51.011399 '+OK Mail transfer starts\r\n' 10:32:51.012093 Received DATA (on stdin) 10:32:51.012316 > 18 bytes data, server => client 10:32:51.012449 'WE ROOLZ: 117584\r\n' 10:32:51.012643 Received DATA (on stdin) 10:32:51.012783 > 3 bytes data, server => client 10:32:51.012878 '.\r\n' 10:32:51.059485 < 6 bytes data, client => server 10:32:51.059768 'QUIT\r\n' 10:32:51.061103 Received DATA (on stdin) 10:32:51.061342 > 34 bytes data, server => client 10:32:51.061467 '+OK curl POP3 server signing off\r\n' 10:32:51.062523 ====> Client disconnect 10:32:51.064558 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd CAPA TOP USER Testnum 997 === End of file server.cmd === Start of file valgrind997 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this maCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind998 ../src/curl -q --output log/3/curl998.out --include --trace-ascii log/3/trace998 --trace-time -x 127.0.0.1:36933 http://alberto:einstein@somewhere.example/998 --location-trusted > log/3/stdout998 2> log/3/stderr998 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind999 ../src/curl -q --output log/1/curl999.out --include --trace-ascii log/1/trace999 --trace-time -x 127.0.0.1:36129 http://alberto:einstein@somewhere.example/999 http://somewhere.else.example/999 > log/1/stdout999 2> log/1/stderr999 chine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind997 test 0998...[HTTP with auth in URL redirected to another host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind998 ../src/curl -q --output log/3/curl998.out --include --trace-ascii log/3/trace998 --trace-time -x 127.0.0.1:36933 http://alberto:einstein@somewhere.example/998 --location-trusted > log/3/stdout998 2> log/3/stderr998 998: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 998 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind998 ../src/curl -q --output log/3/curl998.out --include --trace-ascii log/3/trace998 --trace-time -x 127.0.0.1:36933 http://alberto:einstein@somewhere.example/998 --location-trusted > log/3/stdout998 2> log/3/stderr998 === End of file commands.log === Start of file http_server.log 10:32:51.038661 ====> Client connect 10:32:51.039135 accept_connection 3 returned 4 10:32:51.039402 accept_connection 3 returned 0 10:32:51.039598 Read 93 bytes 10:32:51.039738 Process 93 bytes request 10:32:51.039860 Got request: GET /verifiedserver HTTP/1.1 10:32:51.039955 Are-we-friendly question received 10:32:51.040249 Wrote request (93 bytes) input to log/3/server.input 10:32:51.040534 Identifying ourselves as friends 10:32:51.041607 Response sent (56 bytes) and written to log/3/server.response 10:32:51.041825 special request received, no persistency 10:32:51.041936 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60914 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 998 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind998 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind998 test 0999...[HTTP with auth in first URL but not second] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind999 ../src/curl -q --output log/1/curl999.out --include --trace-ascii log/1/trace999 --trace-time -x 127.0.0.1:36129 http://alberto:einstein@somewhere.example/999 http://somewhere.else.example/999 > log/1/stdout999 2> log/1/stderr999 999: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 999 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind999 ../src/curl -q --output log/1/curl999.out --include --trace-ascii log/1/trace999 --trace-time -x 127.0.0.1:36129 http://alberto:einstein@somewhere.example/999 http://somewhere.else.example/999 > log/1/stdout999 2> log/1/stderr999 === End of file commands.log === Start of file http_server.log 10:32:51.206179 ====> Client connect 10:32:51.206626 accept_connection 3 returned 4 10:32:51.206870 accept_connection 3 returned 0 10:32:51.211289 Read 93 bytes 10:32:51.211514 Process 93 bytes request 10:32:51.211643 Got request: GET /verifiedserver HTTP/1.1 10:32:51.211729 Are-we-friendly question received 10:32:51.212020 Wrote request (93 bytes) input to log/1/server.input 10:32:51.212269 Identifying ourselves as friends 10:32:51.212960 Response sent (56 bytes) and written to log/1/server.response 10:32:51.213121 special request received, no persistency 10:32:51.213199 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 38384 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 999 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind999 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1000 ../src/curl -q --output log/6/curl1000.out --include --trace-ascii log/6/trace1000 --trace-time ftp://127.0.0.1:33323/1000/ -I > log/6/stdout1000 2> log/6/stderr1000 valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind999 test 1000...[FTP dir list PASV with -I] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1000 ../src/curl -q --output log/6/curl1000.out --include --trace-ascii log/6/trace1000 --trace-time ftp://127.0.0.1:33323/1000/ -I > log/6/stdout1000 2> log/6/stderr1000 1000: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1000 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1000 ../src/curl -q --output log/6/curl1000.out --include --trace-ascii log/6/trace1000 --trace-time ftp://127.0.0.1:33323/1000/ -I > log/6/stdout1000 2> log/6/stderr1000 === End of file commands.log === Start of file ftp_server.log 10:32:52.001038 ====> Client connect 10:32:52.003031 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:52.012974 < "USER anonymous" 10:32:52.021067 > "331 We are happy you popped in![CR][LF]" 10:32:52.026920 < "PASS ftp@example.com" 10:32:52.027692 > "230 Welcome you silly person[CR][LF]" 10:32:52.031257 < "PWD" 10:32:52.031908 > "257 "/" is current directory[CR][LF]" 10:32:52.039062 < "EPSV" 10:32:52.039550 ====> Passive DATA channel requested by client 10:32:52.039780 DATA sockfilt for passive data channel starting... 10:32:52.053342 DATA sockfilt for passive data channel started (pid 125933) 10:32:52.055301 DATA sockfilt for passive data channel listens on port 38793 10:32:52.055984 > "229 Entering Passive Mode (|||38793|)[LF]" 10:32:52.056270 Client has been notified that DATA conn will be accepted on port 38793 10:32:52.058329 Client connects to port 38793 10:32:52.058765 ====> Client established passive DATA connection on port 38793 10:32:52.059577 < "TYPE I" 10:32:52.060030 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:52.061897 < "SIZE verifiedserver" 10:32:52.062543 > "213 17[CR][LF]" 10:32:52.064286 < "RETR verifiedserver" 10:32:52.064880 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:52.066117 =====> Closing passive DATA connection... 10:32:52.066478 Server disconnects passive DATA connection 10:32:52.068950 Server disconnected passive DATA connection 10:32:52.069350 DATA sockfilt for passive data channel quits (pid 125933) 10:32:52.071308 DATA sockfilt for passive data channel quit (pid 125933) 10:32:52.071704 =====> Closed passive DATA connection 10:32:52.072219 > "226 File transfer complete[CR][LF]" 10:32:52.107396 < "QUIT" 10:32:52.107916 > "221 bye bye baby[CR][LF]" 10:32:52.110540 MAIN sockfilt said DISC 10:32:52.110948 ====> Client disconnected 10:32:52.111561 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:52.669197 ====> Client connect 10:32:52.673873 Received DATA (on stdin) 10:32:52.675697 > 160 bytes data, server => client 10:32:52.675891 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:52.675980 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:52.676064 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:52.677122 < 16 bytes data, client => server 10:32:52.677333 'USER anonymous\r\n' 10:32:52.686623 Received DATA (on stdin) 10:32:52.686897 > 33 bytes data, server => client 10:32:52.690793 '331 We are happy you popped in!\r\n' 10:32:52.694703 < 22 bytes data, client => server 10:32:52.695018 'PASS ftp@example.com\r\n' 10:32:52.696543 Received DATA (on stdin) 10:32:52.697302 > 30 bytes data, server => client 10:32:52.697556 '230 Welcome you silly person\r\n' 10:32:52.699292 < 5 bytes data, client => server 10:32:52.699501 'PWD\r\n' 10:32:52.701352 Received DATA (on stdin) 10:32:52.701641 > 30 bytes data, server => client 10:32:52.701797 '257 "/" is current directory\r\n' 10:32:52.707051 < 6 bytes data, client => server 10:32:52.707287 'EPSV\r\n' 10:32:52.724819 Received DATA (on stdin) 10:32:52.725045 > 38 bytes data, server => client 10:32:52.725149 '229 Entering Passive Mode (|||38793|)\n' 10:32:52.727063 < 8 bytes data, client => server 10:32:52.727250 'TYPE I\r\n' 10:32:52.728876 Received DATA (on stdin) 10:32:52.729068 > 33 bytes data, server => client 10:32:52.729167 '200 I modify TYPE as you wanted\r\n' 10:32:52.729835 < 21 bytes data, client => server 10:32:52.730029 'SIZE verifiedserver\r\n' 10:32:52.731381 Received DATA (on stdin) 10:32:52.731577 > 8 bytes data, server => client 10:32:52.731663 '213 17\r\n' 10:32:52.732338 < 21 bytes data, client => server 10:32:52.732543 'RETR verifiedserver\r\n' 10:32:52.733727 Received DATA (on stdin) 10:32:52.733919 > 29 bytes data, server => client 10:32:52.734009 '150 Binary junk (17 bytes).\r\n' 10:32:52.741057 Received DATA (on stdin) 10:32:52.741261 > 28 bytes data, server => client 10:32:52.741360 '226 File transfer complete\r\n' 10:32:52.775454 < 6 bytes data, client => server 10:32:52.775691 'QUIT\r\n' 10:32:52.776764 Received DATA (on stdin) 10:32:52.776995 > 18 bytes data, server => client 10:32:52.777100 '221 bye bye baby\r\n' 10:32:52.778944 ====> Client disconnect 10:32:52.779826 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:52.719790 Running IPv4 version 10:32:52.720325 Listening on port 38793 10:32:52.720684 Wrote pid 125933 to log/6/server/ftp_sockdata.pid 10:32:52.721686 Received PING (on stdin) 10:32:52.723099 Received PORT (on stdin) 10:32:52.726466 ====> Client connect 10:32:52.734175 Received DATA (on stdin) 10:32:52.736158 > 17 bytes data, server => client 10:32:52.736342 'WE ROOLZ: 79480\r\n' 10:32:52.736728 Received DISC (on stdin) 10:32:52.736972 ====> Client forcibly disconnected 10:32:52.738588 Received QUIT (on stdin) 10:32:52.738774 quits 10:32:52.739231 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1000 === End of file server.cmd === Start of file valgrind1000 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1001 ../src/curl -q --output log/8/curl1001.out --include --trace-ascii log/8/trace1001 --trace-time http://127.0.0.1:36007/1001 -u auser:apasswd --digest -T log/8/1001 -x http://127.0.0.1:36007 -C 2 -X GET > log/8/stdout1001 2> log/8/stderr1001 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1003 ../src/curl -q --output log/4/curl1003.out --include --trace-ascii log/4/trace1003 --trace-time ftp://127.0.0.1:42635/path/1003 > log/4/stdout1003 2> log/4/stderr1003 valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1000 test 1001...[HTTP POST --digest with PUT and resumed upload and modified method] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1001 ../src/curl -q --output log/8/curl1001.out --include --trace-ascii log/8/trace1001 --trace-time http://127.0.0.1:36007/1001 -u auser:apasswd --digest -T log/8/1001 -x http://127.0.0.1:36007 -C 2 -X GET > log/8/stdout1001 2> log/8/stderr1001 1001: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1001 === Start of file 1001 test === End of file 1001 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1001 ../src/curl -q --output log/8/curl1001.out --include --trace-ascii log/8/trace1001 --trace-time http://127.0.0.1:36007/1001 -u auser:apasswd --digest -T log/8/1001 -x http://127.0.0.1:36007 -C 2 -X GET > log/8/stdout1001 2> log/8/stderr1001 === End of file commands.log === Start of file http_server.log 10:32:51.737175 ====> Client connect 10:32:51.737463 accept_connection 3 returned 4 10:32:51.737643 accept_connection 3 returned 0 10:32:51.737783 Read 93 bytes 10:32:51.737877 Process 93 bytes request 10:32:51.737966 Got request: GET /verifiedserver HTTP/1.1 10:32:51.738038 Are-we-friendly question received 10:32:51.738276 Wrote request (93 bytes) input to log/8/server.input 10:32:51.740431 Identifying ourselves as friends 10:32:51.741254 Response sent (56 bytes) and written to log/8/server.response 10:32:51.741349 special request received, no persistency 10:32:51.741424 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 54038 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1001 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1001 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1001 test 1003...[FTP with excessively large server command response line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1003 ../src/curl -q --output log/4/curl1003.out --include --trace-ascii log/4/trace1003 --trace-time ftp://127.0.0.1:42635/path/1003 > log/4/stdout1003 2> log/4/stderr1003 1003: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1003 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1003 ../src/curl -q --output log/4/curl1003.out --include --trace-ascii log/4/trace1003 --trace-time ftp://127.0.0.1:42635/path/1003 > log/4/stdout1003 2> log/4/stderr1003 === End of file commands.log === Start of file ftp_server.log 10:32:52.269549 ====> Client connect 10:32:52.271205 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:52.275017 < "USER anonymous" 10:32:52.275557 > "331 We are happy you popped in![CR][LF]" 10:32:52.278030 < "PASS ftp@example.com" 10:32:52.278509 > "230 Welcome you silly person[CR][LF]" 10:32:52.282466 < "PWD" 10:32:52.283026 > "257 "/" is current directory[CR][LF]" 10:32:52.285652 < "EPSV" 10:32:52.286098 ====> Passive DATA channel requested by client 10:32:52.286330 DATA sockfilt for passive data channel starting... 10:32:52.301671 DATA sockfilt for passive data channel started (pid 126000) 10:32:52.310397 DATA sockfilt for passive data channel listens on port 41071 10:32:52.310978 > "229 Entering Passive Mode (|||41071|)[LF]" 10:32:52.311274 Client has been notified that DATA conn will be accepted on port 41071 10:32:52.313979 Client connects to port 41071 10:32:52.314407 ====> Client established passive DATA connection on port 41071 10:32:52.315317 < "TYPE I" 10:32:52.316662 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:52.318523 < "SIZE verifiedserver" 10:32:52.319215 > "213 17[CR][LF]" 10:32:52.324691 < "RETR verifiedserver" 10:32:52.325323 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:52.326353 =====> Closing passive DATA connection... 10:32:52.326743 Server disconnects passive DATA connection 10:32:52.327357 Server disconnected passive DATA connection 10:32:52.327733 DATA sockfilt for passive data channel quits (pid 126000) 10:32:52.329869 DATA sockfilt for passive data channel quit (pid 126000) 10:32:52.330265 =====> Closed passive DATA connection 10:32:52.330656 > "226 File transfer complete[CR][LF]" 10:32:52.376898 < "QUIT" 10:32:52.377339 > "221 bye bye baby[CR][LF]" 10:32:52.379580 MAIN sockfilt said DISC 10:32:52.380615 ====> Client disconnected 10:32:52.381389 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:52.936308 ====> Client connect 10:32:52.940058 Received DATA (on stdin) 10:32:52.940344 > 160 bytes data, server => client 10:32:52.940492 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:52.940595 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:52.940689 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:52.942612 < 16 bytes data, client => server 10:32:52.942829 'USER anonymous\r\n' 10:32:52.944809 Received DATA (on stdin) 10:32:52.944978 > 33 bytes data, server => client 10:32:52.945076 '331 We are happy you popped in!\r\n' 10:32:52.945831 < 22 bytes data, client => server 10:32:52.946030 'PASS ftp@example.com\r\n' 10:32:52.947771 Received DATA (on stdin) 10:32:52.947958 > 30 bytes data, server => client 10:32:52.948073 '230 Welcome you silly person\r\n' 10:32:52.949841 < 5 bytes data, client => server 10:32:52.950090 'PWD\r\n' 10:32:52.952312 Received DATA (on stdin) 10:32:52.952547 > 30 bytes data, server => client 10:32:52.952663 '257 "/" is current directory\r\n' 10:32:52.953367 < 6 bytes data, client => server 10:32:52.953561 'EPSV\r\n' 10:32:52.980487 Received DATA (on stdin) 10:32:52.980717 > 38 bytes data, server => client 10:32:52.980890 '229 Entering Passive Mode (|||41071|)\n' 10:32:52.982397 < 8 bytes data, client => server 10:32:52.982594 'TYPE I\r\n' 10:32:52.984597 Received DATA (on stdin) 10:32:52.984771 > 33 bytes data, server => client 10:32:52.984961 '200 I modify TYPE as you wanted\r\n' 10:32:52.986446 < 21 bytes data, client => server 10:32:52.986717 'SIZE verifiedserver\r\n' 10:32:52.988655 Received DATA (on stdin) 10:32:52.989009 > 8 bytes data, server => client 10:32:52.989209 '213 17\r\n' 10:32:52.991377 < 21 bytes data, client => server 10:32:52.991641 'RETR verifiedserver\r\n' 10:32:52.995334 Received DATA (on stdin) 10:32:52.995537 > 29 bytes data, server => client 10:32:52.995674 '150 Binary junk (17 bytes).\r\n' 10:32:52.999514 Received DATA (on stdin) 10:32:52.999708 > 28 bytes data, server => client 10:32:52.999820 '226 File transfer complete\r\n' 10:32:53.043320 < 6 bytes data, client => server 10:32:53.043582 'QUIT\r\n' 10:32:53.046728 Received DATA (on stdin) 10:32:53.046929 > 18 bytes data, server => client 10:32:53.047032 '221 bye bye baby\r\n' 10:32:53.048042 ====> Client disconnect 10:32:53.048825 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:52.964728 Running IPv4 version 10:32:52.965297 Listening on port 41071 10:32:52.965704 Wrote pid 126000 to log/4/server/ftp_sockdata.pid 10:32:52.965857 Received PING (on stdin) 10:32:52.978526 Received PORT (on stdin) 10:32:52.982087 ====> Client connect 10:32:52.994787 Received DATA (on stdin) 10:32:52.995041 > 17 bytes data, server => client 10:32:52.995192 'WE ROOLZ: 79516\r\n' 10:32:52.995905 Received DISC (on stdin) 10:32:52.996092 ====> Client forcibly disconnected 10:32:52.997013 Received QUIT (on stdin) 10:32:52.997243 quits 10:32:52.997772 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 250 CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1004 ../src/curl -q --output log/7/curl1004.out --include --trace-ascii log/7/trace1004 --trace-time http://127.0.0.1:40129/1004 --proxy "" > log/7/stdout1004 2> log/7/stderr1004 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB Testnum 1003 === End of file server.cmd === Start of file valgrind1003 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1003 test 1004...[HTTP GET with empty proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1004 ../src/curl -q --output log/7/curl1004.out --include --trace-ascii log/7/trace1004 --trace-time http://127.0.0.1:40129/1004 --proxy "" > log/7/stdout1004 2> log/7/stderr1004 1004: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1004 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1004 ../src/curl -q --output log/7/curl1004.out --include --trace-ascii log/7/trace1004 --trace-time http://127.0.0.1:40129/1004 --proxy "" > log/7/stdout1004 2> log/7/stderr1004 === End of file commands.log === Start of file http_server.log 10:32:52.020625 ====> Client connect 10:32:52.020980 accept_connection 3 returned 4 10:32:52.021190 accept_connection 3 returned 0 10:32:52.022685 Read 93 bytes 10:32:52.022919 Process 93 bytes request 10:32:52.023038 Got request: GET /verifiedserver HTTP/1.1 10:32:52.023110 Are-we-friendly question received 10:32:52.023398 Wrote request (93 bytes) input to log/7/server.input 10:32:52.023696 Identifying ourselves as friends 10:32:52.024373 Response sent (56 bytes) and written to log/7/server.response 10:32:52.024506 special request received, no persistency 10:32:52.024583 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54080 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1004 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1004 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot contiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1002 ../src/curl -q --output log/2/curl1002.out --include --trace-ascii log/2/trace1002 --trace-time http://127.0.0.1:43789/1002.upload1 -T log/2/1002 http://127.0.0.1:43789/1002.upload2 -T log/2/1002 -u auser:apasswd --digest -x http://127.0.0.1:43789 -C 2 -X GET > log/2/stdout1002 2> log/2/stderr1002 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1005 ../src/curl -q --output log/3/curl1005.out --include --trace-ascii log/3/trace1005 --trace-time ftp://127.0.0.1:33831/path/1005 > log/3/stdout1005 2> log/3/stderr1005 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1006 ../src/curl -q --output log/5/curl1006.out --include --trace-ascii log/5/trace1006 --trace-time ftp://127.0.0.1:43393/path/1006 > log/5/stdout1006 2> log/5/stderr1006 nue -- exiting now. Sorry. === End of file valgrind1004 test 1002...[HTTP PUT with Digest auth, resumed upload and modified method, twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1002 ../src/curl -q --output log/2/curl1002.out --include --trace-ascii log/2/trace1002 --trace-time http://127.0.0.1:43789/1002.upload1 -T log/2/1002 http://127.0.0.1:43789/1002.upload2 -T log/2/1002 -u auser:apasswd --digest -x http://127.0.0.1:43789 -C 2 -X GET > log/2/stdout1002 2> log/2/stderr1002 1002: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1002 === Start of file 1002 test === End of file 1002 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1002 ../src/curl -q --output log/2/curl1002.out --include --trace-ascii log/2/trace1002 --trace-time http://127.0.0.1:43789/1002.upload1 -T log/2/1002 http://127.0.0.1:43789/1002.upload2 -T log/2/1002 -u auser:apasswd --digest -x http://127.0.0.1:43789 -C 2 -X GET > log/2/stdout1002 2> log/2/stderr1002 === End of file commands.log === Start of file http_server.log 10:32:51.849012 ====> Client connect 10:32:51.849303 accept_connection 3 returned 4 10:32:51.849488 accept_connection 3 returned 0 10:32:51.849611 Read 93 bytes 10:32:51.849694 Process 93 bytes request 10:32:51.849796 Got request: GET /verifiedserver HTTP/1.1 10:32:51.849860 Are-we-friendly question received 10:32:51.850081 Wrote request (93 bytes) input to log/2/server.input 10:32:51.850230 Identifying ourselves as friends 10:32:51.850945 Response sent (56 bytes) and written to log/2/server.response 10:32:51.851086 special request received, no persistency 10:32:51.851151 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 37308 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1002 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1002 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1002 test 1005...[FTP with excessively large number of server command response lines] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1005 ../src/curl -q --output log/3/curl1005.out --include --trace-ascii log/3/trace1005 --trace-time ftp://127.0.0.1:33831/path/1005 > log/3/stdout1005 2> log/3/stderr1005 1005: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1005 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1005 ../src/curl -q --output log/3/curl1005.out --include --trace-ascii log/3/trace1005 --trace-time ftp://127.0.0.1:33831/path/1005 > log/3/stdout1005 2> log/3/stderr1005 === End of file commands.log === Start of file ftp_server.log 10:32:52.414864 ====> Client connect 10:32:52.416182 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:52.426390 < "USER anonymous" 10:32:52.426922 > "331 We are happy you popped in![CR][LF]" 10:32:52.430074 < "PASS ftp@example.com" 10:32:52.431125 > "230 Welcome you silly person[CR][LF]" 10:32:52.433722 < "PWD" 10:32:52.434316 > "257 "/" is current directory[CR][LF]" 10:32:52.437761 < "EPSV" 10:32:52.438216 ====> Passive DATA channel requested by client 10:32:52.438490 DATA sockfilt for passive data channel starting... 10:32:52.451223 DATA sockfilt for passive data channel started (pid 126069) 10:32:52.452535 DATA sockfilt for passive data channel listens on port 46123 10:32:52.453101 > "229 Entering Passive Mode (|||46123|)[LF]" 10:32:52.453553 Client has been notified that DATA conn will be accepted on port 46123 10:32:52.456084 Client connects to port 46123 10:32:52.456583 ====> Client established passive DATA connection on port 46123 10:32:52.462348 < "TYPE I" 10:32:52.462955 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:52.468823 < "SIZE verifiedserver" 10:32:52.469381 > "213 17[CR][LF]" 10:32:52.473990 < "RETR verifiedserver" 10:32:52.474522 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:52.475424 =====> Closing passive DATA connection... 10:32:52.475774 Server disconnects passive DATA connection 10:32:52.480842 Server disconnected passive DATA connection 10:32:52.481298 DATA sockfilt for passive data channel quits (pid 126069) 10:32:52.486883 DATA sockfilt for passive data channel quit (pid 126069) 10:32:52.487254 =====> Closed passive DATA connection 10:32:52.487763 > "226 File transfer complete[CR][LF]" 10:32:52.521316 < "QUIT" 10:32:52.522010 > "221 bye bye baby[CR][LF]" 10:32:52.525572 MAIN sockfilt said DISC 10:32:52.526920 ====> Client disconnected 10:32:52.527750 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:52.080463 ====> Client connect 10:32:52.086655 Received DATA (on stdin) 10:32:52.086917 > 160 bytes data, server => client 10:32:52.087045 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:52.087140 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:52.087215 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:52.090562 < 16 bytes data, client => server 10:32:52.090819 'USER anonymous\r\n' 10:32:52.096234 Received DATA (on stdin) 10:32:52.096446 > 33 bytes data, server => client 10:32:52.096570 '331 We are happy you popped in!\r\n' 10:32:52.097430 < 22 bytes data, client => server 10:32:52.097636 'PASS ftp@example.com\r\n' 10:32:52.099488 Received DATA (on stdin) 10:32:52.099711 > 30 bytes data, server => client 10:32:52.100356 '230 Welcome you silly person\r\n' 10:32:52.101199 < 5 bytes data, client => server 10:32:52.101430 'PWD\r\n' 10:32:52.103719 Received DATA (on stdin) 10:32:52.103979 > 30 bytes data, server => client 10:32:52.104123 '257 "/" is current directory\r\n' 10:32:52.105294 < 6 bytes data, client => server 10:32:52.105521 'EPSV\r\n' 10:32:52.122503 Received DATA (on stdin) 10:32:52.122699 > 38 bytes data, server => client 10:32:52.122808 '229 Entering Passive Mode (|||46123|)\n' 10:32:52.126983 < 8 bytes data, client => server 10:32:52.127187 'TYPE I\r\n' 10:32:52.131821 Received DATA (on stdin) 10:32:52.132055 > 33 bytes data, server => client 10:32:52.132176 '200 I modify TYPE as you wanted\r\n' 10:32:52.136957 < 21 bytes data, client => server 10:32:52.137128 'SIZE verifiedserver\r\n' 10:32:52.138209 Received DATA (on stdin) 10:32:52.138514 > 8 bytes data, server => client 10:32:52.138626 '213 17\r\n' 10:32:52.140360 < 21 bytes data, client => server 10:32:52.140578 'RETR verifiedserver\r\n' 10:32:52.144970 Received DATA (on stdin) 10:32:52.145155 > 29 bytes data, server => client 10:32:52.145273 '150 Binary junk (17 bytes).\r\n' 10:32:52.157058 Received DATA (on stdin) 10:32:52.157298 > 28 bytes data, server => client 10:32:52.157419 '226 File transfer complete\r\n' 10:32:52.188915 < 6 bytes data, client => server 10:32:52.189131 'QUIT\r\n' 10:32:52.191299 Received DATA (on stdin) 10:32:52.191482 > 18 bytes data, server => client 10:32:52.191581 '221 bye bye baby\r\n' 10:32:52.193894 ====> Client disconnect 10:32:52.195006 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:52.117715 Running IPv4 version 10:32:52.118212 Listening on port 46123 10:32:52.119523 Wrote pid 126069 to log/3/server/ftp_sockdata.pid 10:32:52.119734 Received PING (on stdin) 10:32:52.120592 Received PORT (on stdin) 10:32:52.124078 ====> Client connect 10:32:52.145858 Received DATA (on stdin) 10:32:52.146096 > 17 bytes data, server => client 10:32:52.146209 'WE ROOLZ: 79555\r\n' 10:32:52.148165 Received DISC (on stdin) 10:32:52.148456 ====> Client forcibly disconnected 10:32:52.150577 Received QUIT (on stdin) 10:32:52.150765 quits 10:32:52.151208 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250 Finally, here is the response Testnum 1005 === End of file server.cmd === Start of file valgrind1005 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1005 test 1006...[FTP with large number of command response lines (boundary condition)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1006 ../src/curl -q --output log/5/curl1006.out --include --trace-ascii log/5/trace1006 --trace-time ftp://127.0.0.1:43393/path/1006 > log/5/stdout1006 2> log/5/stderr1006 1006: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1006 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1006 ../src/curl -q --output log/5/curl1006.out --include --trace-ascii log/5/trace1006 --trace-time ftp://127.0.0.1:43393/path/1006 > log/5/stdout1006 2> log/5/stderr1006 === End of file commands.log === Start of file ftp_server.log 10:32:52.445669 ====> Client connect 10:32:52.447008 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:52.454577 < "USER anonymous" 10:32:52.455167 > "331 We are happy you popped in![CR][LF]" 10:32:52.459940 < "PASS ftp@example.com" 10:32:52.460484 > "230 Welcome you silly person[CR][LF]" 10:32:52.467502 < "PWD" 10:32:52.468020 > "257 "/" is current directory[CR][LF]" 10:32:52.473035 < "EPSV" 10:32:52.473522 ====> Passive DATA channel requested by client 10:32:52.473855 DATA sockfilt for passive data channel starting... 10:32:52.490388 DATA sockfilt for passive data channel started (pid 126078) 10:32:52.491544 DATA sockfilt for passive data channel listens on port 43493 10:32:52.492018 > "229 Entering Passive Mode (|||43493|)[LF]" 10:32:52.492246 Client has been notified that DATA conn will be accepted on port 43493 10:32:52.493785 Client connects to port 43493 10:32:52.494157 ====> Client established passive DATA connection on port 43493 10:32:52.494992 < "TYPE I" 10:32:52.495464 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:52.498064 < "SIZE verifiedserver" 10:32:52.498679 > "213 17[CR][LF]" 10:32:52.501382 < "RETR verifiedserver" 10:32:52.502586 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:52.503488 =====> Closing passive DATA connection... 10:32:52.503820 Server disconnects passive DATA connection 10:32:52.506065 Server disconnected passive DATA connection 10:32:52.506484 DATA sockfilt for passive data channel quits (pid 126078) 10:32:52.509294 DATA sockfilt for passive data channel quit (pid 126078) 10:32:52.510077 =====> Closed passive DATA connection 10:32:52.510606 > "226 File transfer complete[CR][LF]" 10:32:52.551937 < "QUIT" 10:32:52.552906 > "221 bye bye baby[CR][LF]" 10:32:52.557309 MAIN sockfilt said DISC 10:32:52.557957 ====> Client disconnected 10:32:52.558623 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:52.112531 ====> Client connect 10:32:52.115830 Received DATA (on stdin) 10:32:52.116106 > 160 bytes data, server => client 10:32:52.116220 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:52.116313 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:52.116393 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:52.117334 < 16 bytes data, client => server 10:32:52.117553 'USER anonymous\r\n' 10:32:52.126059 Received DATA (on stdin) 10:32:52.126355 > 33 bytes data, server => client 10:32:52.126512 '331 We are happy you popped in!\r\n' 10:32:52.127976 < 22 bytes data, client => server 10:32:52.128216 'PASS ftp@example.com\r\n' 10:32:52.129345 Received DATA (on stdin) 10:32:52.129567 > 30 bytes data, server => client 10:32:52.129697 '230 Welcome you silly person\r\n' 10:32:52.130616 < 5 bytes data, client => server 10:32:52.130856 'PWD\r\n' 10:32:52.137312 Received DATA (on stdin) 10:32:52.137454 > 30 bytes data, server => client 10:32:52.137544 '257 "/" is current directory\r\n' 10:32:52.141110 < 6 bytes data, client => server 10:32:52.141319 'EPSV\r\n' 10:32:52.160877 Received DATA (on stdin) 10:32:52.161045 > 38 bytes data, server => client 10:32:52.161148 '229 Entering Passive Mode (|||43493|)\n' 10:32:52.162576 < 8 bytes data, client => server 10:32:52.162777 'TYPE I\r\n' 10:32:52.164300 Received DATA (on stdin) 10:32:52.164493 > 33 bytes data, server => client 10:32:52.164606 '200 I modify TYPE as you wanted\r\n' 10:32:52.165498 < 21 bytes data, client => server 10:32:52.165719 'SIZE verifiedserver\r\n' 10:32:52.167928 Received DATA (on stdin) 10:32:52.168128 > 8 bytes data, server => client 10:32:52.168220 '213 17\r\n' 10:32:52.169042 < 21 bytes data, client => server 10:32:52.169278 'RETR verifiedserver\r\n' 10:32:52.170918 Received DATA (on stdin) 10:32:52.171146 > 29 bytes data, server => client 10:32:52.173028 '150 Binary junk (17 bytes).\r\n' 10:32:52.179920 Received DATA (on stdin) 10:32:52.180178 > 28 bytes data, server => client 10:32:52.180303 '226 File transfer complete\r\n' 10:32:52.219643 < 6 bytes data, client => server 10:32:52.219900 'QUIT\r\n' 10:32:52.221280 Received DATA (on stdin) 10:32:52.221470 > 18 bytes data, server => client 10:32:52.222191 '221 bye bye baby\r\n' 10:32:52.223021 ====> Client disconnect 10:32:52.226807 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:52.157416 Running IPv4 version 10:32:52.158013 Listening on port 43493 10:32:52.158607 Wrote pid 126078 to log/5/server/ftp_sockdata.pid 10:32:52.158810 Received PING (on stdin) 10:32:52.159774 Received PORT (on stdin) 10:32:52.162182 ====> Client connect 10:32:52.171922 Received DATA (on stdin) 10:32:52.172145 > 17 bytes data, server => client 10:32:52.172269 'WE ROOLZ: 79602\r\n' 10:32:52.174473 Received DISC (on stdin) 10:32:52.174759 ====> Client forcibly disconnected 10:32:52.176614 Received QUIT (on stdin) 10:32:52.176833 quits 10:32:52.177251 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 250-AAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1008 ../src/curl -q --output log/6/curl1008.out --include --trace-ascii log/6/trace1008 --trace-time http://test.remote.example.com.1008:33363/path/10080002 --proxy http://127.0.0.1:33363 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/6/stdout1008 2> log/6/stderr1008 AAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250 Finally, here is the response Testnum 1006 === End of file server.cmd === Start of file valgrind1006 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1006 test 1008...[HTTP proxy CONNECT auth NTLM with chunked-encoded 407 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1008 ../src/curl -q --output log/6/curl1008.out --include --trace-ascii log/6/trace1008 --trace-time http://test.remote.example.com.1008:33363/path/10080002 --proxy http://127.0.0.1:33363 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/6/stdout1008 2> log/6/stderr1008 1008: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1008 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1008 ../src/curl -q --output log/6/curl1008.out --include --trace-ascii log/6/trace1008 --trace-time http://test.remote.example.com.1008:33363/path/10080002 --proxy http://127.0.0.1:33363 --proxy-user testuser:testpass --proxy-ntlm --proxytunnel > log/6/stdout1008 2> log/6/stderr1008 === End of file commands.log === Start of file http_server.log 10:32:52.613936 ====> Client connect 10:32:52.614382 accept_connection 3 returned 4 10:32:52.614618 accept_connection 3 returned 0 10:32:52.614756 Read 93 bytes 10:32:52.614838 Process 93 bytes request 10:32:52.614924 Got request: GET /verifiedserver HTTP/1.1 10:32:52.614998 Are-we-friendly question received 10:32:52.615206 Wrote request (93 bytes) input to log/6/server.input 10:32:52.615369 Identifying ourselves as friends 10:32:52.616024 Response sent (56 bytes) and written to log/6/server.response 10:32:52.616182 special request received, no persistency 10:32:52.616252 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60042 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1008 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1008 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object wiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1009 ../src/curl -q --output log/8/curl1009.out --include --trace-ascii log/8/trace1009 --trace-time tftp://127.0.0.1:57736//1009 --local-port 44444-45444 > log/8/stdout1009 2> log/8/stderr1009 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1013 ../src/curl -q --output log/3/curl1013.out --include --trace-ascii log/3/trace1013 --trace-time --version > log/3/stdout1013 2> log/3/stderr1013 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1014 ../src/curl -q --output log/5/curl1014.out --include --trace-ascii log/5/trace1014 --trace-time --version > log/5/stdout1014 2> log/5/stderr1014 Use of uninitialized value $1 in split at /build/curl/src/curl/tests/libtest/test1013.pl line 47. Mismatch in protocols lists: curl: curl-config: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss CMD (256): /build/curl/src/curl/tests/libtest/test1013.pl ../curl-config log/3/stdout1013 protocols Use of uninitialized value $1 in split at /build/curl/src/curl/tests/libtest/test1013.pl line 47. CMD (256): /build/curl/src/curl/tests/libtest/test1013.pl ../curl-config log/5/stdout1014 features > log/5/result1014 th soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1008 test 1009...[TFTP retrieve with --local-port] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1009 ../src/curl -q --output log/8/curl1009.out --include --trace-ascii log/8/trace1009 --trace-time tftp://127.0.0.1:57736//1009 --local-port 44444-45444 > log/8/stdout1009 2> log/8/stderr1009 1009: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1009 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1009 ../src/curl -q --output log/8/curl1009.out --include --trace-ascii log/8/trace1009 --trace-time tftp://127.0.0.1:57736//1009 --local-port 44444-45444 > log/8/stdout1009 2> log/8/stderr1009 === End of file commands.log === Start of file server.cmd Testnum 1009 === End of file server.cmd === Start of file tftp_server.log 10:32:52.884672 trying to get file: verifiedserver mode 1 10:32:52.885036 Are-we-friendly question received 10:32:52.885179 write 10:32:52.885446 read 10:32:52.885912 read: 4 10:32:52.886443 end of one transfer === End of file tftp_server.log === Start of file valgrind1009 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1009 test 1013...[Compare curl --version with curl-config --protocols] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1013 ../src/curl -q --output log/3/curl1013.out --include --trace-ascii log/3/trace1013 --trace-time --version > log/3/stdout1013 2> log/3/stderr1013 postcheck /build/curl/src/curl/tests/libtest/test1013.pl ../curl-config log/3/stdout1013 protocols 1013: postcheck FAILED == Contents of files in the log/3/ dir after test 1013 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1013 ../src/curl -q --output log/3/curl1013.out --include --trace-ascii log/3/trace1013 --trace-time --version > log/3/stdout1013 2> log/3/stderr1013 === End of file commands.log === Start of file server.cmd Testnum 1013 === End of file server.cmd === Start of file valgrind1013 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1013 test 1014...[Compare curl --version with curl-config --features] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1014 ../src/curl -q --output log/5/curl1014.out --include --trace-ascii log/5/trace1014 --trace-time --version > log/5/stdout1014 2> log/5/stderr1014 postcheck /build/curl/src/curl/tests/libtest/test1013.pl ../curl-config log/5/stdout1014 features > log/5/result1014 1014: postcheck FAILED == Contents of files in the log/5/ dir after test 1014 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1014 ../src/curl -q --output log/5/curl1014.out --include --trace-ascii log/5/trace1014 --trace-time --version > log/5/stdout1014 2> log/5/stderr1014 === End of file commands.log === Start of file result1014 Mismatch in features lists: curl: curl-config: AsynchDNS GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM PSL SPNEGO SSL TLS-SRP UnixSockets alt-svc brotli libz threadsafe zstd === End of file result1014 === Start of file server.cmd Testnum 1014 === End of file server.cmd === Start of file valgrind1014 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1011 ../src/curl -q --output log/7/curl1011.out --include --trace-ascii log/7/trace1011 --trace-time http://127.0.0.1:40129/blah/1011 -L -d "moo" > log/7/stdout1011 2> log/7/stderr1011 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1010 ../src/curl -q --output log/4/curl1010.out --include --trace-ascii log/4/trace1010 --trace-time ftp://127.0.0.1:42635//list/this/path/1010/ ftp://127.0.0.1:42635//list/this/path/1010/ --ftp-method nocwd > log/4/stdout1010 2> log/4/stderr1010 short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1014 test 1011...[HTTP POST with 301 redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1011 ../src/curl -q --output log/7/curl1011.out --include --trace-ascii log/7/trace1011 --trace-time http://127.0.0.1:40129/blah/1011 -L -d "moo" > log/7/stdout1011 2> log/7/stderr1011 1011: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1011 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1011 ../src/curl -q --output log/7/curl1011.out --include --trace-ascii log/7/trace1011 --trace-time http://127.0.0.1:40129/blah/1011 -L -d "moo" > log/7/stdout1011 2> log/7/stderr1011 === End of file commands.log === Start of file http_server.log 10:32:52.971465 ====> Client connect 10:32:52.971774 accept_connection 3 returned 4 10:32:52.971943 accept_connection 3 returned 0 10:32:52.972075 Read 93 bytes 10:32:52.972166 Process 93 bytes request 10:32:52.972247 Got request: GET /verifiedserver HTTP/1.1 10:32:52.972318 Are-we-friendly question received 10:32:52.972575 Wrote request (93 bytes) input to log/7/server.input 10:32:52.972763 Identifying ourselves as friends 10:32:52.973483 Response sent (56 bytes) and written to log/7/server.response 10:32:52.973629 special request received, no persistency 10:32:52.973693 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54088 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1011 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1011 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1011 test 1010...[FTP dir list nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1010 ../src/curl -q --output log/4/curl1010.out --include --trace-ascii log/4/trace1010 --trace-time ftp://127.0.0.1:42635//list/this/path/1010/ ftp://127.0.0.1:42635//list/this/path/1010/ --ftp-method nocwd > log/4/stdout1010 2> log/4/stderr1010 1010: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1010 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1010 ../src/curl -q --output log/4/curl1010.out --include --trace-ascii log/4/trace1010 --trace-time ftp://127.0.0.1:42635//list/this/path/1010/ ftp://127.0.0.1:42635//list/this/path/1010/ --ftp-method nocwd > log/4/stdout1010 2> log/4/stderr1010 === End of file commands.log === Start of file ftp_server.log 10:32:53.246244 ====> Client connect 10:32:53.247579 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:53.256206 < "USER anonymous" 10:32:53.261922 > "331 We are happy you popped in![CR][LF]" 10:32:53.263505 < "PASS ftp@example.com" 10:32:53.264083 > "230 Welcome you silly person[CR][LF]" 10:32:53.266406 < "PWD" 10:32:53.267055 > "257 "/" is current directory[CR][LF]" 10:32:53.269527 < "EPSV" 10:32:53.269970 ====> Passive DATA channel requested by client 10:32:53.270236 DATA sockfilt for passive data channel starting... 10:32:53.282919 DATA sockfilt for passive data channel started (pid 126446) 10:32:53.284616 DATA sockfilt for passive data channel listens on port 37029 10:32:53.285135 > "229 Entering Passive Mode (|||37029|)[LF]" 10:32:53.285407 Client has been notified that DATA conn will be accepted on port 37029 10:32:53.292755 Client connects to port 37029 10:32:53.293218 ====> Client established passive DATA connection on port 37029 10:32:53.295001 < "TYPE I" 10:32:53.295508 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:53.298309 < "SIZE verifiedserver" 10:32:53.298870 > "213 17[CR][LF]" 10:32:53.301173 < "RETR verifiedserver" 10:32:53.301855 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:53.302708 =====> Closing passive DATA connection... 10:32:53.302971 Server disconnects passive DATA connection 10:32:53.303570 Server disconnected passive DATA connection 10:32:53.303898 DATA sockfilt for passive data channel quits (pid 126446) 10:32:53.307386 DATA sockfilt for passive data channel quit (pid 126446) 10:32:53.307819 =====> Closed passive DATA connection 10:32:53.308197 > "226 File transfer complete[CR][LF]" 10:32:53.348737 < "QUIT" 10:32:53.349156 > "221 bye bye baby[CR][LF]" 10:32:53.353706 MAIN sockfilt said DISC 10:32:53.354157 ====> Client disconnected 10:32:53.354748 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:53.914439 ====> Client connect 10:32:53.922389 Received DATA (on stdin) 10:32:53.922671 > 160 bytes data, server => client 10:32:53.922789 '220- _ _ ____ _ CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1012 ../src/curl -q --output log/2/curl1012.out --include --trace-ascii log/2/trace1012 --trace-time http://127.0.0.1:43789/blah/1012 -L -d "moo" --post301 > log/2/stdout1012 2> log/2/stderr1012 \r\n220- ___| | | | _ \| | ' 10:32:53.922881 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:53.922956 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:53.923748 < 16 bytes data, client => server 10:32:53.923956 'USER anonymous\r\n' 10:32:53.925624 Received DATA (on stdin) 10:32:53.925861 > 33 bytes data, server => client 10:32:53.930719 '331 We are happy you popped in!\r\n' 10:32:53.931603 < 22 bytes data, client => server 10:32:53.931832 'PASS ftp@example.com\r\n' 10:32:53.932924 Received DATA (on stdin) 10:32:53.933139 > 30 bytes data, server => client 10:32:53.933250 '230 Welcome you silly person\r\n' 10:32:53.934043 < 5 bytes data, client => server 10:32:53.934209 'PWD\r\n' 10:32:53.935861 Received DATA (on stdin) 10:32:53.936101 > 30 bytes data, server => client 10:32:53.936203 '257 "/" is current directory\r\n' 10:32:53.937037 < 6 bytes data, client => server 10:32:53.937323 'EPSV\r\n' 10:32:53.954476 Received DATA (on stdin) 10:32:53.954648 > 38 bytes data, server => client 10:32:53.954756 '229 Entering Passive Mode (|||37029|)\n' 10:32:53.959580 < 8 bytes data, client => server 10:32:53.959820 'TYPE I\r\n' 10:32:53.964976 Received DATA (on stdin) 10:32:53.965158 > 33 bytes data, server => client 10:32:53.965255 '200 I modify TYPE as you wanted\r\n' 10:32:53.966032 < 21 bytes data, client => server 10:32:53.966214 'SIZE verifiedserver\r\n' 10:32:53.967932 Received DATA (on stdin) 10:32:53.968118 > 8 bytes data, server => client 10:32:53.968219 '213 17\r\n' 10:32:53.968954 < 21 bytes data, client => server 10:32:53.969127 'RETR verifiedserver\r\n' 10:32:53.970793 Received DATA (on stdin) 10:32:53.970981 > 29 bytes data, server => client 10:32:53.971090 '150 Binary junk (17 bytes).\r\n' 10:32:53.977409 Received DATA (on stdin) 10:32:53.977625 > 28 bytes data, server => client 10:32:53.977740 '226 File transfer complete\r\n' 10:32:54.016629 < 6 bytes data, client => server 10:32:54.016853 'QUIT\r\n' 10:32:54.017991 Received DATA (on stdin) 10:32:54.018171 > 18 bytes data, server => client 10:32:54.018263 '221 bye bye baby\r\n' 10:32:54.018924 ====> Client disconnect 10:32:54.023152 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:53.949369 Running IPv4 version 10:32:53.949925 Listening on port 37029 10:32:53.950579 Wrote pid 126446 to log/4/server/ftp_sockdata.pid 10:32:53.950812 Received PING (on stdin) 10:32:53.952395 Received PORT (on stdin) 10:32:53.961085 ====> Client connect 10:32:53.971588 Received DATA (on stdin) 10:32:53.971739 > 17 bytes data, server => client 10:32:53.971833 'WE ROOLZ: 79516\r\n' 10:32:53.972164 Received DISC (on stdin) 10:32:53.972288 ====> Client forcibly disconnected 10:32:53.974176 Received QUIT (on stdin) 10:32:53.974515 quits 10:32:53.975032 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1010 === End of file server.cmd === Start of file valgrind1010 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1010 test 1012...[HTTP POST with 301 redirect and --post301] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1012 ../src/curl -q --output log/2/curl1012.out --include --trace-ascii log/2/trace1012 --trace-time http://127.0.0.1:43789/blah/1012 -L -d "moo" --post301 > log/2/stdout1012 2> log/2/stderr1012 1012: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1012 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1012 ../src/curl -q --output log/2/curl1012.out --include --trace-ascii log/2/trace1012 --trace-time http://127.0.0.1:43789/blah/1012 -L -d "moo" --post301 > log/2/stdout1012 2> log/2/stderr1012 === End of file commands.log === Start of file http_server.log 10:32:53.020011 ====> Client connect 10:32:53.020310 accept_connection 3 returned 4 10:32:53.020478 accept_connection 3 returned 0 10:32:53.020600 Read 93 bytes 10:32:53.020678 Process 93 bytes request 10:32:53.020762 Got request: GET /verifiedserver HTTP/1.1 10:32:53.020833 Are-we-friendly question received 10:32:53.021089 Wrote request (93 bytes) input to log/2/server.input 10:32:53.021298 Identifying ourselves as friends 10:32:53.022038 Response sent (56 bytes) and written to log/2/server.response 10:32:53.022171 special request received, no persistency 10:32:53.022247 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 37320 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1012 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1012 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, youCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1007 ../src/curl -q --output log/1/curl1007.out --include --trace-ascii log/1/trace1007 --trace-time -T log/1/test1007.txt tftp://127.0.0.1:39009//invalid-file -sS > log/1/stdout1007 2> log/1/stderr1007 will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1012 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1016 ../src/curl -q --trace-ascii log/8/trace1016 --trace-time -r 1-4 file://localhost/build/curl/src/build-curl/tests/log/8/test1016.txt > log/8/stdout1016 2> log/8/stderr1016 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/1/server/tftp_server.pid" --portfile "log/1/server/tftp_server.port" --logfile "log/1/tftp_server.log" --logdir "log/1" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 126060 port 39009 * pid tftp => 126060 126060 test 1007...[TFTP send with invalid permission on server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1007 ../src/curl -q --output log/1/curl1007.out --include --trace-ascii log/1/trace1007 --trace-time -T log/1/test1007.txt tftp://127.0.0.1:39009//invalid-file -sS > log/1/stdout1007 2> log/1/stderr1007 1007: stderr FAILED: --- log/1/check-expected 2025-09-11 10:32:54.241532334 +0000 +++ log/1/check-generated 2025-09-11 10:32:54.241532334 +0000 @@ -1 +0,0 @@ -curl: (69) TFTP: Access Violation[CR][LF] == Contents of files in the log/1/ dir after test 1007 === Start of file check-expected curl: (69) TFTP: Access Violation[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1007 ../src/curl -q --output log/1/curl1007.out --include --trace-ascii log/1/trace1007 --trace-time -T log/1/test1007.txt tftp://127.0.0.1:39009//invalid-file -sS > log/1/stdout1007 2> log/1/stderr1007 === End of file commands.log === Start of file server.cmd Testnum 1007 === End of file server.cmd === Start of file test1007.txt This data will not be sent === End of file test1007.txt === Start of file tftp_server.log 10:32:52.332934 Wrote pid 126060 to log/1/server/tftp_server.pid 10:32:52.333846 Wrote port 39009 to log/1/server/tftp_server.port 10:32:52.334075 Running IPv4 version on port UDP/39009 === End of file tftp_server.log === Start of file valgrind1007 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1007 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1017 ../src/curl -q --trace-ascii log/3/trace1017 --trace-time -r 0-3 file://localhost/build/curl/src/build-curl/tests/log/3/test1017.txt > log/3/stdout1017 2> log/3/stderr1017 test 1016...[X-Y range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1016 ../src/curl -q --trace-ascii log/8/trace1016 --trace-time -r 1-4 file://localhost/build/curl/src/build-curl/tests/log/8/test1016.txt > log/8/stdout1016 2> log/8/stderr1016 1016: stdout FAILED: --- log/8/check-expected 2025-09-11 10:32:54.665540775 +0000 +++ log/8/check-generated 2025-09-11 10:32:54.665540775 +0000 @@ -1 +0,0 @@ -2345 == Contents of files in the log/8/ dir after test 1016 === Start of file check-expected 2345 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1016 ../src/curl -q --trace-ascii log/8/trace1016 --trace-time -r 1-4 file://localhost/build/curl/src/build-curl/tests/log/8/test1016.txt > log/8/stdout1016 2> log/8/stderr1016 === End of file commands.log === Start of file server.cmd Testnum 1016 === End of file server.cmd === Start of file test1016.txt 1234567890 === End of file test1016.txt === Start of file valgrind1016 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1016 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1019 ../src/curl -q --trace-ascii log/7/trace1019 --trace-time -r 7- file://localhost/build/curl/src/build-curl/tests/log/7/test1019.txt > log/7/stdout1019 2> log/7/stderr1019 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1020 ../src/curl -q --trace-ascii log/4/trace1020 --trace-time -r -9 file://localhost/build/curl/src/build-curl/tests/log/4/test1020.txt > log/4/stdout1020 2> log/4/stderr1020 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1015 ../src/curl -q --output log/6/curl1015.out --include --trace-ascii log/6/trace1015 --trace-time http://127.0.0.1:33363/1015 --data-urlencode "my name is moo[]" --data-urlencode "y e s=s_i_r" --data-urlencode "v_alue@log/6/1015.txt" --data-urlencode @log/6/1015.txt > log/6/stdout1015 2> log/6/stderr1015 test 1017...[0-Y range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1017 ../src/curl -q --trace-ascii log/3/trace1017 --trace-time -r 0-3 file://localhost/build/curl/src/build-curl/tests/log/3/test1017.txt > log/3/stdout1017 2> log/3/stderr1017 1017: stdout FAILED: --- log/3/check-expected 2025-09-11 10:32:54.885545154 +0000 +++ log/3/check-generated 2025-09-11 10:32:54.885545154 +0000 @@ -1 +0,0 @@ -1234 == Contents of files in the log/3/ dir after test 1017 === Start of file check-expected 1234 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1017 ../src/curl -q --trace-ascii log/3/trace1017 --trace-time -r 0-3 file://localhost/build/curl/src/build-curl/tests/log/3/test1017.txt > log/3/stdout1017 2> log/3/stderr1017 === End of file commands.log === Start of file server.cmd Testnum 1017 === End of file server.cmd === Start of file test1017.txt 1234567890 === End of file test1017.txt === Start of file valgrind1017 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1017 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1018 ../src/curl -q --trace-ascii log/5/trace1018 --trace-time -r 4-4 file://localhost/build/curl/src/build-curl/tests/log/5/test1018.txt > log/5/stdout1018 2> log/5/stderr1018 test 1020...[-Y range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1020 ../src/curl -q --trace-ascii log/4/trace1020 --trace-time -r -9 file://localhost/build/curl/src/build-curl/tests/log/4/test1020.txt > log/4/stdout1020 2> log/4/stderr1020 1020: stdout FAILED: --- log/4/check-expected 2025-09-11 10:32:54.937546189 +0000 +++ log/4/check-generated 2025-09-11 10:32:54.937546189 +0000 @@ -1 +0,0 @@ -34567890[LF] == Contents of files in the log/4/ dir after test 1020 === Start of file check-expected 34567890[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1020 ../src/curl -q --trace-ascii log/4/trace1020 --trace-time -r -9 file://localhost/build/curl/src/build-curl/tests/log/4/test1020.txt > log/4/stdout1020 2> log/4/stderr1020 === End of file commands.log === Start of file server.cmd Testnum 1020 === End of file server.cmd === Start of file test1020.txt 1234567890 1234567890 === End of file test1020.txt === Start of file valgrind1020 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1020 test 1019...[X- range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1019 ../src/curl -q --trace-ascii log/7/trace1019 --trace-time -r 7- file://localhost/build/curl/src/build-curl/tests/log/7/test1019.txt > log/7/stdout1019 2> log/7/stderr1019 1019: stdout FAILED: --- log/7/check-expected 2025-09-11 10:32:54.973546906 +0000 +++ log/7/check-generated 2025-09-11 10:32:54.973546906 +0000 @@ -1,2 +0,0 @@ -890[LF] -1234567890[LF] == Contents of files in the log/7/ dir after test 1019 === Start of file check-expected 890[LF] 1234567890[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1019 ../src/curl -q --trace-ascii log/7/trace1019 --trace-time -r 7- file://localhost/build/curl/src/build-curl/tests/log/7/test1019.txt > log/7/stdout1019 2> log/7/stderr1019 === End of file commands.log === Start of file server.cmd Testnum 1019 === End of file server.cmd === Start of file test1019.txt 1234567890 1234567890 === End of file test1019.txt === Start of file valgrind1019 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1019 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1022 ../src/curl -q --output log/1/curl1022.out --include --trace-ascii log/1/trace1022 --trace-time --version > log/1/stdout1022 2> log/1/stderr1022 Use of uninitialized value $_ in scalar chomp at /build/curl/src/curl/tests/libtest/test1022.pl line 39. Use of uninitialized value $_ in pattern match (m//) at /build/curl/src/curl/tests/libtest/test1022.pl line 40. Use of uninitialized value $version in string ne at /build/curl/src/curl/tests/libtest/test1022.pl line 73. Use of uninitialized value $version in concatenation (.) or string at /build/curl/src/curl/tests/libtest/test1022.pl line 76. Mismatch in --version: curl: curl-config: 8.16.0 CMD (256): /build/curl/src/curl/tests/libtest/test1022.pl ../curl-config log/1/stdout1022 version test 1018...[X-X range on a file:// URL to stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1018 ../src/curl -q --trace-ascii log/5/trace1018 --trace-time -r 4-4 file://localhost/build/curl/src/build-curl/tests/log/5/test1018.txt > log/5/stdout1018 2> log/5/stderr1018 1018: stdout FAILED: --- log/5/check-expected 2025-09-11 10:32:55.017547782 +0000 +++ log/5/check-generated 2025-09-11 10:32:55.017547782 +0000 @@ -1 +0,0 @@ -5 == Contents of files in the log/5/ dir after test 1018 === Start of file check-expected 5 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1018 ../src/curl -q --trace-ascii log/5/trace1018 --trace-time -r 4-4 file://localhost/build/curl/src/build-curl/tests/log/5/test1018.txt > log/5/stdout1018 2> log/5/stderr1018 === End of file commands.log === Start of file server.cmd Testnum 1018 === End of file server.cmd === Start of file test1018.txt 1234567890 === End of file test1018.txt === Start of file valgrind1018 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1018 test 1015...[--data-urlencode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1015 ../src/curl -q --output log/6/curl1015.out --include --trace-ascii log/6/trace1015 --trace-time http://127.0.0.1:33363/1015 --data-urlencode "my name is moo[]" --data-urlencode "y e s=s_i_r" --data-urlencode "v_alue@log/6/1015.txt" --data-urlencode @log/6/1015.txt > log/6/stdout1015 2> log/6/stderr1015 1015: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1015 === Start of file 1015.txt content to _?!#$'|<> === End of file 1015.txt === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1015 ../src/curl -q --output log/6/curl1015.out --include --trace-ascii log/6/trace1015 --trace-time http://127.0.0.1:33363/1015 --data-urlencode "my name is moo[]" --data-urlencode "y e s=s_i_r" --data-urlencode "v_alue@log/6/1015.txt" --data-urlencode @log/6/1015.txt > log/6/stdout1015 2> log/6/stderr1015 === End of file commands.log === Start of file http_server.log 10:32:53.771245 ====> Client connect 10:32:53.771584 accept_connection 3 returned 4 10:32:53.771806 accept_connection 3 returned 0 10:32:53.771975 Read 93 bytes 10:32:53.772075 Process 93 bytes request 10:32:53.772175 Got request: GET /verifiedserver HTTP/1.1 10:32:53.772256 Are-we-friendly question received 10:32:53.772510 Wrote request (93 bytes) input to log/6/server.input 10:32:53.772709 Identifying ourselves as friends 10:32:53.773512 Response sent (56 bytes) and written to log/6/server.response 10:32:53.773699 special request received, no persistency 10:32:53.773785 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60050 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1015 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1015 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1015 test 1022...[Compare curl --version with curl-config --version] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1022 ../src/curl -q --output log/1/curl1022.out --include --trace-ascii log/1/trace1022 --trace-time --version > log/1/stdout1022 2> log/1/stderr1022 postcheck /build/curl/src/curl/tests/libtest/test1022.pl ../curl-config log/1/stdout1022 version 1022: postcheck FAILED == Contents of files in the log/1/ dir after test 1022 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1022 ../src/curl -q --output log/1/curl1022.out --include --trace-ascii log/1/trace1022 --trace-time --version > log/1/stdout1022 2> log/1/stderr1022 === End of file commands.log === Start of file server.cmd Testnum 1022 === End of file server.cmd === Start of file valgrind1022 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-bCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1021 ../src/curl -q --output log/2/curl1021.out --include --trace-ascii log/2/trace1021 --trace-time http://test.remote.example.com.1021:43789/path/10210002 --proxy http://127.0.0.1:43789 --proxy-user testuser:testpass --proxy-anyauth --proxytunnel > log/2/stdout1021 2> log/2/stderr1021 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1023 ../src/curl -q --output log/8/curl1023.out --include --trace-ascii log/8/trace1023 --trace-time --version > log/8/stdout1023 2> log/8/stderr1023 Use of uninitialized value $_ in scalar chomp at /build/curl/src/curl/tests/libtest/test1022.pl line 39. Use of uninitialized value $_ in pattern match (m//) at /build/curl/src/curl/tests/libtest/test1022.pl line 40. Use of uninitialized value $version in substitution (s///) at /build/curl/src/curl/tests/libtest/test1022.pl line 69, line 1. Use of uninitialized value $version in string ne at /build/curl/src/curl/tests/libtest/test1022.pl line 73. Use of uninitialized value $version in concatenation (.) or string at /build/curl/src/curl/tests/libtest/test1022.pl line 76. Mismatch in --version: curl: curl-config: 8.16.0 CMD (256): /build/curl/src/curl/tests/libtest/test1022.pl ../curl-config log/8/stdout1023 vernum CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1027 ../src/curl -q --output log/6/curl1027.out --include --trace-ascii log/6/trace1027 --trace-time --help > log/6/stdout1027 2> log/6/stderr1027 CMD (256): /usr/bin/perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(Usage: curl )|(--version\s*Show version)/, ); exit ($lines != 2); # Let this file pass an XML syntax check: ' log/6/stdout1027 e-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1022 test 1021...[HTTP proxy CONNECT with any proxyauth and proxy offers NTLM and close] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1021 ../src/curl -q --output log/2/curl1021.out --include --trace-ascii log/2/trace1021 --trace-time http://test.remote.example.com.1021:43789/path/10210002 --proxy http://127.0.0.1:43789 --proxy-user testuser:testpass --proxy-anyauth --proxytunnel > log/2/stdout1021 2> log/2/stderr1021 1021: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1021 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1021 ../src/curl -q --output log/2/curl1021.out --include --trace-ascii log/2/trace1021 --trace-time http://test.remote.example.com.1021:43789/path/10210002 --proxy http://127.0.0.1:43789 --proxy-user testuser:testpass --proxy-anyauth --proxytunnel > log/2/stdout1021 2> log/2/stderr1021 === End of file commands.log === Start of file http_server.log 10:32:54.017208 ====> Client connect 10:32:54.017563 accept_connection 3 returned 4 10:32:54.017801 accept_connection 3 returned 0 10:32:54.017957 Read 93 bytes 10:32:54.018057 Process 93 bytes request 10:32:54.018159 Got request: GET /verifiedserver HTTP/1.1 10:32:54.018463 Are-we-friendly question received 10:32:54.018850 Wrote request (93 bytes) input to log/2/server.input 10:32:54.019098 Identifying ourselves as friends 10:32:54.019914 Response sent (56 bytes) and written to log/2/server.response 10:32:54.020068 special request received, no persistency 10:32:54.020137 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 37322 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1021 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1021 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1021 test 1023...[Compare curl --version with curl-config --vernum] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1023 ../src/curl -q --output log/8/curl1023.out --include --trace-ascii log/8/trace1023 --trace-time --version > log/8/stdout1023 2> log/8/stderr1023 postcheck /build/curl/src/curl/tests/libtest/test1022.pl ../curl-config log/8/stdout1023 vernum 1023: postcheck FAILED == Contents of files in the log/8/ dir after test 1023 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1023 ../src/curl -q --output log/8/curl1023.out --include --trace-ascii log/8/trace1023 --trace-time --version > log/8/stdout1023 2> log/8/stderr1023 === End of file commands.log === Start of file server.cmd Testnum 1023 === End of file server.cmd === Start of file valgrind1023 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1023 test 1027...[curl --help] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1027 ../src/curl -q --output log/6/curl1027.out --include --trace-ascii log/6/trace1027 --trace-time --help > log/6/stdout1027 2> log/6/stderr1027 postcheck /usr/bin/perl -eCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1024 ../src/curl -q --output log/3/curl1024.out --include --trace-ascii log/3/trace1024 --trace-time http://127.0.0.1:36933/want/1024 -L -c log/3/jar1024 > log/3/stdout1024 2> log/3/stderr1024 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1025 ../src/curl -q --output log/7/curl1025.out --include --trace-ascii log/7/trace1025 --trace-time http://127.0.0.1:40129/want/1025 -L -c log/7/jar1025 -b forcedcookie=yes > log/7/stdout1025 2> log/7/stderr1025 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1029 ../src/curl -q --include --trace-ascii log/5/trace1029 --trace-time http://127.0.0.1:41733/we/want/our/1029 -w '%{redirect_url} %{url} %{exitcode} %{errormsg}\n' > log/5/stdout1029 2> log/5/stderr1029 'open(IN,$ARGV[0]); my $lines=grep(/(Usage: curl )|(--version\s*Show version)/, ); exit ($lines != 2); # Let this file pass an XML syntax check: ' log/6/stdout1027 1027: postcheck FAILED == Contents of files in the log/6/ dir after test 1027 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1027 ../src/curl -q --output log/6/curl1027.out --include --trace-ascii log/6/trace1027 --trace-time --help > log/6/stdout1027 2> log/6/stderr1027 === End of file commands.log === Start of file server.cmd Testnum 1027 === End of file server.cmd === Start of file valgrind1027 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1027 test 1024...[HTTP Location: following with cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1024 ../src/curl -q --output log/3/curl1024.out --include --trace-ascii log/3/trace1024 --trace-time http://127.0.0.1:36933/want/1024 -L -c log/3/jar1024 > log/3/stdout1024 2> log/3/stderr1024 1024: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1024 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1024 ../src/curl -q --output log/3/curl1024.out --include --trace-ascii log/3/trace1024 --trace-time http://127.0.0.1:36933/want/1024 -L -c log/3/jar1024 > log/3/stdout1024 2> log/3/stderr1024 === End of file commands.log === Start of file http_server.log 10:32:54.738731 ====> Client connect 10:32:54.739045 accept_connection 3 returned 4 10:32:54.739214 accept_connection 3 returned 0 10:32:54.739333 Read 93 bytes 10:32:54.739410 Process 93 bytes request 10:32:54.739496 Got request: GET /verifiedserver HTTP/1.1 10:32:54.739592 Are-we-friendly question received 10:32:54.739822 Wrote request (93 bytes) input to log/3/server.input 10:32:54.739978 Identifying ourselves as friends 10:32:54.740641 Response sent (56 bytes) and written to log/3/server.response 10:32:54.740771 special request received, no persistency 10:32:54.740837 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60930 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1024 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1024 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1024 test 1025...[HTTP Location: following with command-line and server cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1025 ../src/curl -q --output log/7/curl1025.out --include --trace-ascii log/7/trace1025 --trace-time http://127.0.0.1:40129/want/1025 -L -c log/7/jar1025 -b forcedcookie=yes > log/7/stdout1025 2> log/7/stderr1025 1025: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1025 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1025 ../src/curl -q --output log/7/curl1025.out --include --trace-ascii log/7/trace1025 --trace-time http://127.0.0.1:40129/want/1025 -L -c log/7/jar1025 -b forcedcookie=yes > log/7/stdout1025 2> log/7/stderr1025 === End of file commands.log === Start of file http_server.log 10:32:54.808339 ====> Client connect 10:32:54.808705 accept_connection 3 returned 4 10:32:54.808928 accept_connection 3 returned 0 10:32:54.809075 Read 93 bytes 10:32:54.809163 Process 93 bytes request 10:32:54.809246 Got request: GET /verifiedserver HTTP/1.1 10:32:54.809316 Are-we-friendly question received 10:32:54.809563 Wrote request (93 bytes) input to log/7/server.input 10:32:54.809746 Identifying ourselves as friends 10:32:54.810592 Response sent (56 bytes) and written to log/7/server.response 10:32:54.810760 special request received, no persistency 10:32:54.810830 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54090 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1025 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1025 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1025 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1031 ../src/curl -q --output log/2/curl1031.out --include --trace-ascii log/2/trace1031 --trace-time http://127.0.0.1:43789/want/this/1031 -L > log/2/stdout1031 2> log/2/stderr1031 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1028 ../src/curl -q --include --trace-ascii log/1/trace1028 --trace-time http://127.0.0.1:36129/10280001 -L > log/1/stdout1028 2> log/1/stderr1028 test 1029...[HTTP Location: and 'redirect_url' check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1029 ../src/curl -q --include --trace-ascii log/5/trace1029 --trace-time http://127.0.0.1:41733/we/want/our/1029 -w '%{redirect_url} %{url} %{exitcode} %{errormsg}\n' > log/5/stdout1029 2> log/5/stderr1029 1029: stdout FAILED: --- log/5/check-expected 2025-09-11 10:32:56.105569440 +0000 +++ log/5/check-generated 2025-09-11 10:32:56.105569440 +0000 @@ -1,7 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10290002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -http://127.0.0.1:41733/we/want/our/data/10290002.txt?coolsite=yes http://127.0.0.1:41733/we/want/our/1029 0 [LF] == Contents of files in the log/5/ dir after test 1029 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10290002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] http://127.0.0.1:41733/we/want/our/data/10290002.txt?coolsite=yes http://127.0.0.1:41733/we/want/our/1029 0 [LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1029 ../src/curl -q --include --trace-ascii log/5/trace1029 --trace-time http://127.0.0.1:41733/we/want/our/1029 -w '%{redirect_url} %{url} %{exitcode} %{errormsg}\n' > log/5/stdout1029 2> log/5/stderr1029 === End of file commands.log === Start of file http_server.log 10:32:55.964747 ====> Client connect 10:32:55.965245 accept_connection 3 returned 4 10:32:55.965546 accept_connection 3 returned 0 10:32:55.965728 Read 93 bytes 10:32:55.965856 Process 93 bytes request 10:32:55.965959 Got request: GET /verifiedserver HTTP/1.1 10:32:55.966069 Are-we-friendly question received 10:32:55.966509 Wrote request (93 bytes) input to log/5/server.input 10:32:55.966889 Identifying ourselves as friends 10:32:55.968053 Response sent (56 bytes) and written to log/5/server.response 10:32:55.968350 special request received, no persistency 10:32:55.968480 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 58042 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1029 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1029 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1029 test 1031...[HTTP Location: following to a query string] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1031 ../src/curl -q --output log/2/curl1031.out --include --trace-ascii log/2/trace1031 --trace-time http://127.0.0.1:43789/want/this/1031 -L > log/2/stdout1031 2> log/2/stderr1031 1031: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1031 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1031 ../src/curl -q --output log/2/curl1031.out --include --trace-ascii log/2/trace1031 --trace-time http://127.0.0.1:43789/want/this/1031 -L > log/2/stdout1031 2> log/2/stderr1031 === End of file commands.log === Start of file http_server.log 10:32:55.170698 ====> Client connect 10:32:55.171102 accept_connection 3 returned 4 10:32:55.171308 accept_connection 3 returned 0 10:32:55.171446 Read 93 bytes 10:32:55.171520 Process 93 bytes request 10:32:55.171600 Got request: GET /verifiedserver HTTP/1.1 10:32:55.171679 Are-we-friendly question received 10:32:55.171894 Wrote request (93 bytes) input to log/2/server.input 10:32:55.172077 Identifying ourselves as friends 10:32:55.172794 Response sent (56 bytes) and written to log/2/server.response 10:32:55.172927 special request received, no persistency 10:32:55.172993 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 37334 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1031 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1031 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install forCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1030 ../src/curl -q --output log/4/curl1030.out --include --trace-ascii log/4/trace1030 --trace-time http://127.0.0.1:36757/1030 -T log/4/put1030 -u testuser:testpass --anyauth > log/4/stdout1030 2> log/4/stderr1030 fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1031 test 1028...[HTTP Location: redirect to FTP URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1028 ../src/curl -q --include --trace-ascii log/1/trace1028 --trace-time http://127.0.0.1:36129/10280001 -L > log/1/stdout1028 2> log/1/stderr1028 1028: stdout FAILED: --- log/1/check-expected 2025-09-11 10:32:56.361574536 +0000 +++ log/1/check-generated 2025-09-11 10:32:56.361574536 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 302 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake swsclose[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -Location: ftp://127.0.0.1:38733/10280002[CR][LF] -Content-Length: 0[CR][LF] -Connection: close[CR][LF] -[CR][LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] == Contents of files in the log/1/ dir after test 1028 === Start of file check-expected HTTP/1.1 302 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake swsclose[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] Location: ftp://127.0.0.1:38733/10280002[CR][LF] Content-Length: 0[CR][LF] Connection: close[CR][LF] [CR][LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1028 ../src/curl -q --include --trace-ascii log/1/trace1028 --trace-time http://127.0.0.1:36129/10280001 -L > log/1/stdout1028 2> log/1/stderr1028 === End of file commands.log === Start of file ftp_server.log 10:32:55.401650 ====> Client connect 10:32:55.403199 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:55.407141 < "USER anonymous" 10:32:55.407672 > "331 We are happy you popped in![CR][LF]" 10:32:55.414394 < "PASS ftp@example.com" 10:32:55.414955 > "230 Welcome you silly person[CR][LF]" 10:32:55.419743 < "PWD" 10:32:55.420339 > "257 "/" is current directory[CR][LF]" 10:32:55.426661 < "EPSV" 10:32:55.427073 ====> Passive DATA channel requested by client 10:32:55.427280 DATA sockfilt for passive data channel starting... 10:32:55.445709 DATA sockfilt for passive data channel started (pid 127465) 10:32:55.449883 DATA sockfilt for passive data channel listens on port 45359 10:32:55.450519 > "229 Entering Passive Mode (|||45359|)[LF]" 10:32:55.450849 Client has been notified that DATA conn will be accepted on port 45359 10:32:55.452827 Client connects to port 45359 10:32:55.453220 ====> Client established passive DATA connection on port 45359 10:32:55.454377 < "TYPE I" 10:32:55.454967 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:55.466443 < "SIZE verifiedserver" 10:32:55.467181 > "213 17[CR][LF]" 10:32:55.469373 < "RETR verifiedserver" 10:32:55.470110 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:55.471112 =====> Closing passive DATA connection... 10:32:55.471469 Server disconnects passive DATA connection 10:32:55.476670 Server disconnected passive DATA connection 10:32:55.477180 DATA sockfilt for passive data channel quits (pid 127465) 10:32:55.480913 DATA sockfilt for passive data channel quit (pid 127465) 10:32:55.481377 =====> Closed passive DATA connection 10:32:55.482260 > "226 File transfer complete[CR][LF]" 10:32:55.527442 < "QUIT" 10:32:55.527964 > "221 bye bye baby[CR][LF]" 10:32:55.533623 MAIN sockfilt said DISC 10:32:55.534096 ====> Client disconnected 10:32:55.534729 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:55.066924 ====> Client connect 10:32:55.072172 Received DATA (on stdin) 10:32:55.072400 > 160 bytes data, server => client 10:32:55.072529 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:55.072627 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:55.072711 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:55.074974 < 16 bytes data, client => server 10:32:55.075308 'USER anonymous\r\n' 10:32:55.076463 Received DATA (on stdin) 10:32:55.076633 > 33 bytes data, server => client 10:32:55.076723 '331 We are happy you popped in!\r\n' 10:32:55.077541 < 22 bytes data, client => server 10:32:55.077758 'PASS ftp@example.com\r\n' 10:32:55.086367 Received DATA (on stdin) 10:32:55.086660 > 30 bytes data, server => client 10:32:55.086781 '230 Welcome you silly person\r\n' 10:32:55.087627 < 5 bytes data, client => server 10:32:55.087821 'PWD\r\n' 10:32:55.089496 Received DATA (on stdin) 10:32:55.089689 > 30 bytes data, server => client 10:32:55.089783 '257 "/" is current directory\r\n' 10:32:55.092642 < 6 bytes data, client => server 10:32:55.092828 'EPSV\r\n' 10:32:55.119517 Received DATA (on stdin) 10:32:55.119685 > 38 bytes data, server => client 10:32:55.119783 '229 Entering Passive Mode (|||45359|)\n' 10:32:55.121596 < 8 bytes data, client => server 10:32:55.121797 'TYPE I\r\n' 10:32:55.126372 Received DATA (on stdin) 10:32:55.126633 > 33 bytes data, server => client 10:32:55.126783 '200 I modify TYPE as you wanted\r\n' 10:32:55.127680 < 21 bytes data, client => server 10:32:55.127883 'SIZE verifiedserver\r\n' 10:32:55.136004 Received DATA (on stdin) 10:32:55.136218 > 8 bytes data, server => client 10:32:55.136326 '213 17\r\n' 10:32:55.137390 < 21 bytes data, client => server 10:32:55.137640 'RETR verifiedserver\r\n' 10:32:55.141757 Received DATA (on stdin) 10:32:55.142019 > 29 bytes data, server => client 10:32:55.142143 '150 Binary junk (17 bytes).\r\n' 10:32:55.154381 Received DATA (on stdin) 10:32:55.154695 > 28 bytes data, server => client 10:32:55.154843 '226 File transfer complete\r\n' 10:32:55.191083 < 6 bytes data, client => server 10:32:55.191327 'QUIT\r\n' 10:32:55.196731 Received DATA (on stdin) 10:32:55.196951 > 18 bytes data, server => client 10:32:55.197101 '221 bye bye baby\r\n' 10:32:55.198528 ====> Client disconnect 10:32:55.202905 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:55.106717 Running IPv4 version 10:32:55.107286 Listening on port 45359 10:32:55.107763 Wrote pid 127465 to log/1/server/ftp_sockdata.pid 10:32:55.107961 Received PING (on stdin) 10:32:55.117759 Received PORT (on stdin) 10:32:55.121157 ====> Client connect 10:32:55.139514 Received DATA (on stdin) 10:32:55.139779 > 17 bytes data, server => client 10:32:55.139925 'WE ROOLZ: 79585\r\n' 10:32:55.140647 Received DISC (on stdin) 10:32:55.140903 ====> Client forcibly disconnected 10:32:55.146784 Received QUIT (on stdin) 10:32:55.147069 quits 10:32:55.147645 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:32:54.897261 ====> Client connect 10:32:54.897603 accept_connection 3 returned 4 10:32:54.897808 accept_connection 3 returned 0 10:32:54.897962 Read 93 bytes 10:32:54.898063 Process 93 bytes request 10:32:54.898159 Got request: GET /verifiedserver HTTP/1.1 10:32:54.898299 Are-we-friendly question received 10:32:54.898610 Wrote request (93 bytes) input to log/1/server.input 10:32:54.898843 Identifying ourselves as friends 10:32:54.899663 Response sent (56 bytes) and written to log/1/server.response 10:32:54.899814 special request received, no persistency 10:32:54.899910 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 38396 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1032 ../src/curl -q --output log/8/curl1032.out --include --trace-ascii log/8/trace1032 --trace-time --range 1-3 --head http://127.0.0.1:36007/1032 > log/8/stdout1032 2> log/8/stderr1032 E ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1028 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1028 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1028 test 1030...[HTTP PUT with --anyauth authorization (picking Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1030 ../src/curl -q --output log/4/curl1030.out --include --trace-ascii log/4/trace1030 --trace-time http://127.0.0.1:36757/1030 -T log/4/put1030 -u testuser:testpass --anyauth > log/4/stdout1030 2> log/4/stderr1030 1030: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1030 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1030 ../src/curl -q --output log/4/curl1030.out --include --trace-ascii log/4/trace1030 --trace-time http://127.0.0.1:36757/1030 -T log/4/put1030 -u testuser:testpass --anyauth > log/4/stdout1030 2> log/4/stderr1030 === End of file commands.log === Start of file http_server.log 10:32:56.095230 ====> Client connect 10:32:56.095609 accept_connection 3 returned 4 10:32:56.095813 accept_connection 3 returned 0 10:32:56.099385 Read 93 bytes 10:32:56.099594 Process 93 bytes request 10:32:56.099720 Got request: GET /verifiedserver HTTP/1.1 10:32:56.099816 Are-we-friendly question received 10:32:56.100123 Wrote request (93 bytes) input to log/4/server.input 10:32:56.100450 Identifying ourselves as friends 10:32:56.101242 Response sent (56 bytes) and written to log/4/server.response 10:32:56.101384 special request received, no persistency 10:32:56.101455 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 48892 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file put1030 This is data we upload with PUT a second line line three four is the number of lines === End of file put1030 === Start of file server.cmd Testnum 1030 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1030 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1030 test 1032...[HTTP HEAD with --range] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1032 ../src/curl -q --output log/8/curl1032.out --include --trace-ascii log/8/trace1032 --trace-time --range 1-3 --head http://127.0.0.1:36007/1032 > log/8/stdout1032 2> log/8/stderr1032 1032: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1032 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1032 ../src/curl -q --output log/8/curl1032.out --include --trace-ascii log/8/trace1032 --trace-time --range 1-3 --head http://127.0.0.1:36007/1032 > log/8/stdout1032 2> log/8/stderr1032 === End of file commands.log === Start of file http_server.log 10:32:55.330598 ====> Client connect 10:32:55.330951 accept_connection 3 returned 4 10:32:55.331172 accept_connection 3 returned 0 10:32:55.331334 Read 93 bytes 10:32:55.331435 Process 93 bytes request 10:32:55.331523 Got request: GET /verifiedserver HTTP/1.1 10:32:55.331597 Are-we-friendly question received 10:32:55.331833 Wrote request (93 bytes) input to log/8/server.input 10:32:55.332049 Identifying ourselves as friends 10:32:55.332765 Response sent (56 bytes) and written to log/8/server.response 10:32:55.332914 special request received, no persistency 10:32:55.333005 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 54050 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1032 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1034 ../src/curl -q --output log/3/curl1034.out --include --trace-ascii log/3/trace1034 --trace-time -K - -x 127.0.0.1:47 log/3/stdout1034 2> log/3/stderr1034 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1033 ../src/curl -q --output log/6/curl1033.out --include --trace-ascii log/6/trace1033 --trace-time http://127.0.0.1:33363/1033 > log/6/stdout1033 2> log/6/stderr1033 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1035 ../src/curl -q --output log/7/curl1035.out --include --trace-ascii log/7/trace1035 --trace-time http://too-long-IDN-name-cürl-rüleß-la-la-la-dee-da-flooby-nooby.local/page/1035 -x 127.0.0.1:47 > log/7/stdout1035 2> log/7/stderr1035 OLZ: 73516 === End of file server.response === Start of file valgrind1032 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1032 setenv LC_ALL = C.UTF-8 test 1034...[HTTP over proxy with malformatted IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1034 ../src/curl -q --output log/3/curl1034.out --include --trace-ascii log/3/trace1034 --trace-time -K - -x 127.0.0.1:47 log/3/stdout1034 2> log/3/stderr1034 curl returned 1, when expecting 3 1034: exit FAILED == Contents of files in the log/3/ dir after test 1034 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1034 ../src/curl -q --output log/3/curl1034.out --include --trace-ascii log/3/trace1034 --trace-time -K - -x 127.0.0.1:47 log/3/stdout1034 2> log/3/stderr1034 === End of file commands.log === Start of file server.cmd Testnum 1034 === End of file server.cmd === Start of file stdin-for-1034 url = "http://invalid-utf8-â.local/page/1034" === End of file stdin-for-1034 === Start of file valgrind1034 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1034 test 1033...[HTTP GET with 102 response!] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1033 ../src/curl -q --output log/6/curl1033.out --include --trace-ascii log/6/trace1033 --trace-time http://127.0.0.1:33363/1033 > log/6/stdout1033 2> log/6/stderr1033 1033: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1033 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1033 ../src/curl -q --output log/6/curl1033.out --include --trace-ascii log/6/trace1033 --trace-time http://127.0.0.1:33363/1033 > log/6/stdout1033 2> log/6/stderr1033 === End of file commands.log === Start of file http_server.log 10:32:55.617267 ====> Client connect 10:32:55.617801 accept_connection 3 returned 4 10:32:55.618168 accept_connection 3 returned 0 10:32:55.618620 Read 93 bytes 10:32:55.618800 Process 93 bytes request 10:32:55.618946 Got request: GET /verifiedserver HTTP/1.1 10:32:55.619065 Are-we-friendly question received 10:32:55.622418 Wrote request (93 bytes) input to log/6/server.input 10:32:55.622935 Identifying ourselves as friends 10:32:55.624116 Response sent (56 bytes) and written to log/6/server.response 10:32:55.624372 special request received, no persistency 10:32:55.624508 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60056 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1033 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1033 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1033 setenv LC_ALL = C.UTF-8 test 1035...[HTTP over proxy with too long IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callerCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1036 ../src/curl -q --output log/5/curl1036.out --include --trace-ascii log/5/trace1036 --trace-time ftp://127.0.0.1:43393/1036 -C - > log/5/stdout1036 2> log/5/stderr1036 s=16 --log-file=log/7/valgrind1035 ../src/curl -q --output log/7/curl1035.out --include --trace-ascii log/7/trace1035 --trace-time http://too-long-IDN-name-cürl-rüleß-la-la-la-dee-da-flooby-nooby.local/page/1035 -x 127.0.0.1:47 > log/7/stdout1035 2> log/7/stderr1035 curl returned 1, when expecting 3 1035: exit FAILED == Contents of files in the log/7/ dir after test 1035 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1035 ../src/curl -q --output log/7/curl1035.out --include --trace-ascii log/7/trace1035 --trace-time http://too-long-IDN-name-cürl-rüleß-la-la-la-dee-da-flooby-nooby.local/page/1035 -x 127.0.0.1:47 > log/7/stdout1035 2> log/7/stderr1035 === End of file commands.log === Start of file server.cmd Testnum 1035 === End of file server.cmd === Start of file valgrind1035 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1035 test 1036...[FTP download resume from end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1036 ../src/curl -q --output log/5/curl1036.out --include --trace-ascii log/5/trace1036 --trace-time ftp://127.0.0.1:43393/1036 -C - > log/5/stdout1036 2> log/5/stderr1036 1036: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1036 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1036 ../src/curl -q --output log/5/curl1036.out --include --trace-ascii log/5/trace1036 --trace-time ftp://127.0.0.1:43393/1036 -C - > log/5/stdout1036 2> log/5/stderr1036 === End of file commands.log === Start of file curl1036.out This is the start! === End of file curl1036.out === Start of file ftp_server.log 10:32:56.329617 ====> Client connect 10:32:56.331287 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:56.339029 < "USER anonymous" 10:32:56.339681 > "331 We are happy you popped in![CR][LF]" 10:32:56.343683 < "PASS ftp@example.com" 10:32:56.344148 > "230 Welcome you silly person[CR][LF]" 10:32:56.346022 < "PWD" 10:32:56.346517 > "257 "/" is current directory[CR][LF]" 10:32:56.348626 < "EPSV" 10:32:56.349083 ====> Passive DATA channel requested by client 10:32:56.349374 DATA sockfilt for passive data channel starting... 10:32:56.366815 DATA sockfilt for passive data channel started (pid 127904) 10:32:56.368187 DATA sockfilt for passive data channel listens on port 40471 10:32:56.368708 > "229 Entering Passive Mode (|||40471|)[LF]" 10:32:56.369014 Client has been notified that DATA conn will be accepted on port 40471 10:32:56.371021 Client connects to port 40471 10:32:56.371458 ====> Client established passive DATA connection on port 40471 10:32:56.372329 < "TYPE I" 10:32:56.372760 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:56.374640 < "SIZE verifiedserver" 10:32:56.375241 > "213 17[CR][LF]" 10:32:56.379159 < "RETR verifiedserver" 10:32:56.379838 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:56.380820 =====> Closing passive DATA connection... 10:32:56.381201 Server disconnects passive DATA connection 10:32:56.382512 Server disconnected passive DATA connection 10:32:56.382979 DATA sockfilt for passive data channel quits (pid 127904) 10:32:56.388886 DATA sockfilt for passive data channel quit (pid 127904) 10:32:56.389291 =====> Closed passive DATA connection 10:32:56.389779 > "226 File transfer complete[CR][LF]" 10:32:56.430469 < "QUIT" 10:32:56.431055 > "221 bye bye baby[CR][LF]" 10:32:56.435634 MAIN sockfilt said DISC 10:32:56.436092 ====> Client disconnected 10:32:56.436688 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:55.996664 ====> Client connect 10:32:56.000614 Received DATA (on stdin) 10:32:56.000901 > 160 bytes data, server => client 10:32:56.001055 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:56.001158 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:56.001246 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:56.002590 < 16 bytes data, client => server 10:32:56.002909 'USER anonymous\r\n' 10:32:56.009796 Received DATA (on stdin) 10:32:56.010097 > 33 bytes data, server => client 10:32:56.010529 '331 We are happy you popped in!\r\n' 10:32:56.011662 < 22 bytes data, client => server 10:32:56.011911 'PASS ftp@example.com\r\n' 10:32:56.012923 Received DATA (on stdin) 10:32:56.013088 > 30 bytes data, server => client 10:32:56.013204 '230 Welcome you silly person\r\n' 10:32:56.014010 < 5 bytes data, client => server 10:32:56.014310 'PWD\r\n' 10:32:56.015308 Received DATA (on stdin) 10:32:56.015531 > 30 bytes data, server => client 10:32:56.015643 '257 "/" is current directory\r\n' 10:32:56.016518 < 6 bytes data, client => server 10:32:56.016737 'EPSV\r\n' 10:32:56.037508 Received DATA (on stdin) 10:32:56.037740 > 38 bytes data, server => client 10:32:56.037857 '229 Entering Passive Mode (|||40471|)\n' 10:32:56.039706 < 8 bytes data, client => server 10:32:56.039918 'TYPE I\r\n' 10:32:56.041535 Received DATA (on stdin) 10:32:56.041700 > 33 bytes data, server => client 10:32:56.041800 '200 I modify TYPE as you wanted\r\n' 10:32:56.042622 < 21 bytes data, client => server 10:32:56.042857 'SIZE verifiedserver\r\n' 10:32:56.045914 Received DATA (on stdin) 10:32:56.046158 > 8 bytes data, server => client 10:32:56.046361 '213 17\r\n' 10:32:56.047071 < 21 bytes data, client => server 10:32:56.047323 'RETR verifiedserver\r\n' 10:32:56.050477 Received DATA (on stdin) 10:32:56.050645 > 29 bytes data, server => client 10:32:56.050733 '150 Binary junk (17 bytes).\r\n' 10:32:56.058531 Received DATA (on stdin) 10:32:56.058804 > 28 bytes data, server => client 10:32:56.058918 '226 File transfer complete\r\n' 10:32:56.095313 < 6 bytes data, client => server 10:32:56.095560 'QUIT\r\n' 10:32:56.099864 Received DATA (on stdin) 10:32:56.100134 > 18 bytes data, server => client 10:32:56.100263 '221 bye bye baby\r\n' 10:32:56.103951 ====> Client disconnect 10:32:56.104902 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:56.029797 Running IPv4 version 10:32:56.034101 Listening on port 40471 10:32:56.034846 Wrote pid 127904 to log/5/server/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1037 ../src/curl -q --output log/2/curl1037.out --include --trace-ascii log/2/trace1037 --trace-time ftp://127.0.0.1:37959/1037 -C - > log/2/stdout1037 2> log/2/stderr1037 ftp_sockdata.pid 10:32:56.035147 Received PING (on stdin) 10:32:56.036174 Received PORT (on stdin) 10:32:56.039338 ====> Client connect 10:32:56.050319 Received DATA (on stdin) 10:32:56.050536 > 17 bytes data, server => client 10:32:56.050621 'WE ROOLZ: 79602\r\n' 10:32:56.050953 Received DISC (on stdin) 10:32:56.051126 ====> Client forcibly disconnected 10:32:56.054395 Received QUIT (on stdin) 10:32:56.054631 quits 10:32:56.055147 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1036 === End of file server.cmd === Start of file valgrind1036 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1036 test 1037...[FTP download resume from end of empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1037 ../src/curl -q --output log/2/curl1037.out --include --trace-ascii log/2/trace1037 --trace-time ftp://127.0.0.1:37959/1037 -C - > log/2/stdout1037 2> log/2/stderr1037 1037: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1037 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1037 ../src/curl -q --output log/2/curl1037.out --include --trace-ascii log/2/trace1037 --trace-time ftp://127.0.0.1:37959/1037 -C - > log/2/stdout1037 2> log/2/stderr1037 === End of file commands.log === Start of file ftp_server.log 10:32:56.523856 ====> Client connect 10:32:56.525214 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:56.530301 < "USER anonymous" 10:32:56.530974 > "331 We are happy you popped in![CR][LF]" 10:32:56.536027 < "PASS ftp@example.com" 10:32:56.536583 > "230 Welcome you silly person[CR][LF]" 10:32:56.543477 < "PWD" 10:32:56.545013 > "257 "/" is current directory[CR][LF]" 10:32:56.553273 < "EPSV" 10:32:56.553834 ====> Passive DATA channel requested by client 10:32:56.554197 DATA sockfilt for passive data channel starting... 10:32:56.567595 DATA sockfilt for passive data channel started (pid 128030) 10:32:56.569107 DATA sockfilt for passive data channel listens on port 36399 10:32:56.569801 > "229 Entering Passive Mode (|||36399|)[LF]" 10:32:56.570214 Client has been notified that DATA conn will be accepted on port 36399 10:32:56.574285 Client connects to port 36399 10:32:56.574912 ====> Client established passive DATA connection on port 36399 10:32:56.577326 < "TYPE I" 10:32:56.578979 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:56.584090 < "SIZE verifiedserver" 10:32:56.584770 > "213 17[CR][LF]" 10:32:56.593443 < "RETR verifiedserver" 10:32:56.594153 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:56.595085 =====> Closing passive DATA connection... 10:32:56.595425 Server disconnects passive DATA connection 10:32:56.596607 Server disconnected passive DATA connection 10:32:56.597076 DATA sockfilt for passive data channel quits (pid 128030) 10:32:56.599196 DATA sockfilt for passive data channel quit (pid 128030) 10:32:56.599597 =====> Closed passive DATA connection 10:32:56.599944 > "226 File transfer complete[CR][LF]" 10:32:56.639057 < "QUIT" 10:32:56.639428 > "221 bye bye baby[CR][LF]" 10:32:56.642883 MAIN sockfilt said DISC 10:32:56.643323 ====> Client disconnected 10:32:56.643920 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:56.188947 ====> Client connect 10:32:56.194544 Received DATA (on stdin) 10:32:56.194813 > 160 bytes data, server => client 10:32:56.194952 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:56.195037 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:56.195107 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:56.197071 < 16 bytes data, client => server 10:32:56.197269 'USER anonymous\r\n' 10:32:56.200253 Received DATA (on stdin) 10:32:56.200528 > 33 bytes data, server => client 10:32:56.200682 '331 We are happy you popped in!\r\n' 10:32:56.205830 < 22 bytes data, client => server 10:32:56.206025 'PASS ftp@example.com\r\n' 10:32:56.206165 Received DATA (on stdin) 10:32:56.206404 > 30 bytes data, server => client 10:32:56.206525 '230 Welcome you silly person\r\n' 10:32:56.210990 < 5 bytes data, client => server 10:32:56.211211 'PWD\r\n' 10:32:56.212805 Received DATA (on stdin) 10:32:56.213017 > 30 bytes data, server => client 10:32:56.213223 '257 "/" is current directory\r\n' 10:32:56.215531 < 6 bytes data, client => server 10:32:56.215753 'EPSV\r\n' 10:32:56.239534 Received DATA (on stdin) 10:32:56.239742 > 38 bytes data, server => client 10:32:56.239847 '229 Entering Passive Mode (|||36399|)\n' 10:32:56.244511 < 8 bytes data, client => server 10:32:56.244837 'TYPE I\r\n' 10:32:56.246806 Received DATA (on stdin) 10:32:56.247040 > 33 bytes data, server => client 10:32:56.247710 '200 I modify TYPE as you wanted\r\n' 10:32:56.251936 < 21 bytes data, client => server 10:32:56.252154 'SIZE verifiedserver\r\n' 10:32:56.255750 Received DATA (on stdin) 10:32:56.255995 > 8 bytes data, server => client 10:32:56.256097 '213 17\r\n' 10:32:56.259175 < 21 bytes data, client => server 10:32:56.259372 'RETR verifiedserver\r\n' 10:32:56.262942 Received DATA (on stdin) 10:32:56.263171 > 29 bytes data, server => client 10:32:56.263310 '150 Binary junk (17 bytes).\r\n' 10:32:56.269658 Received DATA (on stdin) 10:32:56.269874 > 28 bytes data, server => client 10:32:56.269967 '226 File transfer complete\r\n' 10:32:56.307042 < 6 bytes data, client => server 10:32:56.307202 'QUIT\r\n' 10:32:56.308187 Received DATA (on stdin) 10:32:56.308299 > 18 bytes data, server => client 10:32:56.308383 '221 bye bye baby\r\n' 10:32:56.310537 ====> Client disconnect 10:32:56.312130 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:56.234663 Running IPv4 version 10:32:56.235287 Listening on port 36399 10:32:56.235798 Wrote pid 128030 to log/2/server/ftp_sockdata.pid 10:32:56.235990 Received PING (on stdin) 10:32:56.237011 Received PORT (on stdin) 10:32:56.242450 ====> Client connect 10:32:56.263844 Received DATA (on stdin) 10:32:56.264093 > 17 bytes data, server => client 10:32:56.264231 'WE ROOLZ: 79558\r\n' 10:32:56.264651 Received DISC (on stdin) 10:32:56.264882 ====> Client forcibly disconnected 10:32:56.266389 Received QUIT (oCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1038 ../src/curl -q --output log/1/curl1038.out --include --trace-ascii log/1/trace1038 --trace-time ftp://127.0.0.1:38733/1038 -T log/1/upload1038 -C - > log/1/stdout1038 2> log/1/stderr1038 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1040 ../src/curl -q --output log/8/curl1040.out --include --trace-ascii log/8/trace1040 --trace-time http://127.0.0.1:36007/1040 -C - > log/8/stdout1040 2> log/8/stderr1040 n stdin) 10:32:56.266634 quits 10:32:56.267098 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1037 === End of file server.cmd === Start of file valgrind1037 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1037 test 1040...[HTTP GET with resume from end of entirely-downloaded file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1040 ../src/curl -q --output log/8/curl1040.out --include --trace-ascii log/8/trace1040 --trace-time http://127.0.0.1:36007/1040 -C - > log/8/stdout1040 2> log/8/stderr1040 1040: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1040 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1040 ../src/curl -q --output log/8/curl1040.out --include --trace-ascii log/8/trace1040 --trace-time http://127.0.0.1:36007/1040 -C - > log/8/stdout1040 2> log/8/stderr1040 === End of file commands.log === Start of file curl1040.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1040.out === Start of file http_server.log 10:32:56.305234 ====> Client connect 10:32:56.305591 accept_connection 3 returned 4 10:32:56.305800 accept_connection 3 returned 0 10:32:56.307364 Read 93 bytes 10:32:56.307470 Process 93 bytes request 10:32:56.307565 Got request: GET /verifiedserver HTTP/1.1 10:32:56.307637 Are-we-friendly question received 10:32:56.307890 Wrote request (93 bytes) input to log/8/server.input 10:32:56.308047 Identifying ourselves as friends 10:32:56.311632 Response sent (56 bytes) and written to log/8/server.response 10:32:56.311760 special request received, no persistency 10:32:56.311832 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 54064 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1040 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1040 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1040 test 1038...[FTP PASV upload resume from end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1038 ../src/curl -q --output log/1/curl1038.out --include --trace-ascii log/1/trace1038 --trace-time ftp://127.0.0.1:38733/1038 -T log/1/upload1038 -C - > log/1/stdout1038 2> log/1/stderr1038 1038: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1038 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1038 ../src/curl -q --output log/1/curl1038.out --include --trace-ascii log/1/trace1038 --trace-time ftp://127.0.0.1:38733/1038 -T log/1/upload1038 -C - > log/1/stdout1038 2> log/1/stderr1038 === End of file commands.log === Start of file ftp_server.log 10:32:56.596619 ====> Client connect 10:32:56.598196 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:56.606556 < "USER anonymous" 10:32:56.607078 > "331 We are happy you popped in![CR][LF]" 10:32:56.608768 < "PASS ftp@example.com" 10:32:56.609199 > "230 Welcome you silly person[CR][LF]" 10:32:56.614602 < "PWD" 10:32:56.615090 > "257 "/" is current directory[CR][LF]" 10:32:56.622978 < "EPSV" 10:32:56.623278 ====> Passive DATA channel requested by client 10:32:56.623505 DATA sockfilt for passive data channel starting... 10:32:56.639029 DATA sockfilt for passive data channel started (pid 128056) 10:32:56.639974 DATA sockfilt for passive data channel listens on port 42193 10:32:56.640524 > "229 Entering Passive Mode (|||42193|)[LF]" 10:32:56.640879 Client has been notified that DATA conn will be accepted on port 42193 10:32:56.647900 Client connects to port 42193 10:32:56.648273 ====> Client established passive DATA connection on port 42193 10:32:56.649042 < "TYPE I" 10:32:56.649592 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:56.658295 < "SIZE verifiedserver" 10:32:56.658780 > "213 17[CR][LF]" 10:32:56.660587 < "RETR verifiedserver" 10:32:56.661119 > "150 Binary junk (17 bytes).[CR][LF]"CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1039 ../src/curl -q --output log/4/curl1039.out --include --trace-ascii log/4/trace1039 --trace-time ftp://127.0.0.1:42635/1039 -T log/4/upload1039 -C - > log/4/stdout1039 2> log/4/stderr1039 10:32:56.662045 =====> Closing passive DATA connection... 10:32:56.662357 Server disconnects passive DATA connection 10:32:56.668455 Server disconnected passive DATA connection 10:32:56.668851 DATA sockfilt for passive data channel quits (pid 128056) 10:32:56.671003 DATA sockfilt for passive data channel quit (pid 128056) 10:32:56.671398 =====> Closed passive DATA connection 10:32:56.671737 > "226 File transfer complete[CR][LF]" 10:32:56.707958 < "QUIT" 10:32:56.708737 > "221 bye bye baby[CR][LF]" 10:32:56.715102 MAIN sockfilt said DISC 10:32:56.715787 ====> Client disconnected 10:32:56.716823 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:56.264594 ====> Client connect 10:32:56.266923 Received DATA (on stdin) 10:32:56.267116 > 160 bytes data, server => client 10:32:56.267209 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:56.267291 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:56.267362 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:56.270865 < 16 bytes data, client => server 10:32:56.271099 'USER anonymous\r\n' 10:32:56.275858 Received DATA (on stdin) 10:32:56.276052 > 33 bytes data, server => client 10:32:56.276143 '331 We are happy you popped in!\r\n' 10:32:56.276804 < 22 bytes data, client => server 10:32:56.276945 'PASS ftp@example.com\r\n' 10:32:56.277939 Received DATA (on stdin) 10:32:56.278113 > 30 bytes data, server => client 10:32:56.278281 '230 Welcome you silly person\r\n' 10:32:56.278887 < 5 bytes data, client => server 10:32:56.279089 'PWD\r\n' 10:32:56.285896 Received DATA (on stdin) 10:32:56.286165 > 30 bytes data, server => client 10:32:56.286375 '257 "/" is current directory\r\n' 10:32:56.291111 < 6 bytes data, client => server 10:32:56.291248 'EPSV\r\n' 10:32:56.310946 Received DATA (on stdin) 10:32:56.311121 > 38 bytes data, server => client 10:32:56.311210 '229 Entering Passive Mode (|||42193|)\n' 10:32:56.315862 < 8 bytes data, client => server 10:32:56.316047 'TYPE I\r\n' 10:32:56.322327 Received DATA (on stdin) 10:32:56.322567 > 33 bytes data, server => client 10:32:56.322658 '200 I modify TYPE as you wanted\r\n' 10:32:56.323622 < 21 bytes data, client => server 10:32:56.323820 'SIZE verifiedserver\r\n' 10:32:56.327546 Received DATA (on stdin) 10:32:56.327742 > 8 bytes data, server => client 10:32:56.327846 '213 17\r\n' 10:32:56.328774 < 21 bytes data, client => server 10:32:56.328990 'RETR verifiedserver\r\n' 10:32:56.329873 Received DATA (on stdin) 10:32:56.330036 > 29 bytes data, server => client 10:32:56.330125 '150 Binary junk (17 bytes).\r\n' 10:32:56.340517 Received DATA (on stdin) 10:32:56.340704 > 28 bytes data, server => client 10:32:56.340807 '226 File transfer complete\r\n' 10:32:56.375600 < 6 bytes data, client => server 10:32:56.376014 'QUIT\r\n' 10:32:56.378375 Received DATA (on stdin) 10:32:56.378715 > 18 bytes data, server => client 10:32:56.378868 '221 bye bye baby\r\n' 10:32:56.382173 ====> Client disconnect 10:32:56.385370 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:56.306376 Running IPv4 version 10:32:56.306966 Listening on port 42193 10:32:56.307319 Wrote pid 128056 to log/1/server/ftp_sockdata.pid 10:32:56.307471 Received PING (on stdin) 10:32:56.308162 Received PORT (on stdin) 10:32:56.315905 ====> Client connect 10:32:56.333972 Received DATA (on stdin) 10:32:56.334139 > 17 bytes data, server => client 10:32:56.334350 'WE ROOLZ: 79585\r\n' 10:32:56.334741 Received DISC (on stdin) 10:32:56.334980 ====> Client forcibly disconnected 10:32:56.337893 Received QUIT (on stdin) 10:32:56.338082 quits 10:32:56.338804 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1038 === End of file server.cmd === Start of file upload1038 this is the *****cr@p******** that we're gonna upload worx? === End of file upload1038 === Start of file valgrind1038 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1038 test 1039...[FTP PASV upload resume from end of empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1039 ../src/curl -q --output log/4/curl1039.out --include --trace-ascii log/4/trace1039 --trace-time ftp://127.0.0.1:42635/1039 -T log/4/upload1039 -C - > log/4/stdout1039 2> log/4/stderr1039 1039: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1039 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1039 ../src/curl -q --output log/4/curl1039.out --include --trace-ascii log/4/trace1039 --trace-time ftp://127.0.0.1:42635/1039 -T log/4/upload1039 -C - > log/4/stdout1039 2> log/4/stderr1039 === End of file commands.log === Start of file ftp_server.log 10:32:56.610796 ====> Client connect 10:32:56.612124 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:56.614861 < "USER anonymous" 10:32:56.615319 > "331 We are happy you popped in![CR][LF]" 10:32:56.622144 < "PASS ftp@example.com" 10:32:56.622681 > "230 Welcome you silly person[CR][LF]" 10:32:56.628848 < "PWD" 10:32:56.629408 > "257 "/" is current directory[CR][LF]" 10:32:56.632338 < "EPSV" 10:32:56.632769 ====> Passive DATA channel requested by client 10:32:56.632995 DATA sockfilt for passive data channel starting... 10:32:56.645439 DATA sockfilt for passive data channel started (pid 128057) 10:32:56.647542 DATA sockfilt for passive data channel listens on port 37245 10:32:56.648446 > "229 Entering Passive Mode (|||37245|)[LF]" 10:32:56.648705 Client has been notified that DATA conn will be accepted on port 37245 10:32:56.651048 Client connects to port 37245 10:32:56.651445 ====> Client established passive DATA connection on port 37245 10:32:56.652254 < "TYPE I" 10:32:56.653198 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:56.658863 < "SIZE verifiedserver" 10:32:56.659279 > "213 17[CR][LF]" 10:32:56.662120 < "RETR verifiedserver" 10:32:56.662582 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:56.663293 =====> Closing passive DATA connection... 10:32:56.663545 Server disconnects passive DATA connection 10:32:56.665024 Server disconnected passive DATA connection 10:32:56.665458 DATA sockfilt for passive data channel quits (pid 128057) 10:32:56.668CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1041 ../src/curl -q --output log/3/curl1041.out --include --trace-ascii log/3/trace1041 --trace-time http://127.0.0.1:36933/1041 -Tlog/3/test1041.txt -C - > log/3/stdout1041 2> log/3/stderr1041 454 DATA sockfilt for passive data channel quit (pid 128057) 10:32:56.668826 =====> Closed passive DATA connection 10:32:56.670106 > "226 File transfer complete[CR][LF]" 10:32:56.710564 < "QUIT" 10:32:56.711382 > "221 bye bye baby[CR][LF]" 10:32:56.717648 MAIN sockfilt said DISC 10:32:56.718360 ====> Client disconnected 10:32:56.719216 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:57.278957 ====> Client connect 10:32:57.280852 Received DATA (on stdin) 10:32:57.281128 > 160 bytes data, server => client 10:32:57.281230 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:57.281309 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:57.281376 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:57.282668 < 16 bytes data, client => server 10:32:57.282949 'USER anonymous\r\n' 10:32:57.284094 Received DATA (on stdin) 10:32:57.284266 > 33 bytes data, server => client 10:32:57.284393 '331 We are happy you popped in!\r\n' 10:32:57.290114 < 22 bytes data, client => server 10:32:57.290432 'PASS ftp@example.com\r\n' 10:32:57.291420 Received DATA (on stdin) 10:32:57.291607 > 30 bytes data, server => client 10:32:57.291689 '230 Welcome you silly person\r\n' 10:32:57.296316 < 5 bytes data, client => server 10:32:57.296566 'PWD\r\n' 10:32:57.298745 Received DATA (on stdin) 10:32:57.298963 > 30 bytes data, server => client 10:32:57.299055 '257 "/" is current directory\r\n' 10:32:57.299934 < 6 bytes data, client => server 10:32:57.300168 'EPSV\r\n' 10:32:57.316816 Received DATA (on stdin) 10:32:57.316947 > 38 bytes data, server => client 10:32:57.317814 '229 Entering Passive Mode (|||37245|)\n' 10:32:57.319347 < 8 bytes data, client => server 10:32:57.319519 'TYPE I\r\n' 10:32:57.321502 Received DATA (on stdin) 10:32:57.321701 > 33 bytes data, server => client 10:32:57.322529 '200 I modify TYPE as you wanted\r\n' 10:32:57.326724 < 21 bytes data, client => server 10:32:57.326920 'SIZE verifiedserver\r\n' 10:32:57.328781 Received DATA (on stdin) 10:32:57.328994 > 8 bytes data, server => client 10:32:57.329086 '213 17\r\n' 10:32:57.329793 < 21 bytes data, client => server 10:32:57.329986 'RETR verifiedserver\r\n' 10:32:57.333041 Received DATA (on stdin) 10:32:57.333266 > 29 bytes data, server => client 10:32:57.333360 '150 Binary junk (17 bytes).\r\n' 10:32:57.337906 Received DATA (on stdin) 10:32:57.338091 > 28 bytes data, server => client 10:32:57.338406 '226 File transfer complete\r\n' 10:32:57.377842 < 6 bytes data, client => server 10:32:57.378056 'QUIT\r\n' 10:32:57.382508 Received DATA (on stdin) 10:32:57.382713 > 18 bytes data, server => client 10:32:57.382857 '221 bye bye baby\r\n' 10:32:57.383671 ====> Client disconnect 10:32:57.388578 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:56.311300 Running IPv4 version 10:32:56.311818 Listening on port 37245 10:32:56.312169 Wrote pid 128057 to log/4/server/ftp_sockdata.pid 10:32:56.313684 Received PING (on stdin) 10:32:56.314816 Received PORT (on stdin) 10:32:56.319063 ====> Client connect 10:32:56.331722 Received DATA (on stdin) 10:32:56.331954 > 17 bytes data, server => client 10:32:56.332065 'WE ROOLZ: 79516\r\n' 10:32:56.332546 Received DISC (on stdin) 10:32:56.332728 ====> Client forcibly disconnected 10:32:56.335652 Received QUIT (on stdin) 10:32:56.335875 quits 10:32:56.336291 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1039 === End of file server.cmd === Start of file upload1039 this is the *****cr@p******** that we're gonna upload worx? === End of file upload1039 === Start of file valgrind1039 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1039 test 1041...[HTTP PUT with resume from end of already-uploaded file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1041 ../src/curl -q --output log/3/curl1041.out --include --trace-ascii log/3/trace1041 --trace-time http://127.0.0.1:36933/1041 -Tlog/3/test1041.txt -C - > log/3/stdout1041 2> log/3/stderr1041 1041: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1041 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1041 ../src/curl -q --output log/3/curl1041.out --include --trace-ascii log/3/trace1041 --trace-time http://127.0.0.1:36933/1041 -Tlog/3/test1041.txt -C - > log/3/stdout1041 2> log/3/stderr1041 === End of file commands.log === Start of file http_server.log 10:32:56.660750 ====> Client connect 10:32:56.661114 accept_connection 3 returned 4 10:32:56.661340 accept_connection 3 returned 0 10:32:56.661523 Read 93 bytes 10:32:56.661648 Process 93 bytes request 10:32:56.661750 Got request: GET /verifiedserver HTTP/1.1 10:32:56.661832 Are-we-friendly question received 10:32:56.662089 Wrote request (93 bytes) input to log/3/server.input 10:32:56.662514 Identifying ourselves as friends 10:32:56.663376 Response sent (56 bytes) and written to log/3/server.response 10:32:56.663516 special request received, no persistency 10:32:56.663585 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60932 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1041 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file test1041.txt 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file test1041.txt === Start of file valgrind1041 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1043 ../src/curl -q --output log/7/curl1043.out --include --trace-ascii log/7/trace1043 --trace-time http://127.0.0.1:40129/1043 -C - > log/7/stdout1043 2> log/7/stderr1043 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1042 ../src/curl -q --output log/6/curl1042.out --include --trace-ascii log/6/trace1042 --trace-time http://127.0.0.1:33363/1042 -C 200 > log/6/stdout1042 2> log/6/stderr1042 name matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1041 test 1043...[HTTP GET with resume from end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1043 ../src/curl -q --output log/7/curl1043.out --include --trace-ascii log/7/trace1043 --trace-time http://127.0.0.1:40129/1043 -C - > log/7/stdout1043 2> log/7/stderr1043 1043: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1043 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1043 ../src/curl -q --output log/7/curl1043.out --include --trace-ascii log/7/trace1043 --trace-time http://127.0.0.1:40129/1043 -C - > log/7/stdout1043 2> log/7/stderr1043 === End of file commands.log === Start of file curl1043.out 012345678 012345678 012345678 012345678 === End of file curl1043.out === Start of file http_server.log 10:32:56.729453 ====> Client connect 10:32:56.729835 accept_connection 3 returned 4 10:32:56.730067 accept_connection 3 returned 0 10:32:56.730287 Read 93 bytes 10:32:56.730435 Process 93 bytes request 10:32:56.730537 Got request: GET /verifiedserver HTTP/1.1 10:32:56.730621 Are-we-friendly question received 10:32:56.730898 Wrote request (93 bytes) input to log/7/server.input 10:32:56.731115 Identifying ourselves as friends 10:32:56.731857 Response sent (56 bytes) and written to log/7/server.response 10:32:56.732030 special request received, no persistency 10:32:56.732111 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54104 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1043 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1043 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1043 test 1042...[HTTP GET beyond end of entirely-downloaded file, no server resume] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1042 ../src/curl -q --output log/6/curl1042.out --include --trace-ascii log/6/trace1042 --trace-time http://127.0.0.1:33363/1042 -C 200 > log/6/stdout1042 2> log/6/stderr1042 1042: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1042 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1042 ../src/curl -q --output log/6/curl1042.out --include --trace-ascii log/6/trace1042 --trace-time http://127.0.0.1:33363/1042 -C 200 > log/6/stdout1042 2> log/6/stderr1042 === End of file commands.log === Start of file curl1042.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1042.out === Start of file http_server.log 10:32:56.703856 ====> Client connect 10:32:56.704219 accept_connection 3 returned 4 10:32:56.704422 accept_connection 3 returned 0 10:32:56.704591 Read 93 bytes 10:32:56.704710 Process 93 bytes request 10:32:56.704807 Got request: GET /verifiedserver HTTP/1.1 10:32:56.704892 Are-we-friendly question received 10:32:56.705116 Wrote request (93 bytes) input to log/6/server.input 10:32:56.705305 Identifying ourselves as friends 10:32:56.706036 Response sent (56 bytes) and written to log/6/server.response 10:32:56.706188 special request received, no persistency 10:32:56.706370 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60058 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1042 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1042 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1044 ../src/curl -q --include --trace-ascii log/5/trace1044 --trace-time ftp://127.0.0.1:43393/blalbla/1044 -I > log/5/stdout1044 2> log/5/stderr1044 inux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1042 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1045 ../src/curl -q --output log/2/curl1045.out --include --trace-ascii log/2/trace1045 --trace-time http://127.0.0.1:43789/1045 --interface 127.0.0.1 > log/2/stdout1045 2> log/2/stderr1045 test 1044...[FTP download large file info with -I] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1044 ../src/curl -q --include --trace-ascii log/5/trace1044 --trace-time ftp://127.0.0.1:43393/blalbla/1044 -I > log/5/stdout1044 2> log/5/stderr1044 1044: stdout FAILED: --- log/5/check-expected 2025-09-11 10:32:58.293612995 +0000 +++ log/5/check-generated 2025-09-11 10:32:58.293612995 +0000 @@ -1,3 +0,0 @@ -Last-Modified: Sat, 26 Jul 2008 10:26:59 GMT[CR][LF] -Content-Length: 9999999999[CR][LF] -Accept-ranges: bytes[CR][LF] == Contents of files in the log/5/ dir after test 1044 === Start of file check-expected Last-Modified: Sat, 26 Jul 2008 10:26:59 GMT[CR][LF] Content-Length: 9999999999[CR][LF] Accept-ranges: bytes[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1044 ../src/curl -q --include --trace-ascii log/5/trace1044 --trace-time ftp://127.0.0.1:43393/blalbla/1044 -I > log/5/stdout1044 2> log/5/stderr1044 === End of file commands.log === Start of file ftp_server.log 10:32:57.449668 ====> Client connect 10:32:57.451110 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:57.459265 < "USER anonymous" 10:32:57.459894 > "331 We are happy you popped in![CR][LF]" 10:32:57.469319 < "PASS ftp@example.com" 10:32:57.470084 > "230 Welcome you silly person[CR][LF]" 10:32:57.475916 < "PWD" 10:32:57.476473 > "257 "/" is current directory[CR][LF]" 10:32:57.478961 < "EPSV" 10:32:57.479406 ====> Passive DATA channel requested by client 10:32:57.479747 DATA sockfilt for passive data channel starting... 10:32:57.495122 DATA sockfilt for passive data channel started (pid 128444) 10:32:57.496314 DATA sockfilt for passive data channel listens on port 34157 10:32:57.497332 > "229 Entering Passive Mode (|||34157|)[LF]" 10:32:57.497787 Client has been notified that DATA conn will be accepted on port 34157 10:32:57.502275 Client connects to port 34157 10:32:57.502748 ====> Client established passive DATA connection on port 34157 10:32:57.503843 < "TYPE I" 10:32:57.505341 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:57.510829 < "SIZE verifiedserver" 10:32:57.511443 > "213 17[CR][LF]" 10:32:57.515597 < "RETR verifiedserver" 10:32:57.516337 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:57.517347 =====> Closing passive DATA connection... 10:32:57.517811 Server disconnects passive DATA connection 10:32:57.519640 Server disconnected passive DATA connection 10:32:57.520151 DATA sockfilt for passive data channel quits (pid 128444) 10:32:57.522908 DATA sockfilt for passive data channel quit (pid 128444) 10:32:57.523379 =====> Closed passive DATA connection 10:32:57.523878 > "226 File transfer complete[CR][LF]" 10:32:57.573778 < "QUIT" 10:32:57.574347 > "221 bye bye baby[CR][LF]" 10:32:57.575790 MAIN sockfilt said DISC 10:32:57.576237 ====> Client disconnected 10:32:57.576871 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:57.114741 ====> Client connect 10:32:57.119837 Received DATA (on stdin) 10:32:57.120127 > 160 bytes data, server => client 10:32:57.120235 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:57.120318 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:57.120398 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:57.126639 < 16 bytes data, client => server 10:32:57.126882 'USER anonymous\r\n' 10:32:57.128672 Received DATA (on stdin) 10:32:57.128898 > 33 bytes data, server => client 10:32:57.129007 '331 We are happy you popped in!\r\n' 10:32:57.129954 < 22 bytes data, client => server 10:32:57.130270 'PASS ftp@example.com\r\n' 10:32:57.138836 Received DATA (on stdin) 10:32:57.139055 > 30 bytes data, server => client 10:32:57.139174 '230 Welcome you silly person\r\n' 10:32:57.141209 < 5 bytes data, client => server 10:32:57.141393 'PWD\r\n' 10:32:57.145234 Received DATA (on stdin) 10:32:57.145443 > 30 bytes data, server => client 10:32:57.145546 '257 "/" is current directory\r\n' 10:32:57.146813 < 6 bytes data, client => server 10:32:57.147015 'EPSV\r\n' 10:32:57.165577 Received DATA (on stdin) 10:32:57.165770 > 38 bytes data, server => client 10:32:57.167004 '229 Entering Passive Mode (|||34157|)\n' 10:32:57.170524 < 8 bytes data, client => server 10:32:57.170707 'TYPE I\r\n' 10:32:57.173096 Received DATA (on stdin) 10:32:57.173295 > 33 bytes data, server => client 10:32:57.173501 '200 I modify TYPE as you wanted\r\n' 10:32:57.178406 < 21 bytes data, client => server 10:32:57.178677 'SIZE verifiedserver\r\n' 10:32:57.180628 Received DATA (on stdin) 10:32:57.180848 > 8 bytes data, server => client 10:32:57.180953 '213 17\r\n' 10:32:57.182934 < 21 bytes data, client => server 10:32:57.183112 'RETR verifiedserver\r\n' 10:32:57.186843 Received DATA (on stdin) 10:32:57.187079 > 29 bytes data, server => client 10:32:57.187201 '150 Binary junk (17 bytes).\r\n' 10:32:57.192607 Received DATA (on stdin) 10:32:57.192840 > 28 bytes data, server => client 10:32:57.192954 '226 File transfer complete\r\n' 10:32:57.238395 < 6 bytes data, client => server 10:32:57.238610 'QUIT\r\n' 10:32:57.243091 Received DATA (on stdin) 10:32:57.243324 > 18 bytes data, server => client 10:32:57.243440 '221 bye bye baby\r\n' 10:32:57.244118 ====> Client disconnect 10:32:57.244988 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:57.160684 Running IPv4 version 10:32:57.161337 Listening on port 34157 10:32:57.161800 Wrote pid 128444 to log/5/server/ftp_sockdata.pid 10:32:57.163386 Received PING (on stdin) 10:32:57.164392 Received PORT (on stdin) 10:32:57.170059 ====> Client connect 10:32:57.186963 Received DATA (on stdin) 10:32:57.187119 > 17 bytes data, server => client 10:32:57.187219 'WE ROOLZ: 79602\r\n' 10:32:57.187552 Received DISC (on stdin) 10:32:57.187810 ====> Client forcibly disconnected 10:32:57.189306 Received QUIT (on stdin) 10:32:57.189524 quits 10:32:57.190043 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1044 === End of file server.cmd === Start of file valgrind1044 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1044 test 1045...[HTTP GET with numeric localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --supprCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1047 ../src/curl -q --output log/1/curl1047.out --include --trace-ascii log/1/trace1047 --trace-time ftp://127.0.0.1:38733/ --interface 127.0.0.1 > log/1/stdout1047 2> log/1/stderr1047 essions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1045 ../src/curl -q --output log/2/curl1045.out --include --trace-ascii log/2/trace1045 --trace-time http://127.0.0.1:43789/1045 --interface 127.0.0.1 > log/2/stdout1045 2> log/2/stderr1045 1045: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1045 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1045 ../src/curl -q --output log/2/curl1045.out --include --trace-ascii log/2/trace1045 --trace-time http://127.0.0.1:43789/1045 --interface 127.0.0.1 > log/2/stdout1045 2> log/2/stderr1045 === End of file commands.log === Start of file http_server.log 10:32:57.289582 ====> Client connect 10:32:57.289977 accept_connection 3 returned 4 10:32:57.290264 accept_connection 3 returned 0 10:32:57.290500 Read 93 bytes 10:32:57.290638 Process 93 bytes request 10:32:57.290754 Got request: GET /verifiedserver HTTP/1.1 10:32:57.290840 Are-we-friendly question received 10:32:57.291251 Wrote request (93 bytes) input to log/2/server.input 10:32:57.291551 Identifying ourselves as friends 10:32:57.292494 Response sent (56 bytes) and written to log/2/server.response 10:32:57.292633 special request received, no persistency 10:32:57.292701 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 37348 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1045 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1045 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1045 test 1047...[FTP dir list PASV with localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1047 ../src/curl -q --output log/1/curl1047.out --include --trace-ascii log/1/trace1047 --trace-time ftp://127.0.0.1:38733/ --interface 127.0.0.1 > log/1/stdout1047 2> log/1/stderr1047 1047: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1047 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1047 ../src/curl -q --output log/1/curl1047.out --include --trace-ascii log/1/trace1047 --trace-time ftp://127.0.0.1:38733/ --interface 127.0.0.1 > log/1/stdout1047 2> log/1/stderr1047 === End of file commands.log === Start of file ftp_server.log 10:32:57.715699 ====> Client connect 10:32:57.717092 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:57.720750 < "USER anonymous" 10:32:57.721256 > "331 We are happy you popped in![CR][LF]" 10:32:57.722984 < "PASS ftp@example.com" 10:32:57.723378 > "230 Welcome you silly person[CR][LF]" 10:32:57.724810 < "PWD" 10:32:57.725246 > "257 "/" is current directory[CR][LF]" 10:32:57.727430 < "EPSV" 10:32:57.727837 ====> Passive DATA channel requested by client 10:32:57.728109 DATA sockfilt for passive data channel starting... 10:32:57.740973 DATA sockfilt for passive data channel started (pid 128567) 10:32:57.742446 DATA sockfilt for passive data channel listens on port 36489 10:32:57.743077 > "229 Entering Passive Mode (|||36489|)[LF]" 10:32:57.743466 Client has been notified that DATA conn will be accepted on port 36489 10:32:57.747606 Client connects to port 36489 10:32:57.748025 ====> Client established passive DATA connection on port 36489 10:32:57.749776 < "TYPE I" 10:32:57.750336 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:57.752213 < "SIZE verifiedserver" 10:32:57.752890 > "213 17[CR][LF]" 10:32:57.759439 < "RETR verifiedserver" 10:32:57.760106 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:57.761757 =====> Closing passive DATA connection... 10:32:57.762217 Server disconnects passive DATA connection 10:32:57.764993 Server disconnected passive DATA connection 10:32:57.765717 DATA sockfilt for passive data channel quits (pid 128567) 10:32:57.768280 DATA sockfilt for passive data channel quit (pid 128567) 10:32:57.768722 =====> Closed passive DATA connection 10:32:57.769178 > "226 File transfer complete[CR][LF]" 10:32:57.806351 < "QUIT" 10:32:57.806857 > "221 bye bye baby[CR][LF]" 10:32:57.808730 MAIN sockfilt said DISC 10:32:57.809231 ====> Client disconnected 10:32:57.810102 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:57.383798 ====> Client connect 10:32:57.385827 Received DATA (on stdin) 10:32:57.386113 > 160 bytes data, server => client 10:32:57.386423 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:57.386578 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:57.386674 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:57.388502 < 16 bytes data, client => server 10:32:57.388701 'USER anonymous\r\n' 10:32:57.389999 Received DATA (on stdin) 10:32:57.390164 > 33 bytes data, server => client 10:32:57.390383 '331 We are happy you popped in!\r\n' 10:32:57.391033 < 22 bytes data, client => server 10:32:57.391217 'PASS ftp@example.com\r\n' 10:32:57.392108 Received DATA (on stdin) 10:32:57.392216 > 30 bytes data, server => client 10:32:57.392292 '230 Welcome you silly person\r\n' 10:32:57.392918 < 5 bytes data, client => server 10:32:57.393131 'PWD\r\n' 10:32:57.393982 Received DATA (on stdin) 10:32:57.394158 > 30 bytes data, server => client 10:32:57.394736 '257 "/" is current directory\r\n' 10:32:57.395446 < 6 bytes data, client => server 10:32:57.395683 'EPSV\r\n' 10:32:57.414416 Received DATA (on stdin) 10:32:57.414672 > 38 bytes data, server => client 10:32:57.414798 '229 Entering Passive CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1048 ../src/curl -q --output log/4/curl1048.out --include --trace-ascii log/4/trace1048 --trace-time -g "ftp://[::1]:41241/" --interface ::1 > log/4/stdout1048 2> log/4/stderr1048 Mode (|||36489|)\n' 10:32:57.417716 < 8 bytes data, client => server 10:32:57.417941 'TYPE I\r\n' 10:32:57.419087 Received DATA (on stdin) 10:32:57.419290 > 33 bytes data, server => client 10:32:57.419395 '200 I modify TYPE as you wanted\r\n' 10:32:57.420145 < 21 bytes data, client => server 10:32:57.420359 'SIZE verifiedserver\r\n' 10:32:57.421732 Received DATA (on stdin) 10:32:57.421996 > 8 bytes data, server => client 10:32:57.422145 '213 17\r\n' 10:32:57.427264 < 21 bytes data, client => server 10:32:57.427552 'RETR verifiedserver\r\n' 10:32:57.428858 Received DATA (on stdin) 10:32:57.429086 > 29 bytes data, server => client 10:32:57.429188 '150 Binary junk (17 bytes).\r\n' 10:32:57.437937 Received DATA (on stdin) 10:32:57.438145 > 28 bytes data, server => client 10:32:57.438393 '226 File transfer complete\r\n' 10:32:57.471144 < 6 bytes data, client => server 10:32:57.471351 'QUIT\r\n' 10:32:57.475694 Received DATA (on stdin) 10:32:57.475884 > 18 bytes data, server => client 10:32:57.475978 '221 bye bye baby\r\n' 10:32:57.477015 ====> Client disconnect 10:32:57.479930 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:57.407978 Running IPv4 version 10:32:57.408567 Listening on port 36489 10:32:57.409093 Wrote pid 128567 to log/1/server/ftp_sockdata.pid 10:32:57.409320 Received PING (on stdin) 10:32:57.410297 Received PORT (on stdin) 10:32:57.415923 ====> Client connect 10:32:57.429305 Received DATA (on stdin) 10:32:57.429469 > 17 bytes data, server => client 10:32:57.431686 'WE ROOLZ: 79585\r\n' 10:32:57.432252 Received DISC (on stdin) 10:32:57.432490 ====> Client forcibly disconnected 10:32:57.435007 Received QUIT (on stdin) 10:32:57.435258 quits 10:32:57.435832 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1047 === End of file server.cmd === Start of file valgrind1047 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1047 test 1048...[FTP-IPv6 dir list PASV with localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1048 ../src/curl -q --output log/4/curl1048.out --include --trace-ascii log/4/trace1048 --trace-time -g "ftp://[::1]:41241/" --interface ::1 > log/4/stdout1048 2> log/4/stderr1048 1048: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1048 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1048 ../src/curl -q --output log/4/curl1048.out --include --trace-ascii log/4/trace1048 --trace-time -g "ftp://[::1]:41241/" --interface ::1 > log/4/stdout1048 2> log/4/stderr1048 === End of file commands.log === Start of file ftp_ipv6_server.log 10:32:57.721697 ====> Client connect 10:32:57.723065 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:57.730062 < "USER anonymous" 10:32:57.730571 > "331 We are happy you popped in![CR][LF]" 10:32:57.738486 < "PASS ftp@example.com" 10:32:57.738976 > "230 Welcome you silly person[CR][LF]" 10:32:57.749144 < "PWD" 10:32:57.749829 > "257 "/" is current directory[CR][LF]" 10:32:57.762366 < "EPSV" 10:32:57.762759 ====> Passive DATA channel requested by client 10:32:57.763017 DATA sockfilt for passive data channel starting... 10:32:57.775332 DATA sockfilt for passive data channel started (pid 128571) 10:32:57.778171 DATA sockfilt for passive data channel listens on port 34957 10:32:57.778800 > "229 Entering Passive Mode (|||34957|)[LF]" 10:32:57.779100 Client has been notified that DATA conn will be accepted on port 34957 10:32:57.780849 Client connects to port 34957 10:32:57.781278 ====> Client established passive DATA connection on port 34957 10:32:57.782457 < "TYPE I" 10:32:57.783003 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:57.784892 < "SIZE verifiedserver" 10:32:57.785401 > "213 17[CR][LF]" 10:32:57.791599 < "RETR verifiedserver" 10:32:57.792184 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:57.792994 =====> Closing passive DATA connection... 10:32:57.793297 Server disconnects passive DATA connection 10:32:57.793953 Server disconnected passive DATA connection 10:32:57.794318 DATA sockfilt for passive data channel quits (pid 128571) 10:32:57.796035 DATA sockfilt for passive data channel quit (pid 128571) 10:32:57.796409 =====> Closed passive DATA connection 10:32:57.796833 > "226 File transfer complete[CR][LF]" 10:32:57.837773 < "QUIT" 10:32:57.838617 > "221 bye bye baby[CR][LF]" 10:32:57.847671 MAIN sockfilt said DISC 10:32:57.848283 ====> Client disconnected 10:32:57.849083 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 10:32:57.387882 ====> Client connect 10:32:57.391781 Received DATA (on stdin) 10:32:57.391951 > 160 bytes data, server => client 10:32:57.392054 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:57.392149 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:57.392217 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:57.397497 < 16 bytes data, client => server 10:32:57.397730 'USER anonymous\r\n' 10:32:57.399320 Received DATA (on stdin) 10:32:57.399535 > 33 bytes data, server => client 10:32:57.399674 '331 We are happy you popped in!\r\n' 10:32:57.402931 < 22 bytes data, client => server 10:32:57.403188 'PASS ftp@example.com\r\n' 10:32:57.407758 Received DATA (on stdin) 10:32:57.407938 > 30 bytes data, server => client 10:32:57.408046 '230 Welcome you silly person\r\n' 10:32:57.414787 < 5 bytes data, client => server 10:32:57.414903 'PWD\r\n' 10:32:57.422321 Received DATA (on stdin) 10:32:57.422605 > 30 bytes data, server => client 10:32:57.422731 '257 "/" is current directory\r\n' 10:32:57.423666 < 6 bytes data, client => server 10:32:57.423904 'EPSV\r\n' 10:32:57.447540 Received DATA (on stdin) 10:32:57.447760 > 38 bytes data, server => client 10:32:57.447887 '229 Entering Passive Mode (|||34957|)\n' 10:32:57.449576 < 8 bytes data, client => server 10:32:57.449821 'TYPE I\r\n' 10:32:57.451805 Received DATA (on stdin) 10:32:57.452019 > 33 bytes data, server => client 10:32:57.452155 '200 I modify TYPE as you wanted\r\n' 10:32:57.452898 < 21 bytes data, client => server 10:32:57.453092 'SIZE verifiedserver\r\n' 10:32:57.458309 Received DATA (on stdin) 10:32:5CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1050 ../src/curl -q --output log/7/curl1050.out --include --trace-ascii log/7/trace1050 --trace-time -g "ftp://[::1]:34505/" -P ::1 > log/7/stdout1050 2> log/7/stderr1050 7.458573 > 8 bytes data, server => client 10:32:57.458675 '213 17\r\n' 10:32:57.459535 < 21 bytes data, client => server 10:32:57.459744 'RETR verifiedserver\r\n' 10:32:57.460932 Received DATA (on stdin) 10:32:57.461130 > 29 bytes data, server => client 10:32:57.461238 '150 Binary junk (17 bytes).\r\n' 10:32:57.465627 Received DATA (on stdin) 10:32:57.465770 > 28 bytes data, server => client 10:32:57.465879 '226 File transfer complete\r\n' 10:32:57.505361 < 6 bytes data, client => server 10:32:57.505641 'QUIT\r\n' 10:32:57.507353 Received DATA (on stdin) 10:32:57.507654 > 18 bytes data, server => client 10:32:57.507830 '221 bye bye baby\r\n' 10:32:57.514426 ====> Client disconnect 10:32:57.517070 Received ACKD (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file ftp_ipv6_sockdata.log 10:32:57.442250 Running IPv6 version 10:32:57.442863 Listening on port 34957 10:32:57.443331 Wrote pid 128571 to log/4/server/ftp_ipv6_sockdata.pid 10:32:57.443586 Received PING (on stdin) 10:32:57.444736 Received PORT (on stdin) 10:32:57.449180 ====> Client connect 10:32:57.461401 Received DATA (on stdin) 10:32:57.461614 > 17 bytes data, server => client 10:32:57.461744 'WE ROOLZ: 88766\r\n' 10:32:57.462336 Received DISC (on stdin) 10:32:57.462564 ====> Client forcibly disconnected 10:32:57.463359 Received QUIT (on stdin) 10:32:57.463515 quits 10:32:57.463943 ============> sockfilt quits === End of file ftp_ipv6_sockdata.log === Start of file server.cmd Testnum 1048 === End of file server.cmd === Start of file valgrind1048 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1048 test 1050...[FTP-IPv6 dir list, EPRT with specified IP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1050 ../src/curl -q --output log/7/curl1050.out --include --trace-ascii log/7/trace1050 --trace-time -g "ftp://[::1]:34505/" -P ::1 > log/7/stdout1050 2> log/7/stderr1050 1050: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1050 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1050 ../src/curl -q --output log/7/curl1050.out --include --trace-ascii log/7/trace1050 --trace-time -g "ftp://[::1]:34505/" -P ::1 > log/7/stdout1050 2> log/7/stderr1050 === End of file commands.log === Start of file ftp_ipv6_server.log 10:32:58.126338 ====> Client connect 10:32:58.127949 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:58.134661 < "USER anonymous" 10:32:58.135274 > "331 We are happy you popped in![CR][LF]" 10:32:58.138917 < "PASS ftp@example.com" 10:32:58.139459 > "230 Welcome you silly person[CR][LF]" 10:32:58.141173 < "PWD" 10:32:58.141836 > "257 "/" is current directory[CR][LF]" 10:32:58.143950 < "EPSV" 10:32:58.144383 ====> Passive DATA channel requested by client 10:32:58.144648 DATA sockfilt for passive data channel starting... 10:32:58.157411 DATA sockfilt for passive data channel started (pid 128732) 10:32:58.158604 DATA sockfilt for passive data channel listens on port 39125 10:32:58.159193 > "229 Entering Passive Mode (|||39125|)[LF]" 10:32:58.159513 Client has been notified that DATA conn will be accepted on port 39125 10:32:58.161904 Client connects to port 39125 10:32:58.162338 ====> Client established passive DATA connection on port 39125 10:32:58.163186 < "TYPE I" 10:32:58.163628 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:58.166073 < "SIZE verifiedserver" 10:32:58.166683 > "213 17[CR][LF]" 10:32:58.170114 < "RETR verifiedserver" 10:32:58.170717 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:58.171674 =====> Closing passive DATA connection... 10:32:58.172108 Server disconnects passive DATA connection 10:32:58.172986 Server disconnected passive DATA connection 10:32:58.173550 DATA sockfilt for passive data channel quits (pid 128732) 10:32:58.175968 DATA sockfilt for passive data channel quit (pid 128732) 10:32:58.176421 =====> Closed passive DATA connection 10:32:58.176820 > "226 File transfer complete[CR][LF]" 10:32:58.219657 < "QUIT" 10:32:58.220250 > "221 bye bye baby[CR][LF]" 10:32:58.222725 MAIN sockfilt said DISC 10:32:58.223355 ====> Client disconnected 10:32:58.224004 Awaiting input === End of file ftp_ipv6_server.log === Start of file ftp_ipv6_sockctrl.log 10:32:58.794145 ====> Client connect 10:32:58.798588 Received DATA (on stdin) 10:32:58.798893 > 160 bytes data, server => client 10:32:58.799010 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:58.799091 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:58.799165 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:58.800032 < 16 bytes data, client => server 10:32:58.800241 'USER anonymous\r\n' 10:32:58.804014 Received DATA (on stdin) 10:32:58.804222 > 33 bytes data, server => client 10:32:58.804340 '331 We are happy you popped in!\r\n' 10:32:58.805158 < 22 bytes data, client => server 10:32:58.805412 'PASS ftp@example.com\r\n' 10:32:58.808204 Received DATA (on stdin) 10:32:58.808375 > 30 bytes data, server => client 10:32:58.808484 '230 Welcome you silly person\r\n' 10:32:58.809199 < 5 bytes data, client => server 10:32:58.809451 'PWD\r\n' 10:32:58.810560 Received DATA (on stdin) 10:32:58.810812 > 30 bytes data, server => client 10:32:58.810962 '257 "/" is current directory\r\n' 10:32:58.811904 < 6 bytes data, client => server 10:32:58.812160 'EPSV\r\n' 10:32:58.827904 Received DATA (on stdin) 10:32:58.828124 > 38 bytes data, server => client 10:32:58.828218 '229 Entering Passive Mode (|||39125|)\n' 10:32:58.830428 < 8 bytes data, client => server 10:32:58.830618 'TYPE I\r\n' 10:32:58.832353 Received DATA (on stdin) 10:32:58.832527 > 33 bytes data, server => client 10:32:58.832622 '200 I modify TYPE as you wanted\r\n' 10:32:58.833298 < 21 bytes data, client => server 10:32:58.833532 'SIZE verifiedserver\r\n' 10:32:58.835430 Received DATA (on stdin) 10:32:58.835616 > 8 bytes data, server => client 10:32:58.835722 '213 17\r\n' 10:32:58.836537 < 21 bytes data, client => server 10:32:58.836717 'RETR verifiedserver\r\n' 10:32:58.839436 Received DATA (on stdin) 10:32:58.839670 > 29 bytes data, server => client 10:32:58.839780 '150 Binary junk (17 bytes).\r\n' 10:32:58.845581 Received DATA (on stdin) 10:32:58.845800 > 28 bytes data, server => clCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1051 ../src/curl -q --output log/6/curl1051.out --include --trace-ascii log/6/trace1051 --trace-time http://127.0.0.1:33363/want/1051 -L -T log/6/test1051.txt > log/6/stdout1051 2> log/6/stderr1051 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1046 ../src/curl -q --output log/8/curl1046.out --include --trace-ascii log/8/trace1046 --trace-time -g "http://[::1]:42259/1046" --interface ::1 > log/8/stdout1046 2> log/8/stderr1046 ient 10:32:58.845953 '226 File transfer complete\r\n' 10:32:58.887459 < 6 bytes data, client => server 10:32:58.887759 'QUIT\r\n' 10:32:58.889979 Received DATA (on stdin) 10:32:58.890297 > 18 bytes data, server => client 10:32:58.890411 '221 bye bye baby\r\n' 10:32:58.891028 ====> Client disconnect 10:32:58.894314 Received ACKD (on stdin) === End of file ftp_ipv6_sockctrl.log === Start of file ftp_ipv6_sockdata.log 10:32:58.823645 Running IPv6 version 10:32:58.824283 Listening on port 39125 10:32:58.824747 Wrote pid 128732 to log/7/server/ftp_ipv6_sockdata.pid 10:32:58.824974 Received PING (on stdin) 10:32:58.826701 Received PORT (on stdin) 10:32:58.829925 ====> Client connect 10:32:58.840406 Received DATA (on stdin) 10:32:58.840714 > 17 bytes data, server => client 10:32:58.840845 'WE ROOLZ: 88795\r\n' 10:32:58.841271 Received DISC (on stdin) 10:32:58.841555 ====> Client forcibly disconnected 10:32:58.843247 Received QUIT (on stdin) 10:32:58.843439 quits 10:32:58.843845 ============> sockfilt quits === End of file ftp_ipv6_sockdata.log === Start of file server.cmd Testnum 1050 === End of file server.cmd === Start of file valgrind1050 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1050 test 1051...[HTTP PUT with Location: following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1051 ../src/curl -q --output log/6/curl1051.out --include --trace-ascii log/6/trace1051 --trace-time http://127.0.0.1:33363/want/1051 -L -T log/6/test1051.txt > log/6/stdout1051 2> log/6/stderr1051 1051: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1051 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1051 ../src/curl -q --output log/6/curl1051.out --include --trace-ascii log/6/trace1051 --trace-time http://127.0.0.1:33363/want/1051 -L -T log/6/test1051.txt > log/6/stdout1051 2> log/6/stderr1051 === End of file commands.log === Start of file http_server.log 10:32:57.826244 ====> Client connect 10:32:57.826561 accept_connection 3 returned 4 10:32:57.826742 accept_connection 3 returned 0 10:32:57.827944 Read 93 bytes 10:32:57.828117 Process 93 bytes request 10:32:57.828225 Got request: GET /verifiedserver HTTP/1.1 10:32:57.828302 Are-we-friendly question received 10:32:57.828618 Wrote request (93 bytes) input to log/6/server.input 10:32:57.828903 Identifying ourselves as friends 10:32:57.831280 Response sent (56 bytes) and written to log/6/server.response 10:32:57.831426 special request received, no persistency 10:32:57.831501 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60064 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1051 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file test1051.txt Weird file to upload for testing the PUT feature === End of file test1051.txt === Start of file valgrind1051 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1051 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/8/server/http_ipv6_server.pid" --logfile "log/8/http_ipv6_server.log" --logdir "log/8" --portfile log/8/server/http_ipv6_server.port --config log/8/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 128457 port 42259 * pid http-ipv6 => 128457 128457 test 1046...[HTTP-IPv6 GET with numeric localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1046 ../src/curl -q --output log/8/curl1046.out --include --trace-ascii log/8/trace1046 --trace-time -g "http://[::1]:42259/1046" --interface ::1 > log/8/stdout1046 2> log/8/stderr1046 1046: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1046 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1046 ../src/curl -q --output log/8/curl1046.out --include --trace-ascii log/8/trace1046 --trace-time -g "http://[::1]:42259/1046" --interface ::1 > log/8/stdout1046 2> log/8/stderr1046 === End of file commands.log === Start of file http_ipv6_server.log 10:32:57.443792 RunninCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1052 ../src/curl -q --output log/5/curl1052.out --include --trace-ascii log/5/trace1052 --trace-time http://127.0.0.1:41733/want/1052 -0 -L -T log/5/test1052.txt > log/5/stdout1052 2> log/5/stderr1052 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1053 ../src/curl -q --output log/2/curl1053.out --include --trace-ascii log/2/trace1053 --trace-time http://127.0.0.1:43789/we/want/1053 -L -F name=daniel -F tool=curl -F file=@log/2/test1053.txt > log/2/stdout1053 2> log/2/stderr1053 g HTTP IPv6 version on port 42259 10:32:57.444635 Wrote pid 128457 to log/8/server/http_ipv6_server.pid 10:32:57.445030 Wrote port 42259 to log/8/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 1046 === End of file server.cmd === Start of file valgrind1046 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1046 test 1052...[HTTP 1.0 PUT with Location: following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1052 ../src/curl -q --output log/5/curl1052.out --include --trace-ascii log/5/trace1052 --trace-time http://127.0.0.1:41733/want/1052 -0 -L -T log/5/test1052.txt > log/5/stdout1052 2> log/5/stderr1052 1052: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1052 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1052 ../src/curl -q --output log/5/curl1052.out --include --trace-ascii log/5/trace1052 --trace-time http://127.0.0.1:41733/want/1052 -0 -L -T log/5/test1052.txt > log/5/stdout1052 2> log/5/stderr1052 === End of file commands.log === Start of file http_server.log 10:32:59.146893 ====> Client connect 10:32:59.147247 accept_connection 3 returned 4 10:32:59.147460 accept_connection 3 returned 0 10:32:59.147639 Read 93 bytes 10:32:59.147733 Process 93 bytes request 10:32:59.147846 Got request: GET /verifiedserver HTTP/1.1 10:32:59.147950 Are-we-friendly question received 10:32:59.148246 Wrote request (93 bytes) input to log/5/server.input 10:32:59.148452 Identifying ourselves as friends 10:32:59.149320 Response sent (56 bytes) and written to log/5/server.response 10:32:59.149489 special request received, no persistency 10:32:59.149573 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 58046 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1052 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file test1052.txt Weird file to upload for testing the PUT feature === End of file test1052.txt === Start of file valgrind1052 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1052 test 1053...[HTTP RFC1867-type formposting from file with Location: following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1053 ../src/curl -q --output log/2/curl1053.out --include --trace-ascii log/2/trace1053 --trace-time http://127.0.0.1:43789/we/want/1053 -L -F name=daniel -F tool=curl -F file=@log/2/test1053.txt > log/2/stdout1053 2> log/2/stderr1053 1053: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1053 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1053 ../src/curl -q --output log/2/curl1053.out --include --trace-ascii log/2/trace1053 --trace-time http://127.0.0.1:43789/we/want/1053 -L -F name=daniel -F tool=curl -F file=@log/2/test1053.txt > log/2/stdout1053 2> log/2/stderr1053 === End of file commands.log === Start of file http_server.log 10:32:58.156526 ====> Client connect 10:32:58.156800 accept_connection 3 returned 4 10:32:58.156987 accept_connection 3 returned 0 10:32:58.157144 Read 93 bytes 10:32:58.157235 Process 93 bytes request 10:32:58.157325 Got request: GET /verifiedserver HTTP/1.1 10:32:58.157397 Are-we-friendly question received 10:32:58.157655 Wrote request (93 bytes) input to log/2/server.input 10:32:58.157896 Identifying ourselves as friends 10:32:58.158698 Response sent (56 bytes) and written to log/2/server.response 10:32:58.158846 special request received, no persistency 10:32:58.158950 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 37350 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1054 ../src/curl -q --output log/1/curl1054.out --include --trace-ascii log/1/trace1054 --trace-time http://127.0.0.1:36129/blah/1054 -L -d @log/1/test1054.txt --post301 > log/1/stdout1054 2> log/1/stderr1054 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1049 ../src/curl -q --output log/3/curl1049.out --include --trace-ascii log/3/trace1049 --trace-time tftp://127.0.0.1:51485//1049 --interface 127.0.0.1 > log/3/stdout1049 2> log/3/stderr1049 === Start of file server.cmd Testnum 1053 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file test1053.txt foo- This is a moo- bar === End of file test1053.txt === Start of file valgrind1053 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1053 test 1054...[HTTP POST from file with 301 redirect and --post301] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1054 ../src/curl -q --output log/1/curl1054.out --include --trace-ascii log/1/trace1054 --trace-time http://127.0.0.1:36129/blah/1054 -L -d @log/1/test1054.txt --post301 > log/1/stdout1054 2> log/1/stderr1054 1054: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1054 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1054 ../src/curl -q --output log/1/curl1054.out --include --trace-ascii log/1/trace1054 --trace-time http://127.0.0.1:36129/blah/1054 -L -d @log/1/test1054.txt --post301 > log/1/stdout1054 2> log/1/stderr1054 === End of file commands.log === Start of file http_server.log 10:32:58.385631 ====> Client connect 10:32:58.385964 accept_connection 3 returned 4 10:32:58.386218 accept_connection 3 returned 0 10:32:58.386959 Read 93 bytes 10:32:58.387132 Process 93 bytes request 10:32:58.387245 Got request: GET /verifiedserver HTTP/1.1 10:32:58.387355 Are-we-friendly question received 10:32:58.387665 Wrote request (93 bytes) input to log/1/server.input 10:32:58.387901 Identifying ourselves as friends 10:32:58.388833 Response sent (56 bytes) and written to log/1/server.response 10:32:58.389032 special request received, no persistency 10:32:58.389124 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 38404 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1054 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file test1054.txt field=data === End of file test1054.txt === Start of file valgrind1054 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1054 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/3/server/tftp_server.pid" --portfile "log/3/server/tftp_server.port" --logfile "log/3/tftp_server.log" --logdir "log/3" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 128618 port 51485 * pid tftp => 128618 128618 test 1049...[TFTP retrieve with localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1049 ../src/curl -q --output log/3/curl1049.out --include --trace-ascii log/3/trace1049 --trace-time tftp://127.0.0.1:51485//1049 --interface 127.0.0.1 > log/3/stdout1049 2> log/3/stderr1049 1049: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1049 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1049 ../src/curl -q --output log/3/curl1049.out --include --trace-ascii log/3/trace1049 --trace-time tftp://127.0.0.1:51485//1049 --interface 127.0.0.1 > log/3/stdout1049 2> log/3/stderr1049 === End of file commands.log === Start of file server.cmd Testnum 1049 === End of file server.cmd === Start of file tftp_server.log 10:32:58.843110 Wrote pid 128618 to log/3/server/tftp_server.pid 10:32:58.843757 Wrote port 51485 to log/3/server/tftp_server.port 10:32:58.843883 Running IPv4 version on port UDP/51485 === End of file tftp_server.log === Start of file valgrind1049 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for yCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1055 ../src/curl -q --output log/4/curl1055.out --include --trace-ascii log/4/trace1055 --trace-time http://127.0.0.1:36757/1055 -L -T log/4/test1055.txt > log/4/stdout1055 2> log/4/stderr1055 our Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1049 test 1055...[HTTP PUT Location: redirect to FTP URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1055 ../src/curl -q --output log/4/curl1055.out --include --trace-ascii log/4/trace1055 --trace-time http://127.0.0.1:36757/1055 -L -T log/4/test1055.txt > log/4/stdout1055 2> log/4/stderr1055 1055: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1055 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1055 ../src/curl -q --output log/4/curl1055.out --include --trace-ascii log/4/trace1055 --trace-time http://127.0.0.1:36757/1055 -L -T log/4/test1055.txt > log/4/stdout1055 2> log/4/stderr1055 === End of file commands.log === Start of file ftp_server.log 10:32:58.932047 ====> Client connect 10:32:58.935642 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:58.939327 < "USER anonymous" 10:32:58.939868 > "331 We are happy you popped in![CR][LF]" 10:32:58.944849 < "PASS ftp@example.com" 10:32:58.946166 > "230 Welcome you silly person[CR][LF]" 10:32:58.948517 < "PWD" 10:32:58.949085 > "257 "/" is current directory[CR][LF]" 10:32:58.952357 < "EPSV" 10:32:58.952695 ====> Passive DATA channel requested by client 10:32:58.952869 DATA sockfilt for passive data channel starting... 10:32:58.965383 DATA sockfilt for passive data channel started (pid 129061) 10:32:58.967759 DATA sockfilt for passive data channel listens on port 46061 10:32:58.968297 > "229 Entering Passive Mode (|||46061|)[LF]" 10:32:58.968667 Client has been notified that DATA conn will be accepted on port 46061 10:32:58.976005 Client connects to port 46061 10:32:58.976423 ====> Client established passive DATA connection on port 46061 10:32:58.977449 < "TYPE I" 10:32:58.978131 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:58.983093 < "SIZE verifiedserver" 10:32:58.983792 > "213 17[CR][LF]" 10:32:58.994437 < "RETR verifiedserver" 10:32:58.995128 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:58.996077 =====> Closing passive DATA connection... 10:32:58.996404 Server disconnects passive DATA connection 10:32:59.002078 Server disconnected passive DATA connection 10:32:59.002603 DATA sockfilt for passive data channel quits (pid 129061) 10:32:59.005344 DATA sockfilt for passive data channel quit (pid 129061) 10:32:59.005970 =====> Closed passive DATA connection 10:32:59.006571 > "226 File transfer complete[CR][LF]" 10:32:59.041344 < "QUIT" 10:32:59.042134 > "221 bye bye baby[CR][LF]" 10:32:59.048140 MAIN sockfilt said DISC 10:32:59.048592 ====> Client disconnected 10:32:59.049101 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:59.600048 ====> Client connect 10:32:59.602275 Received DATA (on stdin) 10:32:59.602586 > 160 bytes data, server => client 10:32:59.603314 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:59.603557 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:59.603681 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:59.606698 < 16 bytes data, client => server 10:32:59.607009 'USER anonymous\r\n' 10:32:59.609109 Received DATA (on stdin) 10:32:59.609295 > 33 bytes data, server => client 10:32:59.609393 '331 We are happy you popped in!\r\n' 10:32:59.612298 < 22 bytes data, client => server 10:32:59.612522 'PASS ftp@example.com\r\n' 10:32:59.614204 Received DATA (on stdin) 10:32:59.614501 > 30 bytes data, server => client 10:32:59.615277 '230 Welcome you silly person\r\n' 10:32:59.616130 < 5 bytes data, client => server 10:32:59.616375 'PWD\r\n' 10:32:59.619287 Received DATA (on stdin) 10:32:59.619519 > 30 bytes data, server => client 10:32:59.619625 '257 "/" is current directory\r\n' 10:32:59.620395 < 6 bytes data, client => server 10:32:59.620616 'EPSV\r\n' 10:32:59.641121 Received DATA (on stdin) 10:32:59.641367 > 38 bytes data, server => client 10:32:59.641505 '229 Entering Passive Mode (|||46061|)\n' 10:32:59.644662 < 8 bytes data, client => server 10:32:59.644887 'TYPE I\r\n' 10:32:59.647368 Received DATA (on stdin) 10:32:59.647633 > 33 bytes data, server => client 10:32:59.647757 '200 I modify TYPE as you wanted\r\n' 10:32:59.649336 < 21 bytes data, client => server 10:32:59.649670 'SIZE verifiedserver\r\n' 10:32:59.657369 Received DATA (on stdin) 10:32:59.657665 > 8 bytes data, server => client 10:32:59.657776 '213 17\r\n' 10:32:59.658765 < 21 bytes data, client => server 10:32:59.659054 'RETR verifiedserver\r\n' 10:32:59.665483 Received DATA (on stdin) 10:32:59.665726 > 29 bytes data, server => client 10:32:59.665843 '150 Binary junk (17 bytes).\r\n' 10:32:59.675403 Received DATA (on stdin) 10:32:59.675628 > 28 bytes data, server => client 10:32:59.675748 '226 File transfer complete\r\n' 10:32:59.707851 < 6 bytes data, client => server 10:32:59.708137 'QUIT\r\n' 10:32:59.712010 Received DATA (on stdin) 10:32:59.712277 > 18 bytes data, server => client 10:32:59.712406 '221 bye bye baby\r\n' 10:32:59.716422 ====> Client disconnect 10:32:59.717328 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:58.631886 Running IPv4 version 10:32:58.632407 Listening on port 46061 10:32:58.632817 Wrote pid 129061 to log/4/server/ftp_sockdata.pid 10:32:58.633708 Received PING (on stdin) 10:32:58.634740 Received PORT (on stdin) 10:32:58.644288 ====> Client connect 10:32:58.664435 Received DATA (on stdin) 10:32:58.664668 > 17 bytes data, server => client 10:32:58.664807 'WE ROOLZ: 79516\r\n' 10:32:58.670346 Received DISC (on stdin) 10:32:58.670649 ====> Client forcibly disconnected 10:32:58.671732 Received QUIT (on stdin) 10:32:58.671937 quits 10:32:58.672410 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:32:59.443850 ====> Client connect 10:32:59.444156 accept_connection 3 returned 4 10:32:59.444351 accept_connection 3 returned 0 10:32:59.444513 Read 93 bytes 10:32:59.444620 Process 93 bytes request 10:32:59.444718 Got request: GET /verifiedserver HTTP/1.1 10:32:59.444811 Are-we-friendly question received 10:32:59.445098 Wrote request (93 bytes) input to log/4/server.input 10:32:59.445296 Identifying ourselves as friends 10:32:59.446125 Response sent (56 bytes) and written to log/4/server.response 10:32:59.446475 special request received, no persistency 10:32:59.446557 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 48898 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_veriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1057 ../src/curl -q --output log/6/curl1057.out --include --trace-ascii log/6/trace1057 --trace-time -r -12 ftp://127.0.0.1:33323/1057 > log/6/stdout1057 2> log/6/stderr1057 fy.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1055 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file test1055.txt Weird file to upload for testing the PUT feature === End of file test1055.txt === Start of file valgrind1055 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1055 test 1057...[FTP retrieve a byte-range relative to end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1057 ../src/curl -q --output log/6/curl1057.out --include --trace-ascii log/6/trace1057 --trace-time -r -12 ftp://127.0.0.1:33323/1057 > log/6/stdout1057 2> log/6/stderr1057 1057: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1057 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1057 ../src/curl -q --output log/6/curl1057.out --include --trace-ascii log/6/trace1057 --trace-time -r -12 ftp://127.0.0.1:33323/1057 > log/6/stdout1057 2> log/6/stderr1057 === End of file commands.log === Start of file ftp_server.log 10:32:59.230212 ====> Client connect 10:32:59.231991 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:59.242985 < "USER anonymous" 10:32:59.243701 > "331 We are happy you popped in![CR][LF]" 10:32:59.248863 < "PASS ftp@example.com" 10:32:59.249652 > "230 Welcome you silly person[CR][LF]" 10:32:59.258217 < "PWD" 10:32:59.258835 > "257 "/" is current directory[CR][LF]" 10:32:59.264934 < "EPSV" 10:32:59.265459 ====> Passive DATA channel requested by client 10:32:59.265920 DATA sockfilt for passive data channel starting... 10:32:59.287519 DATA sockfilt for passive data channel started (pid 129210) 10:32:59.294197 DATA sockfilt for passive data channel listens on port 32955 10:32:59.295063 > "229 Entering Passive Mode (|||32955|)[LF]" 10:32:59.295581 Client has been notified that DATA conn will be accepted on port 32955 10:32:59.302312 Client connects to port 32955 10:32:59.303142 ====> Client established passive DATA connection on port 32955 10:32:59.304666 < "TYPE I" 10:32:59.306324 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:59.314168 < "SIZE verifiedserver" 10:32:59.317107 > "213 17[CR][LF]" 10:32:59.319337 < "RETR verifiedserver" 10:32:59.320138 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:59.322863 =====> Closing passive DATA connection... 10:32:59.323347 Server disconnects passive DATA connection 10:32:59.328423 Server disconnected passive DATA connection 10:32:59.328958 DATA sockfilt for passive data channel quits (pid 129210) 10:32:59.331857 DATA sockfilt for passive data channel quit (pid 129210) 10:32:59.332424 =====> Closed passive DATA connection 10:32:59.332918 > "226 File transfer complete[CR][LF]" 10:32:59.372124 < "QUIT" 10:32:59.372616 > "221 bye bye baby[CR][LF]" 10:32:59.381000 MAIN sockfilt said DISC 10:32:59.381640 ====> Client disconnected 10:32:59.382371 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:59.896505 ====> Client connect 10:32:59.900809 Received DATA (on stdin) 10:32:59.901165 > 160 bytes data, server => client 10:32:59.901387 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:59.901523 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:59.901643 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:59.905238 < 16 bytes data, client => server 10:32:59.905528 'USER anonymous\r\n' 10:32:59.913815 Received DATA (on stdin) 10:32:59.914126 > 33 bytes data, server => client 10:32:59.914416 '331 We are happy you popped in!\r\n' 10:32:59.916578 < 22 bytes data, client => server 10:32:59.916894 'PASS ftp@example.com\r\n' 10:32:59.922381 Received DATA (on stdin) 10:32:59.922687 > 30 bytes data, server => client 10:32:59.922855 '230 Welcome you silly person\r\n' 10:32:59.923732 < 5 bytes data, client => server 10:32:59.923962 'PWD\r\n' 10:32:59.927652 Received DATA (on stdin) 10:32:59.927856 > 30 bytes data, server => client 10:32:59.927987 '257 "/" is current directory\r\n' 10:32:59.932199 < 6 bytes data, client => server 10:32:59.932439 'EPSV\r\n' 10:32:59.964889 Received DATA (on stdin) 10:32:59.965165 > 38 bytes data, server => client 10:32:59.965307 '229 Entering Passive Mode (|||32955|)\n' 10:32:59.967803 < 8 bytes data, client => server 10:32:59.968106 'TYPE I\r\n' 10:32:59.974265 Received DATA (on stdin) 10:32:59.974587 > 33 bytes data, server => client 10:32:59.975664 '200 I modify TYPE as you wanted\r\n' 10:32:59.981276 < 21 bytes data, client => server 10:32:59.981620 'SIZE verifiedserver\r\n' 10:32:59.983723 Received DATA (on stdin) 10:32:59.983979 > 8 bytes data, server => client 10:32:59.985004 '213 17\r\n' 10:32:59.986231 < 21 bytes data, client => server 10:32:59.986516 'RETR verifiedserver\r\n' 10:32:59.989954 Received DATA (on stdin) 10:32:59.990206 > 29 bytes data, server => client 10:32:59.990363 '150 Binary junk (17 bytes).\r\n' 10:33:00.003888 Received DATA (on stdin) 10:33:00.004188 > 28 bytes data, server => client 10:33:00.004332 '226 File transfer complete\r\n' 10:33:00.040028 < 6 bytes data, client => server 10:33:00.040247 'QUIT\r\n' 10:33:00.042256 Received DATA (on stdin) 10:33:00.042462 > 18 bytes data, server => client 10:33:00.042559 '221 bye bye baby\r\n' 10:33:00.046296 ====> Client disconnect 10:33:00.050353 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:59.954416 Running IPv4 version 10:32:59.955134 Listening on port 32955 10:32:59.955645 Wrote pid 129210 to log/6/server/ftp_sockdata.pid 10:32:59.955856 Received PING (on stdin) 10:32:59.959201 Received PORT (on stdin) 10:32:59.969928 ====> Client connect 10:32:59.989466 Received DATA (on stdin) 10:32:59.989714 > 17 bytes data, server => client 10:32:59.992565 'WE ROOLZ: 79480\r\n' 10:32:59.995049 Received DISC (on stdin) 10:32:59.995363 ====> Client forcibly disconnected 10:32:59.998406 Received QUIT (on stdin) 10:32:59.998643 quits 10:32:59.999181 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1057 === End of file server.cmd === Start of file valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1058 ../src/curl -q --output log/8/curl1058.out --include --trace-ascii log/8/trace1058 --trace-time http://127.0.0.1:36007/want/1058 -r -101 > log/8/stdout1058 2> log/8/stderr1058 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1059 ../src/curl -q --output log/5/curl1059.out --include --trace-ascii log/5/trace1059 --trace-time ftp://test-number:1059/wanted/page -p -x 127.0.0.1:41733 > log/5/stdout1059 2> log/5/stderr1059 1057 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1057 test 1058...[HTTP range relative to end of file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1058 ../src/curl -q --output log/8/curl1058.out --include --trace-ascii log/8/trace1058 --trace-time http://127.0.0.1:36007/want/1058 -r -101 > log/8/stdout1058 2> log/8/stderr1058 1058: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1058 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1058 ../src/curl -q --output log/8/curl1058.out --include --trace-ascii log/8/trace1058 --trace-time http://127.0.0.1:36007/want/1058 -r -101 > log/8/stdout1058 2> log/8/stderr1058 === End of file commands.log === Start of file http_server.log 10:32:59.127384 ====> Client connect 10:32:59.127779 accept_connection 3 returned 4 10:32:59.127994 accept_connection 3 returned 0 10:32:59.128164 Read 93 bytes 10:32:59.128271 Process 93 bytes request 10:32:59.128369 Got request: GET /verifiedserver HTTP/1.1 10:32:59.128561 Are-we-friendly question received 10:32:59.128861 Wrote request (93 bytes) input to log/8/server.input 10:32:59.129122 Identifying ourselves as friends 10:32:59.134369 Response sent (56 bytes) and written to log/8/server.response 10:32:59.134664 special request received, no persistency 10:32:59.134817 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 54070 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1058 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1058 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1058 test 1059...[HTTP CONNECT with proxytunnel to unsupported FTP URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1059 ../src/curl -q --output log/5/curl1059.out --include --trace-ascii log/5/trace1059 --trace-time ftp://test-number:1059/wanted/page -p -x 127.0.0.1:41733 > log/5/stdout1059 2> log/5/stderr1059 1059: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1059 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1059 ../src/curl -q --output log/5/curl1059.out --include --trace-ascii log/5/trace1059 --trace-time ftp://test-number:1059/wanted/page -p -x 127.0.0.1:41733 > log/5/stdout1059 2> log/5/stderr1059 === End of file commands.log === Start of file http_server.log 10:33:00.202947 ====> Client connect 10:33:00.203314 accept_connection 3 returned 4 10:33:00.203533 accept_connection 3 returned 0 10:33:00.203702 Read 93 bytes 10:33:00.203801 Process 93 bytes request 10:33:00.203909 Got request: GET /verifiedserver HTTP/1.1 10:33:00.204015 Are-we-friendly question received 10:33:00.204309 Wrote request (93 bytes) input to log/5/server.input 10:33:00.204553 Identifying ourselves as friends 10:33:00.205478 Response sent (56 bytes) and written to log/5/server.response 10:33:00.205653 special request received, no persistency 10:33:00.205732 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 58056 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1059 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1059 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lpCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1062 ../src/curl -q --output log/3/curl1062.out --include --trace-ascii log/3/trace1062 --trace-time ftp://127.0.0.1:33831/path/1062 > log/3/stdout1062 2> log/3/stderr1062 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1063 ../src/curl -q --output log/4/curl1063.out --include --trace-ascii log/4/trace1063 --trace-time -r 4294967303- file://localhost/build/curl/src/build-curl/tests/log/4/test1063.txt > log/4/stdout1063 2> log/4/stderr1063 64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1059 test 1062...[FTP with excessively long server command response lines, boundary condition] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1062 ../src/curl -q --output log/3/curl1062.out --include --trace-ascii log/3/trace1062 --trace-time ftp://127.0.0.1:33831/path/1062 > log/3/stdout1062 2> log/3/stderr1062 1062: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1062 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1062 ../src/curl -q --output log/3/curl1062.out --include --trace-ascii log/3/trace1062 --trace-time ftp://127.0.0.1:33831/path/1062 > log/3/stdout1062 2> log/3/stderr1062 === End of file commands.log === Start of file ftp_server.log 10:32:59.873616 ====> Client connect 10:32:59.874889 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:32:59.880213 < "USER anonymous" 10:32:59.880754 > "331 We are happy you popped in![CR][LF]" 10:32:59.884083 < "PASS ftp@example.com" 10:32:59.884655 > "230 Welcome you silly person[CR][LF]" 10:32:59.887321 < "PWD" 10:32:59.887911 > "257 "/" is current directory[CR][LF]" 10:32:59.890685 < "EPSV" 10:32:59.891066 ====> Passive DATA channel requested by client 10:32:59.891386 DATA sockfilt for passive data channel starting... 10:32:59.903041 DATA sockfilt for passive data channel started (pid 129475) 10:32:59.904162 DATA sockfilt for passive data channel listens on port 41865 10:32:59.904675 > "229 Entering Passive Mode (|||41865|)[LF]" 10:32:59.904957 Client has been notified that DATA conn will be accepted on port 41865 10:32:59.909750 Client connects to port 41865 10:32:59.910204 ====> Client established passive DATA connection on port 41865 10:32:59.911093 < "TYPE I" 10:32:59.911547 > "200 I modify TYPE as you wanted[CR][LF]" 10:32:59.914240 < "SIZE verifiedserver" 10:32:59.914827 > "213 17[CR][LF]" 10:32:59.917335 < "RETR verifiedserver" 10:32:59.917976 > "150 Binary junk (17 bytes).[CR][LF]" 10:32:59.918798 =====> Closing passive DATA connection... 10:32:59.919093 Server disconnects passive DATA connection 10:32:59.920999 Server disconnected passive DATA connection 10:32:59.921621 DATA sockfilt for passive data channel quits (pid 129475) 10:32:59.927264 DATA sockfilt for passive data channel quit (pid 129475) 10:32:59.927659 =====> Closed passive DATA connection 10:32:59.928875 > "226 File transfer complete[CR][LF]" 10:32:59.963987 < "QUIT" 10:32:59.964615 > "221 bye bye baby[CR][LF]" 10:32:59.971372 MAIN sockfilt said DISC 10:32:59.974396 ====> Client disconnected 10:32:59.975350 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:32:59.540750 ====> Client connect 10:32:59.546346 Received DATA (on stdin) 10:32:59.546645 > 160 bytes data, server => client 10:32:59.546774 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:32:59.546860 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:32:59.546987 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:32:59.547770 < 16 bytes data, client => server 10:32:59.548001 'USER anonymous\r\n' 10:32:59.550083 Received DATA (on stdin) 10:32:59.550464 > 33 bytes data, server => client 10:32:59.550613 '331 We are happy you popped in!\r\n' 10:32:59.551523 < 22 bytes data, client => server 10:32:59.551763 'PASS ftp@example.com\r\n' 10:32:59.553827 Received DATA (on stdin) 10:32:59.554022 > 30 bytes data, server => client 10:32:59.554118 '230 Welcome you silly person\r\n' 10:32:59.554887 < 5 bytes data, client => server 10:32:59.555108 'PWD\r\n' 10:32:59.557082 Received DATA (on stdin) 10:32:59.557299 > 30 bytes data, server => client 10:32:59.557395 '257 "/" is current directory\r\n' 10:32:59.558348 < 6 bytes data, client => server 10:32:59.558575 'EPSV\r\n' 10:32:59.574005 Received DATA (on stdin) 10:32:59.574323 > 38 bytes data, server => client 10:32:59.574464 '229 Entering Passive Mode (|||41865|)\n' 10:32:59.575947 < 8 bytes data, client => server 10:32:59.576138 'TYPE I\r\n' 10:32:59.580594 Received DATA (on stdin) 10:32:59.580765 > 33 bytes data, server => client 10:32:59.580856 '200 I modify TYPE as you wanted\r\n' 10:32:59.581935 < 21 bytes data, client => server 10:32:59.582224 'SIZE verifiedserver\r\n' 10:32:59.584016 Received DATA (on stdin) 10:32:59.584214 > 8 bytes data, server => client 10:32:59.584296 '213 17\r\n' 10:32:59.585044 < 21 bytes data, client => server 10:32:59.585263 'RETR verifiedserver\r\n' 10:32:59.588214 Received DATA (on stdin) 10:32:59.588363 > 29 bytes data, server => client 10:32:59.588506 '150 Binary junk (17 bytes).\r\n' 10:32:59.596752 Received DATA (on stdin) 10:32:59.596970 > 28 bytes data, server => client 10:32:59.597198 '226 File transfer complete\r\n' 10:32:59.631372 < 6 bytes data, client => server 10:32:59.631645 'QUIT\r\n' 10:32:59.633909 Received DATA (on stdin) 10:32:59.634370 > 18 bytes data, server => client 10:32:59.634545 '221 bye bye baby\r\n' 10:32:59.638375 ====> Client disconnect 10:32:59.640702 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:32:59.569064 Running IPv4 version 10:32:59.569584 Listening on port 41865 10:32:59.570099 Wrote pid 129475 to log/3/server/ftp_sockdata.pid 10:32:59.570420 Received PING (on stdin) 10:32:59.572251 Received PORT (on stdin) 10:32:59.577932 ====> Client connect 10:32:59.587169 Received DATA (on stdin) 10:32:59.587368 > 17 bytes data, server => client 10:32:59.587489 'WE ROOLZ: 79555\r\n' 10:32:59.588172 Received DISC (on stdin) 10:32:59.588375 ====> Client forcibly disconnected 10:32:59.594427 Received QUIT (on stdin) 10:32:59.594687 quits 10:32:59.595171 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-A Exactly fill curl's buffer\r\n250 Finally, here is the response, boundary condition Testnum 1062 === End of file server.cmd === Start of file valgrind1062 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1056 ../src/curl -q --output log/7/curl1056.out --include --trace-ascii log/7/trace1056 --trace-time http://127.0.0.1:40129/we/are/all/twits/1056 -L > log/7/stdout1056 2> log/7/stderr1056 name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1062 test 1063...[Invalid large X- range on a file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1063 ../src/curl -q --output log/4/curl1063.out --include --trace-ascii log/4/trace1063 --trace-time -r 4294967303- file://localhost/build/curl/src/build-curl/tests/log/4/test1063.txt > log/4/stdout1063 2> log/4/stderr1063 curl returned 1, when expecting 36 1063: exit FAILED == Contents of files in the log/4/ dir after test 1063 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1063 ../src/curl -q --output log/4/curl1063.out --include --trace-ascii log/4/trace1063 --trace-time -r 4294967303- file://localhost/build/curl/src/build-curl/tests/log/4/test1063.txt > log/4/stdout1063 2> log/4/stderr1063 === End of file commands.log === Start of file server.cmd Testnum 1063 === End of file server.cmd === Start of file test1063.txt 1234567890 1234567890 === End of file test1063.txt === Start of file valgrind1063 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1063 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/7/server/http_ipv6_server.pid" --logfile "log/7/http_ipv6_server.log" --logdir "log/7" --portfile log/7/server/http_ipv6_server.port --config log/7/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 129185 port 41277 * pid http-ipv6 => 129185 129185 test 1056...[HTTP follow redirect from IPv4 to IPv6 with scope] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1056 ../src/curl -q --output log/7/curl1056.out --include --trace-ascii log/7/trace1056 --trace-time http://127.0.0.1:40129/we/are/all/twits/1056 -L > log/7/stdout1056 2> log/7/stderr1056 1056: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1056 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1056 ../src/curl -q --output log/7/curl1056.out --include --trace-ascii log/7/trace1056 --trace-time http://127.0.0.1:40129/we/are/all/twits/1056 -L > log/7/stdout1056 2> log/7/stderr1056 === End of file commands.log === Start of file http_ipv6_server.log 10:32:59.118748 Running HTTP IPv6 version on port 41277 10:32:59.119628 Wrote pid 129185 to log/7/server/http_ipv6_server.pid 10:32:59.120435 Wrote port 41277 to log/7/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file http_server.log 10:32:58.815675 ====> Client connect 10:32:58.816109 accept_connection 3 returned 4 10:32:58.816376 accept_connection 3 returned 0 10:32:58.816561 Read 93 bytes 10:32:58.816662 Process 93 bytes request 10:32:58.816760 Got request: GET /verifiedserver HTTP/1.1 10:32:58.816856 Are-we-friendly question received 10:32:58.817145 Wrote request (93 bytes) input to log/7/server.input 10:32:58.817407 Identifying ourselves as friends 10:32:58.836357 Response sent (56 bytes) and written to log/7/server.response 10:32:58.836630 special request received, no persistency 10:32:58.836742 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 54114 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1056 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1056 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1064 ../src/curl -q --include --trace-ascii log/6/trace1064 --trace-time -H "Expect:" -T log/6/1064 http://127.0.0.1:33363/1064.upload1 -T log/6/1064 http://127.0.0.1:33363/10640002.upload2 > log/6/stdout1064 2> log/6/stderr1064 valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1056 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1065 ../src/curl -q --include --trace-ascii log/8/trace1065 --trace-time -H "Expect:" -T log/8/1065 http://127.0.0.1:36007/1065.upload1 http://127.0.0.1:36007/10650002.url2 > log/8/stdout1065 2> log/8/stderr1065 test 1064...[HTTP PUT twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1064 ../src/curl -q --include --trace-ascii log/6/trace1064 --trace-time -H "Expect:" -T log/6/1064 http://127.0.0.1:33363/1064.upload1 -T log/6/1064 http://127.0.0.1:33363/10640002.upload2 > log/6/stdout1064 2> log/6/stderr1064 1064: stdout FAILED: --- log/6/check-expected 2025-09-11 10:33:01.149669847 +0000 +++ log/6/check-generated 2025-09-11 10:33:01.149669847 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 200 A OK[CR][LF] -Server: curl test[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 3[CR][LF] -[CR][LF] -ok[LF] -HTTP/1.1 200 A OK[CR][LF] -Server: curl test[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 9[CR][LF] -[CR][LF] -still ok[LF] == Contents of files in the log/6/ dir after test 1064 === Start of file 1064 test === End of file 1064 === Start of file check-expected HTTP/1.1 200 A OK[CR][LF] Server: curl test[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 3[CR][LF] [CR][LF] ok[LF] HTTP/1.1 200 A OK[CR][LF] Server: curl test[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 9[CR][LF] [CR][LF] still ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1064 ../src/curl -q --include --trace-ascii log/6/trace1064 --trace-time -H "Expect:" -T log/6/1064 http://127.0.0.1:33363/1064.upload1 -T log/6/1064 http://127.0.0.1:33363/10640002.upload2 > log/6/stdout1064 2> log/6/stderr1064 === End of file commands.log === Start of file http_server.log 10:32:59.906527 ====> Client connect 10:32:59.906874 accept_connection 3 returned 4 10:32:59.907095 accept_connection 3 returned 0 10:32:59.907263 Read 93 bytes 10:32:59.907364 Process 93 bytes request 10:32:59.907450 Got request: GET /verifiedserver HTTP/1.1 10:32:59.907515 Are-we-friendly question received 10:32:59.907740 Wrote request (93 bytes) input to log/6/server.input 10:32:59.907923 Identifying ourselves as friends 10:32:59.908668 Response sent (56 bytes) and written to log/6/server.response 10:32:59.908864 special request received, no persistency 10:32:59.908949 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 48228 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1064 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1064 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1064 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1066 ../src/curl -q --include --trace-ascii log/5/trace1066 --trace-time http://127.0.0.1:41733/want/1066 http://127.0.0.1:41733/want/10660001 --dump-header - > log/5/stdout1066 2> log/5/stderr1066 test 1065...[HTTP PUT with one file but two URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1065 ../src/curl -q --include --trace-ascii log/8/trace1065 --trace-time -H "Expect:" -T log/8/1065 http://127.0.0.1:36007/1065.upload1 http://127.0.0.1:36007/10650002.url2 > log/8/stdout1065 2> log/8/stderr1065 1065: stdout FAILED: --- log/8/check-expected 2025-09-11 10:33:01.233671519 +0000 +++ log/8/check-generated 2025-09-11 10:33:01.233671519 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 200 A OK[CR][LF] -Server: curl test[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 3[CR][LF] -[CR][LF] -ok[LF] -HTTP/1.1 200 A OK[CR][LF] -Server: curl test[CR][LF] -Content-Type: text/html; charset=iso-8859-1[CR][LF] -Content-Length: 9[CR][LF] -[CR][LF] -still ok[LF] == Contents of files in the log/8/ dir after test 1065 === Start of file 1065 test === End of file 1065 === Start of file check-expected HTTP/1.1 200 A OK[CR][LF] Server: curl test[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 3[CR][LF] [CR][LF] ok[LF] HTTP/1.1 200 A OK[CR][LF] Server: curl test[CR][LF] Content-Type: text/html; charset=iso-8859-1[CR][LF] Content-Length: 9[CR][LF] [CR][LF] still ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1065 ../src/curl -q --include --trace-ascii log/8/trace1065 --trace-time -H "Expect:" -T log/8/1065 http://127.0.0.1:36007/1065.upload1 http://127.0.0.1:36007/10650002.url2 > log/8/stdout1065 2> log/8/stderr1065 === End of file commands.log === Start of file http_server.log 10:33:00.056876 ====> Client connect 10:33:00.057254 accept_connection 3 returned 4 10:33:00.057452 accept_connection 3 returned 0 10:33:00.058473 Read 93 bytes 10:33:00.058738 Process 93 bytes request 10:33:00.058861 Got request: GET /verifiedserver HTTP/1.1 10:33:00.058949 Are-we-friendly question received 10:33:00.059268 Wrote request (93 bytes) input to log/8/server.input 10:33:00.059615 Identifying ourselves as friends 10:33:00.060299 Response sent (56 bytes) and written to log/8/server.response 10:33:00.060442 special request received, no persistency 10:33:00.060521 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57268 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1065 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1065 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1065 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1068 ../src/curl -q --output log/3/curl1068.out --include --trace-ascii log/3/trace1068 --trace-time http://127.0.0.1:36933/bzz/1068 -T - log/3/stdout1068 2> log/3/stderr1068 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1067 ../src/curl -q --output log/4/curl1067.out --include --trace-ascii log/4/trace1067 --trace-time http://127.0.0.1:36757/want/1067 --silent --location --referer "firstone.html;auto" --write-out "%{stderr}|%{referer}|" > log/4/stdout1067 2> log/4/stderr1067 test 1066...[HTTP --dump-header - with two URLs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1066 ../src/curl -q --include --trace-ascii log/5/trace1066 --trace-time http://127.0.0.1:41733/want/1066 http://127.0.0.1:41733/want/10660001 --dump-header - > log/5/stdout1066 2> log/5/stderr1066 1066: stdout FAILED: --- log/5/check-expected 2025-09-11 10:33:01.297672793 +0000 +++ log/5/check-generated 2025-09-11 10:33:01.297672793 +0000 @@ -1,22 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: thebest/1.0[CR][LF] -Server: thebest/1.0[CR][LF] -Content-Type: text/plain[CR][LF] -Content-Type: text/plain[CR][LF] -Content-Length: 6[CR][LF] -Content-Length: 6[CR][LF] -[CR][LF] -[CR][LF] -first[LF] -HTTP/1.1 200 OK[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Server: thebest/1.0[CR][LF] -Server: thebest/1.0[CR][LF] -Content-Type: text/plain[CR][LF] -Content-Type: text/plain[CR][LF] -Content-Length: 7[CR][LF] -Content-Length: 7[CR][LF] -[CR][LF] -[CR][LF] -second[LF] == Contents of files in the log/5/ dir after test 1066 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] HTTP/1.1 200 OK[CR][LF] Server: thebest/1.0[CR][LF] Server: thebest/1.0[CR][LF] Content-Type: text/plain[CR][LF] Content-Type: text/plain[CR][LF] Content-Length: 6[CR][LF] Content-Length: 6[CR][LF] [CR][LF] [CR][LF] first[LF] HTTP/1.1 200 OK[CR][LF] HTTP/1.1 200 OK[CR][LF] Server: thebest/1.0[CR][LF] Server: thebest/1.0[CR][LF] Content-Type: text/plain[CR][LF] Content-Type: text/plain[CR][LF] Content-Length: 7[CR][LF] Content-Length: 7[CR][LF] [CR][LF] [CR][LF] second[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1066 ../src/curl -q --include --trace-ascii log/5/trace1066 --trace-time http://127.0.0.1:41733/want/1066 http://127.0.0.1:41733/want/10660001 --dump-header - > log/5/stdout1066 2> log/5/stderr1066 === End of file commands.log === Start of file http_server.log 10:33:01.152679 ====> Client connect 10:33:01.153058 accept_connection 3 returned 4 10:33:01.153247 accept_connection 3 returned 0 10:33:01.153410 Read 93 bytes 10:33:01.153529 Process 93 bytes request 10:33:01.153643 Got request: GET /verifiedserver HTTP/1.1 10:33:01.153737 Are-we-friendly question received 10:33:01.154021 Wrote request (93 bytes) input to log/5/server.input 10:33:01.154391 Identifying ourselves as friends 10:33:01.158290 Response sent (56 bytes) and written to log/5/server.response 10:33:01.158455 special request received, no persistency 10:33:01.158523 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 48942 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1066 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1066 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1066 test 1068...[HTTP PUT from stdin] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1068 ../src/curl -q --output log/3/curl1068.out --include --trace-ascii log/3/trace1068 --trace-time http://127.0.0.1:36933/bzz/1068 -T - log/3/stdout1068 2> log/3/stderr1068 1068: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1068 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1068 ../src/curl -q --output log/3/curl1068.out --include --trace-ascii log/3/trace1068 --trace-time http://127.0.0.1:36933/bzz/1068 -T - log/3/stdout1068 2> log/3/stderr1068 === End of file commands.log === Start of file http_server.log 10:33:00.685809 ====> Client connect 10:33:00.686594 accept_connection 3 returned 4 10:33:00.686956 accept_connection 3 returned 0 10:33:00.687814 Read 93 bytes 10:33:00.688072 Process 93 bytes request 10:33:00.688205 Got request: GET /verifiedserver HTTP/1.1 10:33:00.688326 Are-we-friendly question received 10:33:00.688632 Wrote request (93 bytes) input to log/3/server.input 10:33:00.688897 Identifying ourselves as friends 10:33:00.689571 Response sent (56 bytes) and written to log/3/server.response 10:33:00.689741 special request received, no persistency 10:33:00.689817 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42744 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1068 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file stdin-for-1068 more than one byte === End of file stdin-for-1068 === Start of file valgrind1068 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1068 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1069 ../src/curl -q --output log/7/curl1069.out --include --trace-ascii log/7/trace1069 --trace-time http://127.0.0.1:40129/bzz/1069 -T - -0 log/7/stdout1069 2> log/7/stderr1069 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1060 ../src/curl -q --output log/2/curl1060.out --include --trace-ascii log/2/trace1060 --trace-time http://test.remote.haxx.se.1060:8990/path/10600002 --proxy http://127.0.0.1:43789 --proxy-user silly:person --proxy-digest --proxytunnel > log/2/stdout1060 2> log/2/stderr1060 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1070 ../src/curl -q --output log/6/curl1070.out --include --trace-ascii log/6/trace1070 --trace-time -d @log/6/input1070 http://127.0.0.1:33363/1070 -H "Expect: 100-continue" > log/6/stdout1070 2> log/6/stderr1070 test 1067...[HTTP Location: following with auto-referer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1067 ../src/curl -q --output log/4/curl1067.out --include --trace-ascii log/4/trace1067 --trace-time http://127.0.0.1:36757/want/1067 --silent --location --referer "firstone.html;auto" --write-out "%{stderr}|%{referer}|" > log/4/stdout1067 2> log/4/stderr1067 1067: stderr FAILED: --- log/4/check-expected 2025-09-11 10:33:01.777682348 +0000 +++ log/4/check-generated 2025-09-11 10:33:01.777682348 +0000 @@ -1 +0,0 @@ -|http://127.0.0.1:36757/want/1067| == Contents of files in the log/4/ dir after test 1067 === Start of file check-expected |http://127.0.0.1:36757/want/1067| === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1067 ../src/curl -q --output log/4/curl1067.out --include --trace-ascii log/4/trace1067 --trace-time http://127.0.0.1:36757/want/1067 --silent --location --referer "firstone.html;auto" --write-out "%{stderr}|%{referer}|" > log/4/stdout1067 2> log/4/stderr1067 === End of file commands.log === Start of file http_server.log 10:33:01.573792 ====> Client connect 10:33:01.574271 accept_connection 3 returned 4 10:33:01.574511 accept_connection 3 returned 0 10:33:01.574649 Read 93 bytes 10:33:01.574744 Process 93 bytes request 10:33:01.574842 Got request: GET /verifiedserver HTTP/1.1 10:33:01.574943 Are-we-friendly question received 10:33:01.575254 Wrote request (93 bytes) input to log/4/server.input 10:33:01.575526 Identifying ourselves as friends 10:33:01.576349 Response sent (56 bytes) and written to log/4/server.response 10:33:01.576502 special request received, no persistency 10:33:01.576574 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52140 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1067 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1067 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1067 test 1069...[HTTP 1.0 PUT from stdin with no content length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1069 ../src/curl -q --output log/7/curl1069.out --include --trace-ascii log/7/trace1069 --trace-time http://127.0.0.1:40129/bzz/1069 -T - -0 log/7/stdout1069 2> log/7/stderr1069 curl returned 1, when expecting 25 1069: exit FAILED == Contents of files in the log/7/ dir after test 1069 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1069 ../src/curl -q --output log/7/curl1069.out --include --trace-ascii log/7/trace1069 --trace-time http://127.0.0.1:40129/bzz/1069 -T - -0 log/7/stdout1069 2> log/7/stderr1069 === End of file commands.log === Start of file http_server.log 10:33:00.836495 ====> Client connect 10:33:00.836941 accept_connection 3 returned 4 10:33:00.837195 accept_connection 3 returned 0 10:33:00.837369 Read 93 bytes 10:33:00.837498 Process 93 bytes request 10:33:00.837603 Got request: GET /verifiedserver HTTP/1.1 10:33:00.837691 Are-we-friendly question received 10:33:00.838057 Wrote request (93 bytes) input to log/7/server.input 10:33:00.838479 Identifying ourselves as friends 10:33:00.839466 Response sent (56 bytes) and written to log/7/server.response 10:33:00.839696 special request received, no persistency 10:33:00.839833 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 56976 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1069 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file stdin-for-1069 this data can't be sent === End of file stdin-for-1069 === Start of file valgrind1069 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1069 test 1060...[HTTP proxy CONNECT auth Digest, large headers and data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1060 ../src/curl -q --output log/2/curl1060.out --include --trace-ascii log/2/trace1060 --trace-time http://test.remote.haxx.se.1060:8990/path/10600002 --proxy http://127.0.0.1:43789 --proxy-user silly:person --proxy-digest --proxytunnel > log/2/stdout1060 2> log/2/stderr1060 1060: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1060 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1060 ../src/curl -q --output log/2/curl1060.out --include --trace-ascii log/2/trace1060 --trace-time http://test.remote.haxx.se.1060:8990/path/10600002 --proxy http://127.0.0.1:43789 --proxy-user silly:person --proxy-digest --proxytunnel > log/2/stdout1060 2> log/2/stderr1060 === End of file commands.log === Start of file http_server.log 10:32:59.287379 ====> Client connect 10:32:59.287764 accept_connection 3 returned 4 10:32:59.287967 accept_connection 3 returned 0 10:32:59.288113 Read 93 bytes 10:32:59.288197 Process 93 bytes request 10:32:59.288286 Got request: GET /verifiedserver HTTP/1.1 10:32:59.288350 Are-we-friendly question received 10:32:59.288571 Wrote request (93 bytes) input to log/2/server.input 10:32:59.288730 Identifying ourselves as friends 10:32:59.289437 Response sent (56 bytes) and written to log/2/server.response 10:32:59.289562 special request received, no persistency 10:32:59.289626 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 37354 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1060 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1060 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1060 test 1070...[HTTP POST with server closing connection before (all) data is received] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1070 ../src/curl -q --output log/6/curl1070.out --include --trace-ascii log/6/trace1070 --trace-time -d @log/6/input1070 http://127.0.0.1:33363/1070 -H "Expect: 100-continue" > log/6/stdout1070 2> log/6/stderr1070 1070: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1070 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1070 ../src/curl -q --output log/6/curl1070.out --include --trace-ascii log/6/trace1070 --trace-time -d @log/6/input1070 http://127.0.0.1:33363/1070 -H "Expect: 100-continue" > log/6/stdout1070 2> log/6/stderr1070 === End of file commands.log === Start of file http_server.log 10:33:01.028482 ====> Client connect 10:33:01.028822 accept_connection 3 returned 4 10:33:01.029052 accept_connection 3 returned 0 10:33:01.029234 Read 93 bytes 10:33:01.029334 Process 93 bytes request 10:33:01.029421 Got request: GET /verifiedserver HTTP/1.1 10:33:01.029505 Are-we-friendly question received 10:33:01.029799 Wrote request (93 bytes) input to log/6/server.input 10:33:01.030072 Identifying ourselves as friends 10:33:01.031157 Response sent (56 bytes) and written to log/6/server.response 10:33:01.031341 special request received, no persistency 10:33:01.031418 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 48238 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file input1070 This creates the named file with this content before the test case is run, which is useful if the test case needs a file to act on. We create this file rather large (larger than your typical TCP packet) so that not all of it can nor will be sent in one go as that is kind of the point of this test Here's 2000 x 'O': OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1061 ../src/curl -q --output log/1/curl1061.out --include --trace-ascii log/1/trace1061 --trace-time http://test.remote.haxx.se.1061:8990/path/10610002 --proxy http://127.0.0.1:36129 --proxy-user silly:person --proxy-digest --proxytunnel > log/1/stdout1061 2> log/1/stderr1061 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1072 ../src/curl -q --output log/5/curl1072.out --include --trace-ascii log/5/trace1072 --trace-time http://127.0.0.1:41733/1072 -T - -u testuser:testpass --anyauth log/5/stdout1072 2> log/5/stderr1072 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO === End of file input1070 === Start of file server.cmd skip: 2300 Testnum 1070 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1070 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1070 test 1061...[HTTP proxy CONNECT auth Digest, large headers and chunked data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1061 ../src/curl -q --output log/1/curl1061.out --include --trace-ascii log/1/trace1061 --trace-time http://test.remote.haxx.se.1061:8990/path/10610002 --proxy http://127.0.0.1:36129 --proxy-user silly:person --proxy-digest --proxytunnel > log/1/stdout1061 2> log/1/stderr1061 1061: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1061 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1061 ../src/curl -q --output log/1/curl1061.out --include --trace-ascii log/1/trace1061 --trace-time http://test.remote.haxx.se.1061:8990/path/10610002 --proxy http://127.0.0.1:36129 --proxy-user silly:person --proxy-digest --proxytunnel > log/1/stdout1061 2> log/1/stderr1061 === End of file commands.log === Start of file http_server.log 10:32:59.413531 ====> Client connect 10:32:59.413923 accept_connection 3 returned 4 10:32:59.414283 accept_connection 3 returned 0 10:32:59.414479 Read 93 bytes 10:32:59.414576 Process 93 bytes request 10:32:59.414663 Got request: GET /verifiedserver HTTP/1.1 10:32:59.414735 Are-we-friendly question received 10:32:59.414990 Wrote request (93 bytes) input to log/1/server.input 10:32:59.415192 Identifying ourselves as friends 10:32:59.415900 Response sent (56 bytes) and written to log/1/server.response 10:32:59.416070 special request received, no persistency 10:32:59.416139 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 38412 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1061 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1061 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1061 test 1072...[HTTP chunked PUT to HTTP 1.0 server with authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1072 ../src/curl -q --output log/5/curl1072.out --include --trace-ascii log/5/trace1072 --trace-time http://127.0.0.1:41733/1072 -T - -u testuser:testpass --anyauth log/5/stdout1072 2> log/5/stderr1072 1072: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1072 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1072 ../src/curl -q --output log/5/curl1072.out --include --trace-ascii log/5/trace1072 --trace-time http://127.0.0.1:41733/1072 -T - -u testuser:testpass --anyauth log/5/stdout1072 2> log/5/stderr1072 === End of file commands.log === Start of file http_server.log 10:33:02.171502 ====> Client connect 10:33:02.171848 accept_connection 3 returned 4 10:33:02.172065 accept_connection 3 returned 0 10:33:02.172229 Read 93 bytes 10:33:02.172334 Process 93 bytes request 10:33:02.172428 Got request: GET /verifiedserver HTTP/1.1 10:33:02.172503 Are-we-friendly question received 10:33:02.172767 Wrote request (93 bytes) input to log/5/server.input 10:33:02.172986 Identifying ourselves as friends 10:33:02.173815 Response sent (56 bytes) and written to log/5/server.response 10:33:02.173981 special request received, no persistency 10:33:02.174058 ====> Client disconnect 0 === End of file http_server.log === Start of fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1071 ../src/curl -q --output log/8/curl1071.out --include --trace-ascii log/8/trace1071 --trace-time http://127.0.0.1:36007/1071 -T log/8/put1071 -u testuser:testpass --anyauth > log/8/stdout1071 2> log/8/stderr1071 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1073 ../src/curl -q --output log/3/curl1073.out --include --trace-ascii log/3/trace1073 --trace-time http://127.0.0.1:36933/1073 -T - -L log/3/stdout1073 2> log/3/stderr1073 ile http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 48956 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1072 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file stdin-for-1072 This is data we upload with PUT it comes from stdin so MUST be sent with chunked encoding which is impossible in HTTP/1.0 === End of file stdin-for-1072 === Start of file valgrind1072 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1072 test 1071...[Downgraded HTTP PUT to HTTP 1.0 with authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1071 ../src/curl -q --output log/8/curl1071.out --include --trace-ascii log/8/trace1071 --trace-time http://127.0.0.1:36007/1071 -T log/8/put1071 -u testuser:testpass --anyauth > log/8/stdout1071 2> log/8/stderr1071 1071: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1071 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1071 ../src/curl -q --output log/8/curl1071.out --include --trace-ascii log/8/trace1071 --trace-time http://127.0.0.1:36007/1071 -T log/8/put1071 -u testuser:testpass --anyauth > log/8/stdout1071 2> log/8/stderr1071 === End of file commands.log === Start of file http_server.log 10:33:01.123935 ====> Client connect 10:33:01.124240 accept_connection 3 returned 4 10:33:01.124427 accept_connection 3 returned 0 10:33:01.124581 Read 93 bytes 10:33:01.124709 Process 93 bytes request 10:33:01.124827 Got request: GET /verifiedserver HTTP/1.1 10:33:01.124951 Are-we-friendly question received 10:33:01.125245 Wrote request (93 bytes) input to log/8/server.input 10:33:01.125491 Identifying ourselves as friends 10:33:01.130619 Response sent (56 bytes) and written to log/8/server.response 10:33:01.130793 special request received, no persistency 10:33:01.130885 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57284 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file put1071 This is data we upload with PUT a second line line three four is the number of lines === End of file put1071 === Start of file server.cmd Testnum 1071 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1071 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1071 test 1073...[HTTP chunked PUT to HTTP 1.0 server with redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1073 ../src/curl -q --output log/3/curl1073.out --include --trace-ascii log/3/trace1073 --trace-time http://127.0.0.1:36933/1073 -T - -L log/3/stdout1073 2> log/3/stderr1073 1073: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1073 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1073 ../src/curl -q --output log/3/curl1073.out --include --trace-ascii log/3/trace1073 --trace-time http://127.0.0.1:36933/1073 -T - -L log/3/stdout1073 2> log/3/stderr1073 === End of file commands.log === Start of file http_server.log 10:33:01.595656 ====> Client connect 10:33:01.596037 accept_connection 3 returned 4 10:33:01.596329 accept_connection 3 returned 0 10:33:01.596519 Read 93 bytes 10:33:01.596629 Process 93 bytes request 10:33:01.596752 Got request: GET /verifiedserver HTTP/1.1 10:33:01.596840 Are-we-friendly question received 10:33:01.597123 Wrote request (93 bytes) input to log/3/server.input 10:33:01.597349 Identifying ourselves as friends 10:33:01.598092 Response sent (56 bytes) and written to log/3/server.response 10:33:01.602459 special request received, no persistency 10:33:01.602567 ====> Client disconnect 0 === CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1074 ../src/curl -q --include --trace-ascii log/4/trace1074 --trace-time http://127.0.0.1:36757/want/1074 http://127.0.0.1:36757/wantmore/10740001 > log/4/stdout1074 2> log/4/stderr1074 End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42752 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1073 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file stdin-for-1073 This is data we upload with PUT it comes from stdin so MUST be sent with chunked encoding which is impossible in HTTP/1.0 === End of file stdin-for-1073 === Start of file valgrind1073 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1073 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1075 ../src/curl -q --output log/7/curl1075.out --include --trace-ascii log/7/trace1075 --trace-time http://127.0.0.1:40129/1075 -T log/7/put1075 -u testuser:testpass --anyauth > log/7/stdout1075 2> log/7/stderr1075 test 1074...[HTTP downgrade to HTTP/1.0 on second request] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1074 ../src/curl -q --include --trace-ascii log/4/trace1074 --trace-time http://127.0.0.1:36757/want/1074 http://127.0.0.1:36757/wantmore/10740001 > log/4/stdout1074 2> log/4/stderr1074 1074: stdout FAILED: --- log/4/check-expected 2025-09-11 10:33:02.841703528 +0000 +++ log/4/check-generated 2025-09-11 10:33:02.841703528 +0000 @@ -1,11 +0,0 @@ -HTTP/1.0 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 9[CR][LF] -Connection: Keep-Alive[CR][LF] -[CR][LF] -surprise[LF] -HTTP/1.0 200 OK swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Connection: close[CR][LF] -[CR][LF] -surprise2[LF] == Contents of files in the log/4/ dir after test 1074 === Start of file check-expected HTTP/1.0 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 9[CR][LF] Connection: Keep-Alive[CR][LF] [CR][LF] surprise[LF] HTTP/1.0 200 OK swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Connection: close[CR][LF] [CR][LF] surprise2[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1074 ../src/curl -q --include --trace-ascii log/4/trace1074 --trace-time http://127.0.0.1:36757/want/1074 http://127.0.0.1:36757/wantmore/10740001 > log/4/stdout1074 2> log/4/stderr1074 === End of file commands.log === Start of file http_server.log 10:33:02.646716 ====> Client connect 10:33:02.647108 accept_connection 3 returned 4 10:33:02.647327 accept_connection 3 returned 0 10:33:02.647494 Read 93 bytes 10:33:02.647605 Process 93 bytes request 10:33:02.647718 Got request: GET /verifiedserver HTTP/1.1 10:33:02.647819 Are-we-friendly question received 10:33:02.648248 Wrote request (93 bytes) input to log/4/server.input 10:33:02.650649 Identifying ourselves as friends 10:33:02.651596 Response sent (56 bytes) and written to log/4/server.response 10:33:02.651747 special request received, no persistency 10:33:02.651820 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52152 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1074 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1074 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1074 test 1075...[HTTP PUT with --anyauth authorization (picking Basic)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1075 ../src/curl -q --output log/7/curl1075.out --include --trace-ascii log/7/trace1075 --trace-time http://127.0.0.1:40129/1075 -T log/7/put1075 -u testuser:testpass --anyauth > log/7/stdout1075 2> log/7/stderr1075 1075: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1075 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1075 ../src/curl -q --output log/7/curl1075.out --include --trace-ascii log/7/trace1075 --trace-time http://127.0.0.1:40129/1075 -T log/7/put1075 -u testuser:testpass --anyauth > log/7/stdout1075 2> log/7/stderr1075 === End of file commands.log === Start of file http_server.log 10:33:01.861294 ====> Client connect 10:33:01.861621 accept_connection 3 returned 4 10:33:01.861823 accept_connection 3 returned 0 10:33:01.861985 Read 93 bytes 10:33:01.862068 Process 93 bytes request 10:33:01.862255 Got request: GET /verifiedserver HTTP/1.1 10:33:01.862334 Are-we-friendly question received 10:33:01.862588 Wrote request (93 bytes) input to log/7/server.input 10:33:01.862783 Identifying ourselves as friends 10:33:01.863518 Response sent (56 bytes) and written to log/7/server.response 10:33:01.863681 special request received, no persistency 10:33:01.863747 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 56978 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file put1075 This is data we upload with PUT a second line line three four is the number of lines === End of file put1075 === Start of file server.cmd Testnum 1075 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1075 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The packCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1077 ../src/curl -q --output log/6/curl1077.out --include --trace-ascii log/6/trace1077 --trace-time -x 127.0.0.1:33363 ftp://127.0.0.1:33363/we/want/that/page/1077 ftp://127.0.0.1:33363/we/want/that/page/10770002 > log/6/stdout1077 2> log/6/stderr1077 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1076 ../src/curl -q --output log/2/curl1076.out --include --trace-ascii log/2/trace1076 --trace-time http://127.0.0.1:43789/blah/1076 -L -d "moo" --post302 > log/2/stdout1076 2> log/2/stderr1076 age you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1075 test 1077...[FTP over HTTP proxy with downgrade to HTTP 1.0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1077 ../src/curl -q --output log/6/curl1077.out --include --trace-ascii log/6/trace1077 --trace-time -x 127.0.0.1:33363 ftp://127.0.0.1:33363/we/want/that/page/1077 ftp://127.0.0.1:33363/we/want/that/page/10770002 > log/6/stdout1077 2> log/6/stderr1077 1077: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1077 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1077 ../src/curl -q --output log/6/curl1077.out --include --trace-ascii log/6/trace1077 --trace-time -x 127.0.0.1:33363 ftp://127.0.0.1:33363/we/want/that/page/1077 ftp://127.0.0.1:33363/we/want/that/page/10770002 > log/6/stdout1077 2> log/6/stderr1077 === End of file commands.log === Start of file http_server.log 10:33:02.040463 ====> Client connect 10:33:02.040802 accept_connection 3 returned 4 10:33:02.041018 accept_connection 3 returned 0 10:33:02.041176 Read 93 bytes 10:33:02.041282 Process 93 bytes request 10:33:02.041412 Got request: GET /verifiedserver HTTP/1.1 10:33:02.041510 Are-we-friendly question received 10:33:02.041803 Wrote request (93 bytes) input to log/6/server.input 10:33:02.042040 Identifying ourselves as friends 10:33:02.043013 Response sent (56 bytes) and written to log/6/server.response 10:33:02.043179 special request received, no persistency 10:33:02.043263 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 48248 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1077 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1077 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1077 test 1076...[HTTP POST with 302 redirect and --post302] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1076 ../src/curl -q --output log/2/curl1076.out --include --trace-ascii log/2/trace1076 --trace-time http://127.0.0.1:43789/blah/1076 -L -d "moo" --post302 > log/2/stdout1076 2> log/2/stderr1076 1076: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1076 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1076 ../src/curl -q --output log/2/curl1076.out --include --trace-ascii log/2/trace1076 --trace-time http://127.0.0.1:43789/blah/1076 -L -d "moo" --post302 > log/2/stdout1076 2> log/2/stderr1076 === End of file commands.log === Start of file http_server.log 10:33:02.033962 ====> Client connect 10:33:02.034671 accept_connection 3 returned 4 10:33:02.035058 accept_connection 3 returned 0 10:33:02.036160 Read 93 bytes 10:33:02.036415 Process 93 bytes request 10:33:02.036534 Got request: GET /verifiedserver HTTP/1.1 10:33:02.036618 Are-we-friendly question received 10:33:02.036908 Wrote request (93 bytes) input to log/2/server.input 10:33:02.037205 Identifying ourselves as friends 10:33:02.037996 Response sent (56 bytes) and written to log/2/server.response 10:33:02.039126 special request received, no persistency 10:33:02.039299 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 35694 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1076 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1076 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit prCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1079 ../src/curl -q --output log/5/curl1079.out --include --trace-ascii log/5/trace1079 --trace-time http://127.0.0.1:41733/1079 -u testuser:testpass --digest > log/5/stdout1079 2> log/5/stderr1079 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1078 ../src/curl -q --include --trace-ascii log/1/trace1078 --trace-time --proxy1.0 127.0.0.1:41917 -p http://127.0.0.1:36129/we/want/that/page/1078 http://127.0.0.1:36129/we/want/that/page/1078 > log/1/stdout1078 2> log/1/stderr1078 ocess on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1076 test 1079...[HTTP retry after closed connection and empty response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1079 ../src/curl -q --output log/5/curl1079.out --include --trace-ascii log/5/trace1079 --trace-time http://127.0.0.1:41733/1079 -u testuser:testpass --digest > log/5/stdout1079 2> log/5/stderr1079 1079: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1079 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1079 ../src/curl -q --output log/5/curl1079.out --include --trace-ascii log/5/trace1079 --trace-time http://127.0.0.1:41733/1079 -u testuser:testpass --digest > log/5/stdout1079 2> log/5/stderr1079 === End of file commands.log === Start of file http_server.log 10:33:03.220514 ====> Client connect 10:33:03.220875 accept_connection 3 returned 4 10:33:03.221109 accept_connection 3 returned 0 10:33:03.221275 Read 93 bytes 10:33:03.221378 Process 93 bytes request 10:33:03.221479 Got request: GET /verifiedserver HTTP/1.1 10:33:03.221566 Are-we-friendly question received 10:33:03.221851 Wrote request (93 bytes) input to log/5/server.input 10:33:03.222204 Identifying ourselves as friends 10:33:03.223197 Response sent (56 bytes) and written to log/5/server.response 10:33:03.223404 special request received, no persistency 10:33:03.223497 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 48970 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1079 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1079 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1079 prechecked /usr/bin/perl -e "if('[::1]' ne '[::1]') {print 'Test requires default test client host address';} else {exec './server/servers resolve --ipv6 ip6-localhost'; print 'Cannot run precheck resolve';}" test 1083 SKIPPED: Resolving IPv6 'ip6-localhost' didn't work CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1080 ../src/curl -q --include --trace-ascii log/8/trace1080 --trace-time http://127.0.0.1:36007/we/want/our/1080 http://127.0.0.1:36007/we/want/our/1080 -w '%{redirect_url}\n' > log/8/stdout1080 2> log/8/stderr1080 test 1078...[HTTP 1.0 CONNECT with proxytunnel and downgrade GET to HTTP/1.0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1078 ../src/curl -q --include --trace-ascii log/1/trace1078 --trace-time --proxy1.0 127.0.0.1:41917 -p http://127.0.0.1:36129/we/want/that/page/1078 http://127.0.0.1:36129/we/want/that/page/1078 > log/1/stdout1078 2> log/1/stderr1078 1078: stdout FAILED: --- log/1/check-expected 2025-09-11 10:33:03.573718100 +0000 +++ log/1/check-generated 2025-09-11 10:33:03.573718100 +0000 @@ -1,21 +0,0 @@ -HTTP/1.1 200 Mighty fine indeed[CR][LF] -Server: test tunnel 2000[CR][LF] -[CR][LF] -HTTP/1.0 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 9[CR][LF] -Connection: keep-alive[CR][LF] -[CR][LF] -contents[LF] -HTTP/1.0 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 9[CR][LF] -Connection: keep-alive[CR][LF] -[CR][LF] -contents[LF] == Contents of files in the log/1/ dir after test 1078 === Start of file check-expected HTTP/1.1 200 Mighty fine indeed[CR][LF] Server: test tunnel 2000[CR][LF] [CR][LF] HTTP/1.0 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 9[CR][LF] Connection: keep-alive[CR][LF] [CR][LF] contents[LF] HTTP/1.0 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 9[CR][LF] Connection: keep-alive[CR][LF] [CR][LF] contents[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1078 ../src/curl -q --include --trace-ascii log/1/trace1078 --trace-time --proxy1.0 127.0.0.1:41917 -p http://127.0.0.1:36129/we/want/that/page/1078 http://127.0.0.1:36129/we/want/that/page/1078 > log/1/stdout1078 2> log/1/stderr1078 === End of file commands.log === Start of file http2_server.log 10:33:03.305950 ====> Client connect 10:33:03.306508 accept_connection 3 returned 4 10:33:03.306730 accept_connection 3 returned 0 10:33:03.306861 Read 93 bytes 10:33:03.306947 Process 93 bytes request 10:33:03.307029 Got request: GET /verifiedserver HTTP/1.1 10:33:03.307094 Are-we-friendly question received 10:33:03.307338 Wrote request (93 bytes) input to log/1/proxy.input 10:33:03.307542 Identifying ourselves as friends 10:33:03.308225 Response sent (56 bytes) and written to log/1/proxy.response 10:33:03.308338 special request received, no persistency 10:33:03.308404 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:41917... * Established connection to 127.0.0.1 (127.0.0.1 port 41917) from 127.0.0.1 port 39748 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41917 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41917 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 78259 === End of file http2_verify.out === Start of file http_server.log 10:33:02.156755 ====> Client connect 10:33:02.157102 accept_connection 3 returned 4 10:33:02.157272 accept_connection 3 returned 0 10:33:02.157391 Read 93 bytes 10:33:02.157465 Process 93 bytes request 10:33:02.157555 Got request: GET /verifiedserver HTTP/1.1 10:33:02.157652 Are-we-friendly question received 10:33:02.157904 Wrote request (93 bytes) input to log/1/server.input 10:33:02.158293 Identifying ourselves as friends 10:33:02.159151 Response sent (56 bytes) and written to log/1/server.response 10:33:02.159299 special request received, no persistency 10:33:02.159373 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42366 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 78259 === End of file proxy.response === Start of file server.cmd Testnum 1078 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1078 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1078 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1081 ../src/curl -q --include --trace-ascii log/3/trace1081 --trace-time http://127.0.0.1:36933/we/want/our/1081 http://127.0.0.1:36933/we/want/our/10810002 -w '%{redirect_url}\n' > log/3/stdout1081 2> log/3/stderr1081 test 1080...[HTTP Location: on two URLs 'redirect_url' check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1080 ../src/curl -q --include --trace-ascii log/8/trace1080 --trace-time http://127.0.0.1:36007/we/want/our/1080 http://127.0.0.1:36007/we/want/our/1080 -w '%{redirect_url}\n' > log/8/stdout1080 2> log/8/stderr1080 1080: stdout FAILED: --- log/8/check-expected 2025-09-11 10:33:03.641719453 +0000 +++ log/8/check-generated 2025-09-11 10:33:03.641719453 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10800002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -http://127.0.0.1:36007/we/want/our/data/10800002.txt?coolsite=yes[LF] -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10800002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -http://127.0.0.1:36007/we/want/our/data/10800002.txt?coolsite=yes[LF] == Contents of files in the log/8/ dir after test 1080 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10800002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] http://127.0.0.1:36007/we/want/our/data/10800002.txt?coolsite=yes[LF] HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10800002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] http://127.0.0.1:36007/we/want/our/data/10800002.txt?coolsite=yes[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1080 ../src/curl -q --include --trace-ascii log/8/trace1080 --trace-time http://127.0.0.1:36007/we/want/our/1080 http://127.0.0.1:36007/we/want/our/1080 -w '%{redirect_url}\n' > log/8/stdout1080 2> log/8/stderr1080 === End of file commands.log === Start of file http_server.log 10:33:02.409734 ====> Client connect 10:33:02.410324 accept_connection 3 returned 4 10:33:02.410635 accept_connection 3 returned 0 10:33:02.410907 Read 93 bytes 10:33:02.411059 Process 93 bytes request 10:33:02.411182 Got request: GET /verifiedserver HTTP/1.1 10:33:02.411284 Are-we-friendly question received 10:33:02.411562 Wrote request (93 bytes) input to log/8/server.input 10:33:02.411802 Identifying ourselves as friends 10:33:02.413539 Response sent (56 bytes) and written to log/8/server.response 10:33:02.413812 special request received, no persistency 10:33:02.414009 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57294 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1080 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1080 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1080 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1084 ../src/curl -q --output log/6/curl1084.out --include --trace-ascii log/6/trace1084 --trace-time http://127.0.0.1:47/1084 --interface non-existing-host.haxx.se. > log/6/stdout1084 2> log/6/stderr1084 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1082 ../src/curl -q --output log/4/curl1082.out --include --trace-ascii log/4/trace1082 --trace-time http://127.0.0.1:36757/1082 -4 --interface 127.0.0.1 > log/4/stdout1082 2> log/4/stderr1082 test 1081...[HTTP no Location: on second URL 'redirect_url' check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1081 ../src/curl -q --include --trace-ascii log/3/trace1081 --trace-time http://127.0.0.1:36933/we/want/our/1081 http://127.0.0.1:36933/we/want/our/10810002 -w '%{redirect_url}\n' > log/3/stdout1081 2> log/3/stderr1081 1081: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:03.873724072 +0000 +++ log/3/check-generated 2025-09-11 10:33:03.873724072 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10810099.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -http://127.0.0.1:36933/we/want/our/data/10810099.txt?coolsite=yes[LF] -HTTP/1.1 200 Followed here fine swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Length: 41[CR][LF] -[CR][LF] -This second URL does not have a location[LF] -[LF] == Contents of files in the log/3/ dir after test 1081 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10810099.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] http://127.0.0.1:36933/we/want/our/data/10810099.txt?coolsite=yes[LF] HTTP/1.1 200 Followed here fine swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Length: 41[CR][LF] [CR][LF] This second URL does not have a location[LF] [LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1081 ../src/curl -q --include --trace-ascii log/3/trace1081 --trace-time http://127.0.0.1:36933/we/want/our/1081 http://127.0.0.1:36933/we/want/our/10810002 -w '%{redirect_url}\n' > log/3/stdout1081 2> log/3/stderr1081 === End of file commands.log === Start of file http_server.log 10:33:02.605070 ====> Client connect 10:33:02.605390 accept_connection 3 returned 4 10:33:02.605590 accept_connection 3 returned 0 10:33:02.605758 Read 93 bytes 10:33:02.605865 Process 93 bytes request 10:33:02.605961 Got request: GET /verifiedserver HTTP/1.1 10:33:02.606062 Are-we-friendly question received 10:33:02.606473 Wrote request (93 bytes) input to log/3/server.input 10:33:02.606799 Identifying ourselves as friends 10:33:02.607818 Response sent (56 bytes) and written to log/3/server.response 10:33:02.608027 special request received, no persistency 10:33:02.608112 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42758 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1081 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1081 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1081 test 1084...[HTTP GET with invalid --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1084 ../src/curl -q --output log/6/curl1084.out --include --trace-ascii log/6/trace1084 --trace-time http://127.0.0.1:47/1084 --interface non-existing-host.haxx.se. > log/6/stdout1084 2> log/6/stderr1084 curl returned 1, when expecting 45 1084: exit FAILED == Contents of files in the log/6/ dir after test 1084 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1084 ../src/curl -q --output log/6/curl1084.out --include --trace-ascii log/6/trace1084 --trace-time http://127.0.0.1:47/1084 --interface non-existing-host.haxx.se. > log/6/stdout1084 2> log/6/stderr1084 === End of file commands.log === Start of file server.cmd Testnum 1084 === End of file server.cmd === Start of file valgrind1084 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1084 prechecked /usr/bin/perl -e "print 'Test requires default test client host address' if('127.0.0.1' ne '127.0.0.1');" test 1082...[HTTP GET with localhost --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1082 ../src/curl -q --output log/4/curl1082.out --include --trace-ascii log/4/trace1082 --trace-time http://127.0.0.1:36757/1082 -4 --interface 127.0.0.1 > log/4/stdout1082 2> log/4/stderr1082 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1085 ../src/curl -q --output log/2/curl1085.out --include --trace-ascii log/2/trace1085 --trace-time -g "http://[::1]:47/1085" --interface non-existing-host.haxx.se. > log/2/stdout1085 2> log/2/stderr1085 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1086 ../src/curl -q --output log/5/curl1086.out --include --trace-ascii log/5/trace1086 --trace-time ftp://127.0.0.1:43393/1086 -m 5 > log/5/stdout1086 2> log/5/stderr1086 * kill pid for ftp-ctrl => 79640 RUN: Process with pid 79602 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1087 ../src/curl -q --output log/7/curl1087.out --include --trace-ascii log/7/trace1087 --trace-time http://first.host.it.is/we/want/that/page/10871000 -x 127.0.0.1:40129 --user iam:myself --location --anyauth > log/7/stdout1087 2> log/7/stderr1087 1082: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1082 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1082 ../src/curl -q --output log/4/curl1082.out --include --trace-ascii log/4/trace1082 --trace-time http://127.0.0.1:36757/1082 -4 --interface 127.0.0.1 > log/4/stdout1082 2> log/4/stderr1082 === End of file commands.log === Start of file http_server.log 10:33:03.782937 ====> Client connect 10:33:03.783631 accept_connection 3 returned 4 10:33:03.783966 accept_connection 3 returned 0 10:33:03.784170 Read 93 bytes 10:33:03.784291 Process 93 bytes request 10:33:03.784397 Got request: GET /verifiedserver HTTP/1.1 10:33:03.784505 Are-we-friendly question received 10:33:03.784813 Wrote request (93 bytes) input to log/4/server.input 10:33:03.785042 Identifying ourselves as friends 10:33:03.785978 Response sent (56 bytes) and written to log/4/server.response 10:33:03.790805 special request received, no persistency 10:33:03.790955 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52158 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1082 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1082 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1082 prechecked ./server/servers resolve --ipv6 ::1 test 1085...[HTTP-IPv6 GET with invalid --interface] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1085 ../src/curl -q --output log/2/curl1085.out --include --trace-ascii log/2/trace1085 --trace-time -g "http://[::1]:47/1085" --interface non-existing-host.haxx.se. > log/2/stdout1085 2> log/2/stderr1085 curl returned 1, when expecting 45 1085: exit FAILED == Contents of files in the log/2/ dir after test 1085 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1085 ../src/curl -q --output log/2/curl1085.out --include --trace-ascii log/2/trace1085 --trace-time -g "http://[::1]:47/1085" --interface non-existing-host.haxx.se. > log/2/stdout1085 2> log/2/stderr1085 === End of file commands.log === Start of file server.cmd Testnum 1085 === End of file server.cmd === Start of file valgrind1085 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1085 test 1087...[HTTP, proxy with --anyauth and Location: to new host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1087 ../src/curl -q --output log/7/curl1087.out --include --trace-ascii log/7/trace1087 --trace-time http://first.host.it.is/we/want/that/page/10871000 -x 127.0.0.1:40129 --user iam:myself --location --anyauth > log/7/stdout1087 2> log/7/stderr1087 1087: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1087 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1087 ../src/curl -q --output log/7/curl1087.out --include --trace-ascii log/7/trace1087 --trace-time http://first.host.it.is/we/want/that/page/10871000 -x 127.0.0.1:40129 --user iam:myself --location --anyauth > log/7/stdout1087 2> log/7/stderr1087 === End of file commands.log === Start of file http_server.log 10:33:03.366049 ====> Client connect 10:33:03.366511 accept_connection 3 returned 4 10:33:03.366837 accept_connection 3 returned 0 10:33:03.367032 Read 93 bytes 10:33:03.367124 Process 93 bytes request 10:33:03.367210 Got request: GET /verifiedserver HTTP/1.1 10:33:03.367296 Are-we-friendly question received 10:33:03.367543 Wrote request (93 bytes) input to log/7/server.input 10:33:03.367723 Identifying ourselves as friends 10:33:03.368536 Response sent (56 bytes) and written to log/7/server.response 10:33:03.368672 special request received, no persistency 10:33:03.368740 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 56994 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * ReqCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1089 ../src/curl -q --include --trace-ascii log/8/trace1089 --trace-time http://127.0.0.1:36007/1089 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/8/stdout1089 2> log/8/stderr1089 uest completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1087 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1087 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1087 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1088 ../src/curl -q --output log/1/curl1088.out --include --trace-ascii log/1/trace1088 --trace-time http://first.host.it.is/we/want/that/page/10881000 -x 127.0.0.1:36129 --user iam:myself --location-trusted --anyauth > log/1/stdout1088 2> log/1/stderr1088 RUN: Process with pid 79602 gracefully died test 1089...[HTTP GET --write-out with redirected fetch] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1089 ../src/curl -q --include --trace-ascii log/8/trace1089 --trace-time http://127.0.0.1:36007/1089 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/8/stdout1089 2> log/8/stderr1089 1089: stdout FAILED: --- log/8/check-expected 2025-09-11 10:33:04.681740156 +0000 +++ log/8/check-generated 2025-09-11 10:33:04.681740156 +0000 @@ -1,20 +0,0 @@ -HTTP/1.1 302 OK swsbounce swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 8[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain[CR][LF] -Location: ./10890001[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 15[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain; charset=us-ascii[CR][LF] -[CR][LF] -bigger monster[LF] -2[LF] -1[LF] -15[LF] -http://127.0.0.1:36007/10890001[LF] -text/plain; charset=us-ascii[LF] -200[LF] == Contents of files in the log/8/ dir after test 1089 === Start of file check-expected HTTP/1.1 302 OK swsbounce swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 8[CR][LF] Connection: close[CR][LF] Content-Type: text/plain[CR][LF] Location: ./10890001[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 15[CR][LF] Connection: close[CR][LF] Content-Type: text/plain; charset=us-ascii[CR][LF] [CR][LF] bigger monster[LF] 2[LF] 1[LF] 15[LF] http://127.0.0.1:36007/10890001[LF] text/plain; charset=us-ascii[LF] 200[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1089 ../src/curl -q --include --trace-ascii log/8/trace1089 --trace-time http://127.0.0.1:36007/1089 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/8/stdout1089 2> log/8/stderr1089 === End of file commands.log === Start of file http_server.log 10:33:03.514575 ====> Client connect 10:33:03.516187 accept_connection 3 returned 4 10:33:03.516480 accept_connection 3 returned 0 10:33:03.516621 Read 93 bytes 10:33:03.516706 Process 93 bytes request 10:33:03.516797 Got request: GET /verifiedserver HTTP/1.1 10:33:03.516876 Are-we-friendly question received 10:33:03.517146 Wrote request (93 bytes) input to log/8/server.input 10:33:03.517342 Identifying ourselves as friends 10:33:03.518279 Response sent (56 bytes) and written to log/8/server.response 10:33:03.518422 special request received, no persistency 10:33:03.518494 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57302 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1089 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1089 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1089 test 1088...[HTTP, proxy with --anyauth and Location: to new host using location-trusted] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1088 ../src/curl -q --output log/1/curl1088.out --include --trace-ascii log/1/trace1088 --trace-time http://first.host.it.is/we/want/that/page/10881000 -x 127.0.0.1:36129 --user iam:myself --location-trusted --anyauth > log/1/stdout1088 2> log/1/stderr1088 1088: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1088 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1088 ../src/curl -q --output log/1/curl1088.out --include --trace-ascii log/1/trace1088 --trace-time http://first.host.it.is/we/want/that/page/10881000 -x 127.0.0.1:36129 --user iam:myself --location-trusted --anyauth > log/1/stdout1088 2> log/1/stderr1088 === End of file commands.log === Start of file http_server.log 10:33:03.453882 ====> Client connect 10:33:03.454405 accept_connection 3 returned 4 10:33:03.454620 accept_connection 3 returned 0 10:33:03.454770 Read 93 bytes 10:33:03.454857 Process 93 bytes request 10:33:03.454944 Got request: GET /verifiedserver HTTP/1.1 10:33:03.455013 Are-we-friendly question received 10:33:03.455273 Wrote request (93 bytes) input to log/1/server.input 10:33:03.455466 Identifying ourselves as friends 10:33:03.456254 Response sent (56 bytes) and written to log/1/server.response 10:33:03.456390 special request received, no persistency 10:33:03.456458 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42374 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1088 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1088 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1088 test 1086...[FTP download with strict timeout and slow data transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1086 ../src/curl -q --output log/5/curl1086.out --include --trace-ascii log/5/trace1086 --trace-time ftp://127.0.0.1:43393/1086 -m 5 > log/5/stdout1086 2> log/5/stderr1086 1086: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1086 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1086 ../src/curl -q --output log/5/curl1086.out --include --trace-ascii log/5/trace1086 --trace-time ftp://127.0.0.1:43393/1086 -m 5 > log/5/stdout1086 2> log/5/stderr1086 === End of file commands.log === Start of file ftp_server.log 10:33:03.615416 ====> Client connect 10:33:03.617155 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:03.624439 < "USER anonymous" 10:33:03.624894 > "331 We are happy you popped in![CR][LF]" 10:33:03.630598 < "PASS ftp@example.com" 10:33:03.631205 > "230 Welcome you silly person[CR][LF]" 10:33:03.637585 < "PWD" 10:33:03.638312 > "257 "/" is current directory[CR][LF]" 10:33:03.640908 < "EPSV" 10:33:03.641360 ====> Passive DATA channel requested by client 10:33:03.641736 DATA sockfilt for passive data channel starting... 10:33:03.656149 DATA sockfilt for passive data channel started (pid 131076) 10:33:03.657691 DATA sockfilt for passive data channel listens on port 35993 10:33:03.658445 > "229 Entering Passive Mode (|||35993|)[LF]" 10:33:03.658902 Client has been notified that DATA conn will be accepted on port 35993 10:33:03.661241 Client connects to port 35993 10:33:03.661814 ====> Client established passive DATA connection on port 35993 10:33:03.662944 < "TYPE I" 10:33:03.663517 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:03.665388 < "SIZE verifiedserver" 10:33:03.666151 > "213 17[CR][LF]" 10:33:03.673273 < "RETR verifiedserver" 10:33:03.673986 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:03.674803 =====> Closing passive DATA connection... 10:33:03.675187 Server disconnects passive DATA connection 10:33:03.677185 Server disconnected passive DATA connection 10:33:03.677776 DATA sockfilt for passive data channel quits (pid 131076) 10:33:03.679860 DATA sockfilt for passive data channel quit (pid 131076) 10:33:03.680302 =====> Closed passive DATA connection 10:33:03.680805 > "226 File transfer complete[CR][LF]" 10:33:03.722342 < "QUIT" 10:33:03.722888 > "221 bye bye baby[CR][LF]" 10:33:03.725935 MAIN sockfilt said DISC 10:33:03.726411 ====> Client disconnected 10:33:03.727057 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:03.282439 ====> Client connect 10:33:03.285736 Received DATA (on stdin) 10:33:03.286034 > 160 bytes data, server => client 10:33:03.286259 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:03.286356 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:03.286430 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:03.288679 < 16 bytes data, client => server 10:33:03.288909 'USER anonymous\r\n' 10:33:03.294442 Received DATA (on stdin) 10:33:03.294732 > 33 bytes data, server => client 10:33:03.294848 '331 We are happy you popped in!\r\n' 10:33:03.298452 < 22 bytes data, client => server 10:33:03.298707 'PASS ftp@example.com\r\n' 10:33:03.302515 Received DATA (on stdin) 10:33:03.302741 > 30 bytes data, server => client 10:33:03.302849 '230 Welcome you silly person\r\n' 10:33:03.304249 < 5 bytes data, client => server 10:33:03.304449 'PWD\r\n' 10:33:03.307329 Received DATA (on stdin) 10:33:03.307577 > 30 bytes data, server => client 10:33:03.307696 '257 "/" is current directory\r\n' 10:33:03.308406 < 6 bytes data, client => server 10:33:03.308605 'EPSV\r\n' 10:33:03.327435 Received DATA (on stdin) 10:33:03.327648 > 38 bytes data, server => client 10:33:03.327750 '229 Entering Passive Mode (|||35993|)\n' 10:33:03.329766 < 8 bytes data, client => server 10:33:03.329990 'TYPE I\r\n' 10:33:03.332103 Received DATA (on stdin) 10:33:03.332314 > 33 bytes data, server => client 10:33:03.332425 '200 I modify TYPE as you wanted\r\n' 10:33:03.333148 < 21 bytes data, client => server 10:33:03.333352 'SIZE verifiedserver\r\n' 10:33:03.338216 Received DATA (on stdin) 10:33:03.338500 > 8 bytes data, server => client 10:33:03.338657 '213 17\r\n' 10:33:03.340268 < 21 bytes data, client => server 10:33:03.340486 'RETR verifiedserver\r\n' 10:33:03.342591 Received DATA (on stdin) 10:33:03.342798 > 29 bytes data, server => client 10:33:03.342895 '150 Binary junk (17 bytes).\r\n' 10:33:03.354264 Received DATA (on stdin) 10:33:03.354501 > 28 bytes data, server => client 10:33:03.354598 '226 File transfer complete\r\n' 10:33:03.387692 < 6 bytes data, client => server 10:33:03.387947 'QUIT\r\n' 10:33:03.391521 Received DATA (on stdin) 10:33:03.391738 > 18 bytes data, server => client 10:33:03.391856 '221 bye bye baby\r\n' 10:33:03.394053 ====> Client disconnect 10:33:03.395048 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:03.322542 Running IPv4 version 10:33:03.323218 Listening on port 35993 10:33:03.323806 Wrote pid 131076 to log/5/server/ftp_sockdata.pid 10:33:03.324162 Received PING (on stdin) 10:33:03.325420 Received PORT (on stdin) 10:33:03.328950 ====> Client connect 10:33:03.344174 Received DATA (on stdin) 10:33:03.344369 > 17 bytes data, server => client 10:33:03.344470 'WE ROOLZ: 79602\r\n' 10:33:03.344880 Received DISC (on stdin) 10:33:03.345130 ====> Client forcibly disconnected 10:33:03.346769 Received QUIT (on stdin) 10:33:03.346988 quits 10:33:03.347511 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd SLOWDOWNDATA REPLY welcome 220 Hey REPLY USER 331 OK REPLY PASS 230 OK REPLY PWD 257 "/" REPLY TYPE 200 OK Testnum 1086 === End of file server.cmd === Start of file valgrind1086 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the pacCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1090 ../src/curl -q --include --trace-ascii log/3/trace1090 --trace-time http://127.0.0.1:36933/1090 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/3/stdout1090 2> log/3/stderr1090 kagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1086 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1092 ../src/curl -q --output log/4/curl1092.out --include --trace-ascii log/4/trace1092 --trace-time "ftp://127.0.0.1:36757/we/want/that/page/1092;type=i" --use-ascii -x 127.0.0.1:36757 > log/4/stdout1092 2> log/4/stderr1092 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1091 ../src/curl -q --output log/6/curl1091.out --include --trace-ascii log/6/trace1091 --trace-time "ftp://127.0.0.1:33323/%2ftmp/moo/1091;type=i" --use-ascii > log/6/stdout1091 2> log/6/stderr1091 test 1090...[HTTP GET --write-out with redirected fetch and chunked reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1090 ../src/curl -q --include --trace-ascii log/3/trace1090 --trace-time http://127.0.0.1:36933/1090 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/3/stdout1090 2> log/3/stderr1090 1090: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:05.001746526 +0000 +++ log/3/check-generated 2025-09-11 10:33:04.993746367 +0000 @@ -1,20 +0,0 @@ -HTTP/1.1 302 OK swsbounce swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 8[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain[CR][LF] -Location: ./10900001[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Transfer-Encoding: chunked[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain; charset=us-ascii[CR][LF] -[CR][LF] -bigger monster[LF] -2[LF] -1[LF] -15[LF] -http://127.0.0.1:36933/10900001[LF] -text/plain; charset=us-ascii[LF] -200[LF] == Contents of files in the log/3/ dir after test 1090 === Start of file check-expected HTTP/1.1 302 OK swsbounce swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 8[CR][LF] Connection: close[CR][LF] Content-Type: text/plain[CR][LF] Location: ./10900001[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Transfer-Encoding: chunked[CR][LF] Connection: close[CR][LF] Content-Type: text/plain; charset=us-ascii[CR][LF] [CR][LF] bigger monster[LF] 2[LF] 1[LF] 15[LF] http://127.0.0.1:36933/10900001[LF] text/plain; charset=us-ascii[LF] 200[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1090 ../src/curl -q --include --trace-ascii log/3/trace1090 --trace-time http://127.0.0.1:36933/1090 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/3/stdout1090 2> log/3/stderr1090 === End of file commands.log === Start of file http_server.log 10:33:03.753552 ====> Client connect 10:33:03.753912 accept_connection 3 returned 4 10:33:03.754242 accept_connection 3 returned 0 10:33:03.754457 Read 93 bytes 10:33:03.754578 Process 93 bytes request 10:33:03.754703 Got request: GET /verifiedserver HTTP/1.1 10:33:03.754807 Are-we-friendly question received 10:33:03.755174 Wrote request (93 bytes) input to log/3/server.input 10:33:03.755452 Identifying ourselves as friends 10:33:03.756412 Response sent (56 bytes) and written to log/3/server.response 10:33:03.756633 special request received, no persistency 10:33:03.756744 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42772 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1090 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1090 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1090 test 1092...[FTP with type=i over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1092 ../src/curl -q --output log/4/curl1092.out --include --trace-ascii log/4/trace1092 --trace-time "ftp://127.0.0.1:36757/we/want/that/page/1092;type=i" --use-ascii -x 127.0.0.1:36757 > log/4/stdout1092 2> log/4/stderr1092 1092: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1092 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1092 ../src/curl -q --output log/4/curl1092.out --include --trace-ascii log/4/trace1092 --trace-time "ftp://127.0.0.1:36757/we/want/that/page/1092;type=i" --use-ascii -x 127.0.0.1:36757 > log/4/stdout1092 2> log/4/stderr1092 === End of file commands.log === Start of file http_server.log 10:33:04.881172 ====> Client connect 10:33:04.881505 accept_connection 3 returned 4 10:33:04.881705 accept_connection 3 returned 0 10:33:04.881854 Read 93 bytes 10:33:04.881926 Process 93 bytes request 10:33:04.882007 Got request: GET /verifiedserver HTTP/1.1 10:33:04.882158 Are-we-friendly question received 10:33:04.890287 Wrote request (93 bytes) input to log/4/server.input 10:33:04.890626 Identifying ourselves as friends 10:33:04.891572 Response sent (56 bytes) and written to log/4/server.response 10:33:04.891788 special request received, no persistency 10:33:04.891861 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52160 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1092 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1092 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1092 test 1091...[FTP URL with type=i] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1091 ../src/curl -q --output log/6/curl1091.out --include --trace-ascii log/6/trace1091 --trace-time "ftp://127.0.0.1:33323/%2ftmp/moo/1091;type=i" --use-ascii > log/6/stdout1091 2> log/6/stderr1091 1091: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1091 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1091 ../src/curl -q --output log/6/curl1091.out --include --trace-ascii log/6/trace1091 --trace-time "ftp://127.0.0.1:33323/%2ftmp/moo/1091;type=i" --use-ascii > log/6/stdout1091 2> log/6/stderr1091 === End of file commands.log === Start of file ftp_server.log 10:33:04.162776 ====> Client connect 10:33:04.163910 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:04.167001 < "USER anonymous" 10:33:04.167565 > "331 We are happy you popped in![CR][LF]" 10:33:04.171417 < "PASS ftp@example.com" 10:33:04.171875 > "230 Welcome you silly person[CR][LF]" 10:33:04.182413 < "PWD" 10:33:04.182959 > "257 "/" is current directory[CR][LF]" 10:33:04.186088 < "EPSV" 10:33:04.186500 ====> Passive DATA channel requested by client 10:33:04.186770 DATA sockfilt for passive data channel starting... 10:33:04.208953 DATA sockfilt for passive data channel started (pid 131305) 10:33:04.212615 DATA sockfilt for passive data channel listens on port 45003 10:33:04.213146 > "229 Entering Passive Mode (|||45003|)[LF]" 10:33:04.213400 Client has been notified that DATA conn will be accepted on port 45003 10:33:04.220633 Client connects to port 45003 10:33:04.221220 ====> Client established passive DATA connection on port 45003 10:33:04.222447 < "TYPE I" 10:33:04.223065 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:04.224671 < "SIZE verifiedserver" 10:33:04.225228 > "213 17[CR][LF]" 10:33:04.227535 < "RETR verifiedserver" 10:33:04.228101 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:04.228931 =====> Closing passive DATA connection... 10:33:04.229279 Server disconnects passive DATA connection 10:33:04.230864 Server disconnected passive DATA connection 10:33:04.231222 DATA sockfilt for passive data channel quits (pid 131305) 10:33:04.232815 DATA sockfilt for passive data channel quit (pid 131305) 10:33:04.233140 =====> Closed passive DATA connection 10:33:04.233438 > "226 File transfer complete[CR][LF]" 10:33:04.277871 < "QUIT" 10:33:04.278463 > "221 bye bye baby[CR][LF]" 10:33:04.285704 MAIN sockfilt said DISC 10:33:04.286181 ====> Client disconnected 10:33:04.286755 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:04.830765 ====> Client connect 10:33:04.832528 Received DATA (on stdin) 10:33:04.832799 > 160 bytes data, server => client 10:33:04.832933 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:04.833017 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:04.833089 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:04.833826 < 16 bytes data, client => server 10:33:04.834133 'USER anonymous\r\n' 10:33:04.837134 Received DATA (on stdin) 10:33:04.837392 > 33 bytes data, server => client 10:33:04.837522 '331 We are happy you popped in!\r\n' 10:33:04.838804 < 22 bytes data, client => server 10:33:04.838997 'PASS ftp@example.com\r\n' 10:33:04.846190 Received DATA (on stdin) 10:33:04.846445 > 30 bytes data, server => client 10:33:04.846589 '230 Welcome you silly person\r\n' 10:33:04.848650 < 5 bytes data, client => server 10:33:04.848888 'PWD\r\n' 10:33:04.851611 Received DATA (on stdin) 10:33:04.851857 > 30 bytes data, server => client 10:33:04.851967 '257 "/" is current directory\r\n' 10:33:04.853902 < 6 bytes data, client => server 10:33:04.854247 'EPSV\r\n' 10:33:04.881776 Received DATA (on stdin) 10:33:04.881909 > 38 bytes data, server => client 10:33:04.881998 '229 Entering Passive Mode (|||45003|)\n' 10:33:04.887435 < 8 bytes data, client => server 10:33:04.887711 'TYPE I\r\n' 10:33:04.891701 Received DATA (on stdin) 10:33:04.891839 > 33 bytes data, server => client 10:33:04.891929 '200 I modify TYPE as you wanted\r\n' 10:33:04.892625 < 21 bytes data, client => server 10:33:04.892874 'SIZE verifiedserver\r\n' 10:33:04.894247 Received DATA (on stdin) 10:33:04.894491 > 8 bytes data, server => client 10:33:04.894619 '213 17\r\n' 10:33:04.895356 < 21 bytes data, client => server 10:33:04.895613 'RETR verifiedserver\r\n' 10:33:04.898309 Received DATA (on stdin) 10:33:04.898539 > 29 bytes data, server => client 10:33:04.898634 '150 Binary junk (17 bytes).\r\n' 10:33:04.902128 Received DATA (on stdin) 10:33:04.902386 > 28 bytes data, server => client 10:33:04.902503 '226 File transfer complete\r\n' 10:33:04.943332 < 6 bytes data, client => server 10:33:04.943554 'QUIT\r\n' 10:33:04.947097 Received DATA (on stdin) 10:33:04.947338 > 18 bytes data, server => client 10:33:04.947447 '221 bye bye baby\r\n' 10:33:04.952092 ====> Client disconnect 10:33:04.955488 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:04.865519 Running IPv4 version 10:33:04.876351 Listening on port 45003 10:33:04.876985 Wrote pid 131305 to log/6/server/ftp_sockdata.pid 10:33:04.877214 Received PING (on stdin) 10:33:04.878171 Received PORT (on stdin) 10:33:04.888522 ====> Client connect 10:33:04.898364 Received DATA (on stdin) 10:33:04.898539 > 17 bytes data, server => client 10:33:04.898633 'WE ROOLZ: 79480\r\n' 10:33:04.898916 Received DISC (on stdin) 10:33:04.899114 ====> Client forcibly disconnected 10:33:04.900045 Received QUIT (on stdin) 10:33:04.900163 quits 10:33:04.900569 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1091 === End of file server.cmd === Start of file valgrind1091 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: thatCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1093 ../src/curl -q --output log/2/curl1093.out --include --trace-ascii log/2/trace1093 --trace-time "tftp://127.0.0.1:48489//1093;mode=i" --use-ascii > log/2/stdout1093 2> log/2/stderr1093 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1095 ../src/curl -q --output log/8/curl1095.out --include --trace-ascii log/8/trace1095 --trace-time http://127.0.0.1:36007/1095 -u testuser:testpass --digest > log/8/stdout1095 2> log/8/stderr1095 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1098 ../src/curl -q --include --trace-ascii log/1/trace1098 --trace-time ftp://ftp-site/moo/1098 ftp://ftp-site/moo/1098 --proxy http://127.0.0.1:36129 > log/1/stdout1098 2> log/1/stderr1098 exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1091 test 1093...[TFTP retrieve with mode=i] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1093 ../src/curl -q --output log/2/curl1093.out --include --trace-ascii log/2/trace1093 --trace-time "tftp://127.0.0.1:48489//1093;mode=i" --use-ascii > log/2/stdout1093 2> log/2/stderr1093 1093: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1093 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1093 ../src/curl -q --output log/2/curl1093.out --include --trace-ascii log/2/trace1093 --trace-time "tftp://127.0.0.1:48489//1093;mode=i" --use-ascii > log/2/stdout1093 2> log/2/stderr1093 === End of file commands.log === Start of file server.cmd Testnum 1093 === End of file server.cmd === Start of file tftp_server.log 10:33:04.982918 trying to get file: verifiedserver mode 1 10:33:04.983236 Are-we-friendly question received 10:33:04.983391 write 10:33:04.983683 read 10:33:04.984210 read: 4 10:33:04.984667 end of one transfer === End of file tftp_server.log === Start of file valgrind1093 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1093 test 1095...[HTTP with Digest and realm with quoted quotes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1095 ../src/curl -q --output log/8/curl1095.out --include --trace-ascii log/8/trace1095 --trace-time http://127.0.0.1:36007/1095 -u testuser:testpass --digest > log/8/stdout1095 2> log/8/stderr1095 1095: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1095 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1095 ../src/curl -q --output log/8/curl1095.out --include --trace-ascii log/8/trace1095 --trace-time http://127.0.0.1:36007/1095 -u testuser:testpass --digest > log/8/stdout1095 2> log/8/stderr1095 === End of file commands.log === Start of file http_server.log 10:33:04.543285 ====> Client connect 10:33:04.543704 accept_connection 3 returned 4 10:33:04.543949 accept_connection 3 returned 0 10:33:04.544119 Read 93 bytes 10:33:04.544230 Process 93 bytes request 10:33:04.544321 Got request: GET /verifiedserver HTTP/1.1 10:33:04.544399 Are-we-friendly question received 10:33:04.544666 Wrote request (93 bytes) input to log/8/server.input 10:33:04.544884 Identifying ourselves as friends 10:33:04.545783 Response sent (56 bytes) and written to log/8/server.response 10:33:04.545963 special request received, no persistency 10:33:04.546132 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57316 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1095 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1095 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1095 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1099 ../src/curl -q --include --trace-ascii log/3/trace1099 --trace-time tftp://127.0.0.1:51485/an/invalid-file tftp://127.0.0.1:51485//1099 > log/3/stdout1099 2> log/3/stderr1099 test 1098...[FTP RETR twice over proxy confirming persistent connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1098 ../src/curl -q --include --trace-ascii log/1/trace1098 --trace-time ftp://ftp-site/moo/1098 ftp://ftp-site/moo/1098 --proxy http://127.0.0.1:36129 > log/1/stdout1098 2> log/1/stderr1098 1098: stdout FAILED: --- log/1/check-expected 2025-09-11 10:33:05.821762849 +0000 +++ log/1/check-generated 2025-09-11 10:33:05.821762849 +0000 @@ -1,10 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 6[CR][LF] -[CR][LF] -hello[LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 6[CR][LF] -[CR][LF] -hello[LF] == Contents of files in the log/1/ dir after test 1098 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 6[CR][LF] [CR][LF] hello[LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 6[CR][LF] [CR][LF] hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1098 ../src/curl -q --include --trace-ascii log/1/trace1098 --trace-time ftp://ftp-site/moo/1098 ftp://ftp-site/moo/1098 --proxy http://127.0.0.1:36129 > log/1/stdout1098 2> log/1/stderr1098 === End of file commands.log === Start of file http_server.log 10:33:04.718225 ====> Client connect 10:33:04.718534 accept_connection 3 returned 4 10:33:04.718840 accept_connection 3 returned 0 10:33:04.719013 Read 93 bytes 10:33:04.719121 Process 93 bytes request 10:33:04.719216 Got request: GET /verifiedserver HTTP/1.1 10:33:04.719291 Are-we-friendly question received 10:33:04.719501 Wrote request (93 bytes) input to log/1/server.input 10:33:04.719684 Identifying ourselves as friends 10:33:04.720370 Response sent (56 bytes) and written to log/1/server.response 10:33:04.720509 special request received, no persistency 10:33:04.720577 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42382 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1098 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1098 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1098 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1101 ../src/curl -q --output log/6/curl1101.out --include --trace-ascii log/6/trace1101 --trace-time http://user:secret@127.0.0.1:33363/gimme/1101 > log/6/stdout1101 2> log/6/stderr1101 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1102 ../src/curl -q --output log/4/curl1102.out --include --trace-ascii log/4/trace1102 --trace-time ftp://127.0.0.1:42635/1102 > log/4/stdout1102 2> log/4/stderr1102 test 1099...[TFTP get first a non-existing file then an existing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1099 ../src/curl -q --include --trace-ascii log/3/trace1099 --trace-time tftp://127.0.0.1:51485/an/invalid-file tftp://127.0.0.1:51485//1099 > log/3/stdout1099 2> log/3/stderr1099 1099: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:05.873763884 +0000 +++ log/3/check-generated 2025-09-11 10:33:05.873763884 +0000 @@ -1 +0,0 @@ -data for 1099[LF] == Contents of files in the log/3/ dir after test 1099 === Start of file check-expected data for 1099[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1099 ../src/curl -q --include --trace-ascii log/3/trace1099 --trace-time tftp://127.0.0.1:51485/an/invalid-file tftp://127.0.0.1:51485//1099 > log/3/stdout1099 2> log/3/stderr1099 === End of file commands.log === Start of file server.cmd Testnum 1099 === End of file server.cmd === Start of file tftp_server.log 10:33:05.858862 trying to get file: verifiedserver mode 1 10:33:05.859184 Are-we-friendly question received 10:33:05.859327 write 10:33:05.859622 read 10:33:05.860479 read: 4 10:33:05.860964 end of one transfer === End of file tftp_server.log === Start of file valgrind1099 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1099 setenv no_proxy = 127.0.0.1 setenv http_proxy = http://non-existing-host.haxx.se:3128/ test 1101...[NO_PROXY test, with user name in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1101 ../src/curl -q --output log/6/curl1101.out --include --trace-ascii log/6/trace1101 --trace-time http://user:secret@127.0.0.1:33363/gimme/1101 > log/6/stdout1101 2> log/6/stderr1101 1101: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1101 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1101 ../src/curl -q --output log/6/curl1101.out --include --trace-ascii log/6/trace1101 --trace-time http://user:secret@127.0.0.1:33363/gimme/1101 > log/6/stdout1101 2> log/6/stderr1101 === End of file commands.log === Start of file http_server.log 10:33:04.884608 ====> Client connect 10:33:04.884923 accept_connection 3 returned 4 10:33:04.885125 accept_connection 3 returned 0 10:33:04.885257 Read 93 bytes 10:33:04.885345 Process 93 bytes request 10:33:04.885430 Got request: GET /verifiedserver HTTP/1.1 10:33:04.885506 Are-we-friendly question received 10:33:04.885758 Wrote request (93 bytes) input to log/6/server.input 10:33:04.885945 Identifying ourselves as friends 10:33:04.886770 Response sent (56 bytes) and written to log/6/server.response 10:33:04.886930 special request received, no persistency 10:33:04.886999 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 48250 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1101 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1101 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1101 test 1102...[FTP OS/400 server name format check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1102 ../src/curl -q --output log/4/curl1102.out --include --trace-ascii log/4/trace1102 --trace-time ftp://127.0.0.1:42635/1102 > log/4/stdout1102 2> log/4/stderr1102 1102: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1102 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1102 ../src/curl -q --output log/4/curl1102.out --include --trace-ascii log/4/trace1102 --trace-time ftp://127.0.0.1:42635/1102 > log/4/stdout1102 2> log/4/stderr1102 === End of file commands.log === Start of file ftp_server.log 10:33:05.231503 ====> Client connect 10:33:05.232687 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CRCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1103 ../src/curl -q --output log/2/curl1103.out --include --trace-ascii log/2/trace1103 --trace-time ftp://127.0.0.1:37959/1103 > log/2/stdout1103 2> log/2/stderr1103 ][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:05.238840 < "USER anonymous" 10:33:05.239360 > "331 We are happy you popped in![CR][LF]" 10:33:05.241144 < "PASS ftp@example.com" 10:33:05.241754 > "230 Welcome you silly person[CR][LF]" 10:33:05.245688 < "PWD" 10:33:05.246269 > "257 "/" is current directory[CR][LF]" 10:33:05.250374 < "EPSV" 10:33:05.250804 ====> Passive DATA channel requested by client 10:33:05.251075 DATA sockfilt for passive data channel starting... 10:33:05.262601 DATA sockfilt for passive data channel started (pid 131739) 10:33:05.263705 DATA sockfilt for passive data channel listens on port 40481 10:33:05.264201 > "229 Entering Passive Mode (|||40481|)[LF]" 10:33:05.264442 Client has been notified that DATA conn will be accepted on port 40481 10:33:05.269617 Client connects to port 40481 10:33:05.270047 ====> Client established passive DATA connection on port 40481 10:33:05.270917 < "TYPE I" 10:33:05.271360 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:05.272996 < "SIZE verifiedserver" 10:33:05.273442 > "213 17[CR][LF]" 10:33:05.275864 < "RETR verifiedserver" 10:33:05.276377 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:05.277029 =====> Closing passive DATA connection... 10:33:05.277308 Server disconnects passive DATA connection 10:33:05.278059 Server disconnected passive DATA connection 10:33:05.278369 DATA sockfilt for passive data channel quits (pid 131739) 10:33:05.280628 DATA sockfilt for passive data channel quit (pid 131739) 10:33:05.280869 =====> Closed passive DATA connection 10:33:05.281158 > "226 File transfer complete[CR][LF]" 10:33:05.323114 < "QUIT" 10:33:05.323556 > "221 bye bye baby[CR][LF]" 10:33:05.329596 MAIN sockfilt said DISC 10:33:05.330073 ====> Client disconnected 10:33:05.330517 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:05.899425 ====> Client connect 10:33:05.901282 Received DATA (on stdin) 10:33:05.901542 > 160 bytes data, server => client 10:33:05.901651 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:05.901728 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:05.901797 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:05.906470 < 16 bytes data, client => server 10:33:05.906761 'USER anonymous\r\n' 10:33:05.907951 Received DATA (on stdin) 10:33:05.908158 > 33 bytes data, server => client 10:33:05.908266 '331 We are happy you popped in!\r\n' 10:33:05.909061 < 22 bytes data, client => server 10:33:05.909319 'PASS ftp@example.com\r\n' 10:33:05.910326 Received DATA (on stdin) 10:33:05.910564 > 30 bytes data, server => client 10:33:05.910671 '230 Welcome you silly person\r\n' 10:33:05.911457 < 5 bytes data, client => server 10:33:05.911674 'PWD\r\n' 10:33:05.914872 Received DATA (on stdin) 10:33:05.915101 > 30 bytes data, server => client 10:33:05.915223 '257 "/" is current directory\r\n' 10:33:05.916162 < 6 bytes data, client => server 10:33:05.916413 'EPSV\r\n' 10:33:05.932785 Received DATA (on stdin) 10:33:05.932971 > 38 bytes data, server => client 10:33:05.933069 '229 Entering Passive Mode (|||40481|)\n' 10:33:05.935410 < 8 bytes data, client => server 10:33:05.935626 'TYPE I\r\n' 10:33:05.939973 Received DATA (on stdin) 10:33:05.940165 > 33 bytes data, server => client 10:33:05.940256 '200 I modify TYPE as you wanted\r\n' 10:33:05.940928 < 21 bytes data, client => server 10:33:05.941146 'SIZE verifiedserver\r\n' 10:33:05.942094 Received DATA (on stdin) 10:33:05.942297 > 8 bytes data, server => client 10:33:05.942402 '213 17\r\n' 10:33:05.943193 < 21 bytes data, client => server 10:33:05.943422 'RETR verifiedserver\r\n' 10:33:05.944953 Received DATA (on stdin) 10:33:05.945160 > 29 bytes data, server => client 10:33:05.945321 '150 Binary junk (17 bytes).\r\n' 10:33:05.949780 Received DATA (on stdin) 10:33:05.949910 > 28 bytes data, server => client 10:33:05.949997 '226 File transfer complete\r\n' 10:33:05.990948 < 6 bytes data, client => server 10:33:05.991144 'QUIT\r\n' 10:33:05.993843 Received DATA (on stdin) 10:33:05.994243 > 18 bytes data, server => client 10:33:05.994381 '221 bye bye baby\r\n' 10:33:05.994923 ====> Client disconnect 10:33:05.999401 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:05.929138 Running IPv4 version 10:33:05.929692 Listening on port 40481 10:33:05.930274 Wrote pid 131739 to log/4/server/ftp_sockdata.pid 10:33:05.930778 Received PING (on stdin) 10:33:05.931673 Received PORT (on stdin) 10:33:05.934493 ====> Client connect 10:33:05.945725 Received DATA (on stdin) 10:33:05.945888 > 17 bytes data, server => client 10:33:05.945987 'WE ROOLZ: 79516\r\n' 10:33:05.946365 Received DISC (on stdin) 10:33:05.946531 ====> Client forcibly disconnected 10:33:05.947725 Received QUIT (on stdin) 10:33:05.947857 quits 10:33:05.948311 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 "QGPL" is the current library REPLY SYST 215 OS/400 runs this server REPLY SITE 250 Name format set to 1 Testnum 1102 === End of file server.cmd === Start of file valgrind1102 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1102 test 1103...[FTP non-OS/400 server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1103 ../src/curl -q --output log/2/curl1103.out --include --trace-ascii log/2/trace1103 --trace-time ftp://127.0.0.1:37959/1103 > log/2/stdout1103 2> log/2/stderr1103 1103: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1103 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1103 ../src/curl -q --output log/2/curl1103.out --include --trace-ascii log/2/trace1103 --trace-time ftp://127.0.0.1:37959/1103 > log/2/stdout1103 2> log/2/stderr1103 === End of file commands.log === Start of file ftp_server.log 10:33:05.265731 ====> Client connect 10:33:05.267113 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:05.269288 < "USER anonymous" 10:33:05.273950 > "331 We are happy you popped in![CR][LF]" 10:33:05.278415 < "PASS ftp@example.com" 10:33:05.278851 > "230 Welcome you silly person[CR][LF]" 10:33:05.280534 < "PWD" 10:33:05.281041 > "257 "/" is current directory[CR][LF]" 10:33:05.284CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1094 ../src/curl -q --output log/7/curl1094.out --include --trace-ascii log/7/trace1094 --trace-time "tftp://127.0.0.1:41660//1094;mode=netascii" > log/7/stdout1094 2> log/7/stderr1094 560 < "EPSV" 10:33:05.284983 ====> Passive DATA channel requested by client 10:33:05.285285 DATA sockfilt for passive data channel starting... 10:33:05.296988 DATA sockfilt for passive data channel started (pid 131745) 10:33:05.298252 DATA sockfilt for passive data channel listens on port 38863 10:33:05.298805 > "229 Entering Passive Mode (|||38863|)[LF]" 10:33:05.299098 Client has been notified that DATA conn will be accepted on port 38863 10:33:05.301608 Client connects to port 38863 10:33:05.302159 ====> Client established passive DATA connection on port 38863 10:33:05.303155 < "TYPE I" 10:33:05.303692 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:05.305760 < "SIZE verifiedserver" 10:33:05.306367 > "213 17[CR][LF]" 10:33:05.307926 < "RETR verifiedserver" 10:33:05.308454 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:05.309267 =====> Closing passive DATA connection... 10:33:05.309711 Server disconnects passive DATA connection 10:33:05.310860 Server disconnected passive DATA connection 10:33:05.311287 DATA sockfilt for passive data channel quits (pid 131745) 10:33:05.313010 DATA sockfilt for passive data channel quit (pid 131745) 10:33:05.313454 =====> Closed passive DATA connection 10:33:05.314070 > "226 File transfer complete[CR][LF]" 10:33:05.351104 < "QUIT" 10:33:05.351527 > "221 bye bye baby[CR][LF]" 10:33:05.354557 MAIN sockfilt said DISC 10:33:05.355074 ====> Client disconnected 10:33:05.355750 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:04.930239 ====> Client connect 10:33:04.935706 Received DATA (on stdin) 10:33:04.935947 > 160 bytes data, server => client 10:33:04.936057 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:04.936136 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:04.936205 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:04.936949 < 16 bytes data, client => server 10:33:04.937123 'USER anonymous\r\n' 10:33:04.942533 Received DATA (on stdin) 10:33:04.942704 > 33 bytes data, server => client 10:33:04.942795 '331 We are happy you popped in!\r\n' 10:33:04.946219 < 22 bytes data, client => server 10:33:04.946408 'PASS ftp@example.com\r\n' 10:33:04.947456 Received DATA (on stdin) 10:33:04.947664 > 30 bytes data, server => client 10:33:04.947755 '230 Welcome you silly person\r\n' 10:33:04.948406 < 5 bytes data, client => server 10:33:04.948546 'PWD\r\n' 10:33:04.949645 Received DATA (on stdin) 10:33:04.949813 > 30 bytes data, server => client 10:33:04.949893 '257 "/" is current directory\r\n' 10:33:04.950608 < 6 bytes data, client => server 10:33:04.950774 'EPSV\r\n' 10:33:04.967424 Received DATA (on stdin) 10:33:04.967637 > 38 bytes data, server => client 10:33:04.967767 '229 Entering Passive Mode (|||38863|)\n' 10:33:04.970115 < 8 bytes data, client => server 10:33:04.970757 'TYPE I\r\n' 10:33:04.972293 Received DATA (on stdin) 10:33:04.972528 > 33 bytes data, server => client 10:33:04.972642 '200 I modify TYPE as you wanted\r\n' 10:33:04.973442 < 21 bytes data, client => server 10:33:04.973652 'SIZE verifiedserver\r\n' 10:33:04.974950 Received DATA (on stdin) 10:33:04.975169 > 8 bytes data, server => client 10:33:04.975255 '213 17\r\n' 10:33:04.975893 < 21 bytes data, client => server 10:33:04.976087 'RETR verifiedserver\r\n' 10:33:04.977045 Received DATA (on stdin) 10:33:04.977196 > 29 bytes data, server => client 10:33:04.977286 '150 Binary junk (17 bytes).\r\n' 10:33:04.982674 Received DATA (on stdin) 10:33:04.982905 > 28 bytes data, server => client 10:33:04.983018 '226 File transfer complete\r\n' 10:33:05.019042 < 6 bytes data, client => server 10:33:05.019287 'QUIT\r\n' 10:33:05.020108 Received DATA (on stdin) 10:33:05.020268 > 18 bytes data, server => client 10:33:05.020356 '221 bye bye baby\r\n' 10:33:05.021761 ====> Client disconnect 10:33:05.023691 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:05.963905 Running IPv4 version 10:33:05.964486 Listening on port 38863 10:33:05.965045 Wrote pid 131745 to log/2/server/ftp_sockdata.pid 10:33:05.965261 Received PING (on stdin) 10:33:05.966179 Received PORT (on stdin) 10:33:05.969639 ====> Client connect 10:33:05.978147 Received DATA (on stdin) 10:33:05.978362 > 17 bytes data, server => client 10:33:05.978485 'WE ROOLZ: 79558\r\n' 10:33:05.978908 Received DISC (on stdin) 10:33:05.979150 ====> Client forcibly disconnected 10:33:05.980180 Received QUIT (on stdin) 10:33:05.980339 quits 10:33:05.980738 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 "C:/somedir" is the current directory REPLY SYST 215 unknown-OS runs this server Testnum 1103 === End of file server.cmd === Start of file valgrind1103 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1103 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/tftpserver.pl --pidfile "log/7/server/tftp_server.pid" --portfile "log/7/server/tftp_server.port" --logfile "log/7/tftp_server.log" --logdir "log/7" --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: TFTP server on PID 131552 port 41660 * pid tftp => 131552 131552 test 1094...[TFTP retrieve with mode=netascii] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1094 ../src/curl -q --output log/7/curl1094.out --include --trace-ascii log/7/trace1094 --trace-time "tftp://127.0.0.1:41660//1094;mode=netascii" > log/7/stdout1094 2> log/7/stderr1094 1094: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1094 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1094 ../src/curl -q --output log/7/curl1094.out --include --trace-ascii log/7/trace1094 --trace-time "tftp://127.0.0.1:41660//1094;mode=netascii" > log/7/stdout1094 2> log/7/stderr1094 === End of file commands.log === Start of file server.cmd Testnum 1094 === End of file server.cmd === Start of file tftp_server.log 10:33:04.582570 Wrote pid 131552 to log/7/server/tftp_server.pid 10:33:04.583537 Wrote port 41660 to log/7/server/tftp_server.port 10:33:04.583784 Running IPv4 version on port UDP/41660 === End of file tftp_server.log === Start of file valgrind1094 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirectCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1096 ../src/curl -q --output log/5/curl1096.out --include --trace-ascii log/5/trace1096 --trace-time ftp://127.0.0.1:40501/dir/1096 ftp://127.0.0.1:40501/dir/1096 > log/5/stdout1096 2> log/5/stderr1096 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1104 ../src/curl -q --output log/8/curl1104.out --include --trace-ascii log/8/trace1104 --trace-time http://127.0.0.1:36007/want/1104 -L -x 127.0.0.1:36007 -c log/8/cookies1104.jar > log/8/stdout1104 2> log/8/stderr1104 ion are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1094 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/5/server/ftp_server.pid" --logfile "log/5/ftp_server.log" --logdir "log/5" --portfile "log/5/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 40501 (log/5/server/ftp_server.port) RUN: FTP server is PID 131615 port 40501 * pid ftp => 131615 131615 test 1096...[Two FTP downloads, with failed RETR but reused control connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1096 ../src/curl -q --output log/5/curl1096.out --include --trace-ascii log/5/trace1096 --trace-time ftp://127.0.0.1:40501/dir/1096 ftp://127.0.0.1:40501/dir/1096 > log/5/stdout1096 2> log/5/stderr1096 1096: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1096 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1096 ../src/curl -q --output log/5/curl1096.out --include --trace-ascii log/5/trace1096 --trace-time ftp://127.0.0.1:40501/dir/1096 ftp://127.0.0.1:40501/dir/1096 > log/5/stdout1096 2> log/5/stderr1096 === End of file commands.log === Start of file ftp_server.log 10:33:05.317578 FTP server listens on port IPv4/40501 10:33:05.318709 logged pid 131615 in log/5/server/ftp_server.pid 10:33:05.319071 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:05.984253 Running IPv4 version 10:33:05.984779 Listening on port 40501 10:33:05.985070 Wrote pid 131753 to log/5/server/ftp_sockctrl.pid 10:33:05.985335 Wrote port 40501 to log/5/server/ftp_server.port 10:33:05.985489 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY RETR 550 no such file REPLY SIZE 500 command not understood Testnum 1096 === End of file server.cmd === Start of file valgrind1096 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1096 test 1104...[HTTP cookie expiry date at Jan 1 00:00:00 GMT 1970] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1104 ../src/curl -q --output log/8/curl1104.out --include --trace-ascii log/8/trace1104 --trace-time http://127.0.0.1:36007/want/1104 -L -x 127.0.0.1:36007 -c log/8/cookies1104.jar > log/8/stdout1104 2> log/8/stderr1104 1104: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1104 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1104 ../src/curl -q --output log/8/curl1104.out --include --trace-ascii log/8/trace1104 --trace-time http://127.0.0.1:36007/want/1104 -L -x 127.0.0.1:36007 -c log/8/cookies1104.jar > log/8/stdout1104 2> log/8/stderr1104 === End of file commands.log === Start of file http_server.log 10:33:05.522318 ====> Client connect 10:33:05.522654 accept_connection 3 returned 4 10:33:05.522871 accept_connection 3 returned 0 10:33:05.523041 Read 93 bytes 10:33:05.523150 Process 93 bytes request 10:33:05.523245 Got request: GET /verifiedserver HTTP/1.1 10:33:05.523319 Are-we-friendly question received 10:33:05.523563 Wrote request (93 bytes) input to log/8/server.input 10:33:05.523791 Identifying ourselves as friends 10:33:05.524662 Response sent (56 bytes) and written to log/8/server.response 10:33:05.524792 special request received, no persistency 10:33:05.524866 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57332 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1104 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1104 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1106 ../src/curl -q --output log/3/curl1106.out --include --trace-ascii log/3/trace1106 --trace-time ftp://127.0.0.1:23456/1106 > log/3/stdout1106 2> log/3/stderr1106 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1105 ../src/curl -q --output log/1/curl1105.out --include --trace-ascii log/1/trace1105 --trace-time "http://127.0.0.1:36129/we/want/1105?parm1=this*that/other/thing&parm2=foobar/1105" -c log/1/cookie1105.txt -d "userid=myname&password=mypassword" > log/1/stdout1105 2> log/1/stderr1105 valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1104 setenv ftp_proxy = http://127.0.0.1:36933/ test 1106...[FTP URL and with ftp_proxy environment variable set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1106 ../src/curl -q --output log/3/curl1106.out --include --trace-ascii log/3/trace1106 --trace-time ftp://127.0.0.1:23456/1106 > log/3/stdout1106 2> log/3/stderr1106 1106: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1106 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1106 ../src/curl -q --output log/3/curl1106.out --include --trace-ascii log/3/trace1106 --trace-time ftp://127.0.0.1:23456/1106 > log/3/stdout1106 2> log/3/stderr1106 === End of file commands.log === Start of file http_server.log 10:33:05.758827 ====> Client connect 10:33:05.759167 accept_connection 3 returned 4 10:33:05.762960 accept_connection 3 returned 0 10:33:05.763098 Read 93 bytes 10:33:05.763168 Process 93 bytes request 10:33:05.763250 Got request: GET /verifiedserver HTTP/1.1 10:33:05.763334 Are-we-friendly question received 10:33:05.763602 Wrote request (93 bytes) input to log/3/server.input 10:33:05.763845 Identifying ourselves as friends 10:33:05.765615 Response sent (56 bytes) and written to log/3/server.response 10:33:05.765787 special request received, no persistency 10:33:05.765879 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42780 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1106 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1106 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1106 test 1105...[HTTP with cookie parser and header recording] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1105 ../src/curl -q --output log/1/curl1105.out --include --trace-ascii log/1/trace1105 --trace-time "http://127.0.0.1:36129/we/want/1105?parm1=this*that/other/thing&parm2=foobar/1105" -c log/1/cookie1105.txt -d "userid=myname&password=mypassword" > log/1/stdout1105 2> log/1/stderr1105 1105: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1105 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1105 ../src/curl -q --output log/1/curl1105.out --include --trace-ascii log/1/trace1105 --trace-time "http://127.0.0.1:36129/we/want/1105?parm1=this*that/other/thing&parm2=foobar/1105" -c log/1/cookie1105.txt -d "userid=myname&password=mypassword" > log/1/stdout1105 2> log/1/stderr1105 === End of file commands.log === Start of file http_server.log 10:33:05.716375 ====> Client connect 10:33:05.716727 accept_connection 3 returned 4 10:33:05.716914 accept_connection 3 returned 0 10:33:05.717071 Read 93 bytes 10:33:05.717163 Process 93 bytes request 10:33:05.717253 Got request: GET /verifiedserver HTTP/1.1 10:33:05.717326 Are-we-friendly question received 10:33:05.717548 Wrote request (93 bytes) input to log/1/server.input 10:33:05.717716 Identifying ourselves as friends 10:33:05.718575 Response sent (56 bytes) and written to log/1/server.response 10:33:05.718720 special request received, no persistency 10:33:05.718800 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42392 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1105 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1105 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling convenCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1107 ../src/curl -q --output log/6/curl1107.out --include --trace-ascii log/6/trace1107 --trace-time ftp://127.0.0.1:33323/1107 --ftp-pret > log/6/stdout1107 2> log/6/stderr1107 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1109 ../src/curl -q --output log/2/curl1109.out --include --trace-ascii log/2/trace1109 --trace-time http://127.0.0.1:43789/1109#test > log/2/stdout1109 2> log/2/stderr1109 tions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1105 test 1107...[FTP RETR PASV with PRET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1107 ../src/curl -q --output log/6/curl1107.out --include --trace-ascii log/6/trace1107 --trace-time ftp://127.0.0.1:33323/1107 --ftp-pret > log/6/stdout1107 2> log/6/stderr1107 1107: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1107 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1107 ../src/curl -q --output log/6/curl1107.out --include --trace-ascii log/6/trace1107 --trace-time ftp://127.0.0.1:33323/1107 --ftp-pret > log/6/stdout1107 2> log/6/stderr1107 === End of file commands.log === Start of file ftp_server.log 10:33:06.087633 ====> Client connect 10:33:06.088805 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:06.093774 < "USER anonymous" 10:33:06.094319 > "331 We are happy you popped in![CR][LF]" 10:33:06.097107 < "PASS ftp@example.com" 10:33:06.097666 > "230 Welcome you silly person[CR][LF]" 10:33:06.102558 < "PWD" 10:33:06.103171 > "257 "/" is current directory[CR][LF]" 10:33:06.106041 < "EPSV" 10:33:06.106390 ====> Passive DATA channel requested by client 10:33:06.106680 DATA sockfilt for passive data channel starting... 10:33:06.120795 DATA sockfilt for passive data channel started (pid 132127) 10:33:06.122466 DATA sockfilt for passive data channel listens on port 33849 10:33:06.123134 > "229 Entering Passive Mode (|||33849|)[LF]" 10:33:06.123515 Client has been notified that DATA conn will be accepted on port 33849 10:33:06.126281 Client connects to port 33849 10:33:06.126724 ====> Client established passive DATA connection on port 33849 10:33:06.127830 < "TYPE I" 10:33:06.128450 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:06.131212 < "SIZE verifiedserver" 10:33:06.132279 > "213 17[CR][LF]" 10:33:06.134955 < "RETR verifiedserver" 10:33:06.135551 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:06.136517 =====> Closing passive DATA connection... 10:33:06.136877 Server disconnects passive DATA connection 10:33:06.138978 Server disconnected passive DATA connection 10:33:06.139458 DATA sockfilt for passive data channel quits (pid 132127) 10:33:06.143492 DATA sockfilt for passive data channel quit (pid 132127) 10:33:06.143922 =====> Closed passive DATA connection 10:33:06.144890 > "226 File transfer complete[CR][LF]" 10:33:06.183760 < "QUIT" 10:33:06.184449 > "221 bye bye baby[CR][LF]" 10:33:06.194200 MAIN sockfilt said DISC 10:33:06.204753 ====> Client disconnected 10:33:06.205572 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:06.755487 ====> Client connect 10:33:06.757357 Received DATA (on stdin) 10:33:06.757607 > 160 bytes data, server => client 10:33:06.757735 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:06.757829 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:06.757911 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:06.758931 < 16 bytes data, client => server 10:33:06.759074 'USER anonymous\r\n' 10:33:06.762895 Received DATA (on stdin) 10:33:06.763060 > 33 bytes data, server => client 10:33:06.763152 '331 We are happy you popped in!\r\n' 10:33:06.763925 < 22 bytes data, client => server 10:33:06.764062 'PASS ftp@example.com\r\n' 10:33:06.767005 Received DATA (on stdin) 10:33:06.767247 > 30 bytes data, server => client 10:33:06.767381 '230 Welcome you silly person\r\n' 10:33:06.768339 < 5 bytes data, client => server 10:33:06.768553 'PWD\r\n' 10:33:06.772418 Received DATA (on stdin) 10:33:06.772665 > 30 bytes data, server => client 10:33:06.772797 '257 "/" is current directory\r\n' 10:33:06.773779 < 6 bytes data, client => server 10:33:06.774047 'EPSV\r\n' 10:33:06.792507 Received DATA (on stdin) 10:33:06.792681 > 38 bytes data, server => client 10:33:06.792781 '229 Entering Passive Mode (|||33849|)\n' 10:33:06.794255 < 8 bytes data, client => server 10:33:06.794452 'TYPE I\r\n' 10:33:06.797470 Received DATA (on stdin) 10:33:06.797681 > 33 bytes data, server => client 10:33:06.797783 '200 I modify TYPE as you wanted\r\n' 10:33:06.798663 < 21 bytes data, client => server 10:33:06.798886 'SIZE verifiedserver\r\n' 10:33:06.800363 Received DATA (on stdin) 10:33:06.800579 > 8 bytes data, server => client 10:33:06.801355 '213 17\r\n' 10:33:06.802402 < 21 bytes data, client => server 10:33:06.802666 'RETR verifiedserver\r\n' 10:33:06.805737 Received DATA (on stdin) 10:33:06.805933 > 29 bytes data, server => client 10:33:06.806099 '150 Binary junk (17 bytes).\r\n' 10:33:06.812916 Received DATA (on stdin) 10:33:06.813152 > 28 bytes data, server => client 10:33:06.813907 '226 File transfer complete\r\n' 10:33:06.851015 < 6 bytes data, client => server 10:33:06.851271 'QUIT\r\n' 10:33:06.855667 Received DATA (on stdin) 10:33:06.855920 > 18 bytes data, server => client 10:33:06.856052 '221 bye bye baby\r\n' 10:33:06.861987 ====> Client disconnect 10:33:06.870130 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:06.787788 Running IPv4 version 10:33:06.788467 Listening on port 33849 10:33:06.788849 Wrote pid 132127 to log/6/server/ftp_sockdata.pid 10:33:06.789014 Received PING (on stdin) 10:33:06.789936 Received PORT (on stdin) 10:33:06.794227 ====> Client connect 10:33:06.806278 Received DATA (on stdin) 10:33:06.806480 > 17 bytes data, server => client 10:33:06.806588 'WE ROOLZ: 79480\r\n' 10:33:06.807029 Received DISC (on stdin) 10:33:06.807281 ====> Client forcibly disconnected 10:33:06.810231 Received QUIT (on stdin) 10:33:06.810495 quits 10:33:06.811147 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PRET 200 fine Testnum 1107 === End of file server.cmd === Start of file valgrind1107 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1108 ../src/curl -q --output log/4/curl1108.out --include --trace-ascii log/4/trace1108 --trace-time ftp://127.0.0.1:42635/1108 --ftp-pret > log/4/stdout1108 2> log/4/stderr1108 :i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1107 test 1109...[HTTP GET with URL that contains fragment after the path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1109 ../src/curl -q --output log/2/curl1109.out --include --trace-ascii log/2/trace1109 --trace-time http://127.0.0.1:43789/1109#test > log/2/stdout1109 2> log/2/stderr1109 1109: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1109 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1109 ../src/curl -q --output log/2/curl1109.out --include --trace-ascii log/2/trace1109 --trace-time http://127.0.0.1:43789/1109#test > log/2/stdout1109 2> log/2/stderr1109 === End of file commands.log === Start of file http_server.log 10:33:05.924868 ====> Client connect 10:33:05.925251 accept_connection 3 returned 4 10:33:05.925450 accept_connection 3 returned 0 10:33:05.925605 Read 93 bytes 10:33:05.925695 Process 93 bytes request 10:33:05.925793 Got request: GET /verifiedserver HTTP/1.1 10:33:05.925869 Are-we-friendly question received 10:33:05.926295 Wrote request (93 bytes) input to log/2/server.input 10:33:05.926511 Identifying ourselves as friends 10:33:05.927136 Response sent (56 bytes) and written to log/2/server.response 10:33:05.927245 special request received, no persistency 10:33:05.927324 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 35710 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1109 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1109 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1109 test 1108...[FTP RETR PASV with PRET not supported] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1108 ../src/curl -q --output log/4/curl1108.out --include --trace-ascii log/4/trace1108 --trace-time ftp://127.0.0.1:42635/1108 --ftp-pret > log/4/stdout1108 2> log/4/stderr1108 1108: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1108 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1108 ../src/curl -q --output log/4/curl1108.out --include --trace-ascii log/4/trace1108 --trace-time ftp://127.0.0.1:42635/1108 --ftp-pret > log/4/stdout1108 2> log/4/stderr1108 === End of file commands.log === Start of file ftp_server.log 10:33:06.199127 ====> Client connect 10:33:06.200549 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:06.210526 < "USER anonymous" 10:33:06.210984 > "331 We are happy you popped in![CR][LF]" 10:33:06.214711 < "PASS ftp@example.com" 10:33:06.215298 > "230 Welcome you silly person[CR][LF]" 10:33:06.223262 < "PWD" 10:33:06.223726 > "257 "/" is current directory[CR][LF]" 10:33:06.228647 < "EPSV" 10:33:06.229077 ====> Passive DATA channel requested by client 10:33:06.229358 DATA sockfilt for passive data channel starting... 10:33:06.242698 DATA sockfilt for passive data channel started (pid 132192) 10:33:06.245770 DATA sockfilt for passive data channel listens on port 33279 10:33:06.247563 > "229 Entering Passive Mode (|||33279|)[LF]" 10:33:06.248028 Client has been notified that DATA conn will be accepted on port 33279 10:33:06.251329 Client connects to port 33279 10:33:06.251804 ====> Client established passive DATA connection on port 33279 10:33:06.252756 < "TYPE I" 10:33:06.253258 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:06.256271 < "SIZE verifiedserver" 10:33:06.256893 > "213 17[CR][LF]" 10:33:06.259378 < "RETR verifiedserver" 10:33:06.260008 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:06.261022 =====> Closing passive DATA connection... 10:33:06.261316 Server disconnects passive DATA connection 10:33:06.262445 Server disconnected passive DATA connection 10:33:06.262912 DATA sockfilt for passive data channel quits (pid 132192) 10:33:06.267368 DATA sockfilt for passive data channel quit (pid 132192) 10:33:06.267714 =====> Closed passive DATA connection 10:33:06.268110 > "226 File transfer complete[CR][LF]" 10:33:06.318310 < "QUIT" 10:33:06.318826 > "221 bye bye baby[CR][LF]" 10:33:06.326035 MAIN sockfilt said DISC 10:33:06.326680 ====> Client disconnected 10:33:06.327423 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:06.866992 ====> Client connect 10:33:06.869100 Received DATA (on stdin) 10:33:06.869415 > 160 bytes data, server => client 10:33:06.869612 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:06.869725 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:06.869819 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:06.872973 < 16 bytes data, client => server 10:33:06.873217 'USER anonymous\r\n' 10:33:06.881068 Received DATA (on stdin) 10:33:06.881326 > 33 bytes data, server => client 10:33:06.881474 '331 We are happy you popped in!\r\n' 10:33:06.882388 < 22 bytes data, client => server 10:33:06.882624 'PASS ftp@example.com\r\n' 10:33:06.890120 Received DATA (on stdin) 10:33:06.890351 > 30 bytes data, server => client 10:33:06.890438 '230 Welcome you silly person\r\n' 10:33:06.891050 < 5 bytes data, client => server 10:33:06.891258 'PWD\r\n' 10:33:06.892300 Received DATA (on stdin) 10:33:06.892473 > 30 bytes data, server => client 10:33:06.892563 '257 "/" is current directory\r\n' CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1110 ../src/curl -q --output log/7/curl1110.out --include --trace-ascii log/7/trace1110 --trace-time http://127.0.0.1:40129/1110?q=foobar#fragment > log/7/stdout1110 2> log/7/stderr1110 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1111 ../src/curl -q --output log/5/curl1111.out --include --trace-ascii log/5/trace1111 --trace-time http://127.0.0.1:41733/1111?q=foobar#fragment#fragment2 > log/5/stdout1111 2> log/5/stderr1111 10:33:06.893219 < 6 bytes data, client => server 10:33:06.893447 'EPSV\r\n' 10:33:06.915042 Received DATA (on stdin) 10:33:06.915266 > 38 bytes data, server => client 10:33:06.915529 '229 Entering Passive Mode (|||33279|)\n' 10:33:06.919421 < 8 bytes data, client => server 10:33:06.919655 'TYPE I\r\n' 10:33:06.922506 Received DATA (on stdin) 10:33:06.922717 > 33 bytes data, server => client 10:33:06.922818 '200 I modify TYPE as you wanted\r\n' 10:33:06.923624 < 21 bytes data, client => server 10:33:06.923818 'SIZE verifiedserver\r\n' 10:33:06.925879 Received DATA (on stdin) 10:33:06.926099 > 8 bytes data, server => client 10:33:06.926213 '213 17\r\n' 10:33:06.926924 < 21 bytes data, client => server 10:33:06.927105 'RETR verifiedserver\r\n' 10:33:06.930259 Received DATA (on stdin) 10:33:06.930452 > 29 bytes data, server => client 10:33:06.930608 '150 Binary junk (17 bytes).\r\n' 10:33:06.936707 Received DATA (on stdin) 10:33:06.936931 > 28 bytes data, server => client 10:33:06.937068 '226 File transfer complete\r\n' 10:33:06.980448 < 6 bytes data, client => server 10:33:06.980716 'QUIT\r\n' 10:33:06.987846 Received DATA (on stdin) 10:33:06.988111 > 18 bytes data, server => client 10:33:06.988244 '221 bye bye baby\r\n' 10:33:06.994146 ====> Client disconnect 10:33:06.995289 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:06.909248 Running IPv4 version 10:33:06.909881 Listening on port 33279 10:33:06.910590 Wrote pid 132192 to log/4/server/ftp_sockdata.pid 10:33:06.910823 Received PING (on stdin) 10:33:06.911989 Received PORT (on stdin) 10:33:06.919222 ====> Client connect 10:33:06.929598 Received DATA (on stdin) 10:33:06.929846 > 17 bytes data, server => client 10:33:06.929963 'WE ROOLZ: 79516\r\n' 10:33:06.930363 Received DISC (on stdin) 10:33:06.930512 ====> Client forcibly disconnected 10:33:06.933952 Received QUIT (on stdin) 10:33:06.934377 quits 10:33:06.934937 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PRET 550 unknown command Testnum 1108 === End of file server.cmd === Start of file valgrind1108 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1108 test 1110...[HTTP GET with URL that contains a fragment after the query part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1110 ../src/curl -q --output log/7/curl1110.out --include --trace-ascii log/7/trace1110 --trace-time http://127.0.0.1:40129/1110?q=foobar#fragment > log/7/stdout1110 2> log/7/stderr1110 1110: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1110 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1110 ../src/curl -q --output log/7/curl1110.out --include --trace-ascii log/7/trace1110 --trace-time http://127.0.0.1:40129/1110?q=foobar#fragment > log/7/stdout1110 2> log/7/stderr1110 === End of file commands.log === Start of file http_server.log 10:33:06.351960 ====> Client connect 10:33:06.352317 accept_connection 3 returned 4 10:33:06.352524 accept_connection 3 returned 0 10:33:06.352660 Read 93 bytes 10:33:06.352737 Process 93 bytes request 10:33:06.352821 Got request: GET /verifiedserver HTTP/1.1 10:33:06.352905 Are-we-friendly question received 10:33:06.353272 Wrote request (93 bytes) input to log/7/server.input 10:33:06.353508 Identifying ourselves as friends 10:33:06.358249 Response sent (56 bytes) and written to log/7/server.response 10:33:06.358491 special request received, no persistency 10:33:06.358625 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 57000 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1110 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1110 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1110 test 1111...[HTTP GET with URL whose fragment contains a # (which is illegal)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1111 ../src/curl -q --output log/5/curl1111.out --include --trace-ascii log/5/trace1111 --trace-time http://127.0.0.1:41733/1111?q=foobar#fragment#fragment2 > log/5/stdout1111 2> log/5/stderr1111 1111: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1111 === Start of file cCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1115 ../src/curl -q --output log/1/curl1115.out --include --trace-ascii log/1/trace1115 --trace-time http://127.0.0.1:36129/1115 > log/1/stdout1115 2> log/1/stderr1115 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1113 ./libtest/libtests lib574 "ftp://127.0.0.1:42977/fully_simulated/DOS/*.txt" > log/8/stdout1113 2> log/8/stderr1113 ommands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1111 ../src/curl -q --output log/5/curl1111.out --include --trace-ascii log/5/trace1111 --trace-time http://127.0.0.1:41733/1111?q=foobar#fragment#fragment2 > log/5/stdout1111 2> log/5/stderr1111 === End of file commands.log === Start of file http_server.log 10:33:07.456136 ====> Client connect 10:33:07.456548 accept_connection 3 returned 4 10:33:07.456834 accept_connection 3 returned 0 10:33:07.457027 Read 93 bytes 10:33:07.457152 Process 93 bytes request 10:33:07.457284 Got request: GET /verifiedserver HTTP/1.1 10:33:07.457386 Are-we-friendly question received 10:33:07.457718 Wrote request (93 bytes) input to log/5/server.input 10:33:07.458400 Identifying ourselves as friends 10:33:07.459423 Response sent (56 bytes) and written to log/5/server.response 10:33:07.459562 special request received, no persistency 10:33:07.459647 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 48974 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1111 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1111 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1111 test 1115...[HTTP GET with unexpected 1xx response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1115 ../src/curl -q --output log/1/curl1115.out --include --trace-ascii log/1/trace1115 --trace-time http://127.0.0.1:36129/1115 > log/1/stdout1115 2> log/1/stderr1115 1115: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1115 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1115 ../src/curl -q --output log/1/curl1115.out --include --trace-ascii log/1/trace1115 --trace-time http://127.0.0.1:36129/1115 > log/1/stdout1115 2> log/1/stderr1115 === End of file commands.log === Start of file http_server.log 10:33:06.762504 ====> Client connect 10:33:06.762809 accept_connection 3 returned 4 10:33:06.762959 accept_connection 3 returned 0 10:33:06.763067 Read 93 bytes 10:33:06.763143 Process 93 bytes request 10:33:06.763229 Got request: GET /verifiedserver HTTP/1.1 10:33:06.763297 Are-we-friendly question received 10:33:06.763503 Wrote request (93 bytes) input to log/1/server.input 10:33:06.763645 Identifying ourselves as friends 10:33:06.764253 Response sent (56 bytes) and written to log/1/server.response 10:33:06.764365 special request received, no persistency 10:33:06.764434 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42404 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1115 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1115 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1115 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1116 ../src/curl -q --output log/6/curl1116.out --include --trace-ascii log/6/trace1116 --trace-time http://127.0.0.1:33363/1116 -D log/6/heads1116 > log/6/stdout1116 2> log/6/stderr1116 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1118 ../src/curl -q --output log/4/curl1118.out --include --trace-ascii log/4/trace1118 --trace-time http://127.0.0.1:36757?email=name@example.com/1118 > log/4/stdout1118 2> log/4/stderr1118 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1114 ./libtest/libtests lib576 ftp://127.0.0.1:33831/fully_simulated/DOS/* > log/3/stdout1114 2> log/3/stderr1114 test 1113...[FTP wildcard download - changed fnmatch, 2x perform (DOS LIST response)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1113 ./libtest/libtests lib574 "ftp://127.0.0.1:42977/fully_simulated/DOS/*.txt" > log/8/stdout1113 2> log/8/stderr1113 1113: stdout FAILED: --- log/8/check-expected 2025-09-11 10:33:08.013806484 +0000 +++ log/8/check-generated 2025-09-11 10:33:08.009806404 +0000 @@ -1,10 +0,0 @@ -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] -This file should have permissions 444[LF] -This file should have permissions 666[LF] -This file should have permissions 777[LF] -This is content of file "file.txt"[LF] -Some junk ;-) This file does not really exist.[LF] == Contents of files in the log/8/ dir after test 1113 === Start of file check-expected This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] This file should have permissions 444[LF] This file should have permissions 666[LF] This file should have permissions 777[LF] This is content of file "file.txt"[LF] Some junk ;-) This file does not really exist.[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1113 ./libtest/libtests lib574 "ftp://127.0.0.1:42977/fully_simulated/DOS/*.txt" > log/8/stdout1113 2> log/8/stderr1113 === End of file commands.log === Start of file ftp_server.log 10:33:07.002884 ====> Client connect 10:33:07.007111 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:07.010450 < "USER anonymous" 10:33:07.011134 > "331 We are happy you popped in![CR][LF]" 10:33:07.014471 < "PASS ftp@example.com" 10:33:07.015158 > "230 Welcome you silly person[CR][LF]" 10:33:07.020640 < "PWD" 10:33:07.023302 > "257 "/" is current directory[CR][LF]" 10:33:07.030191 < "EPSV" 10:33:07.030643 ====> Passive DATA channel requested by client 10:33:07.031075 DATA sockfilt for passive data channel starting... 10:33:07.048342 DATA sockfilt for passive data channel started (pid 132592) 10:33:07.049659 DATA sockfilt for passive data channel listens on port 44507 10:33:07.050239 > "229 Entering Passive Mode (|||44507|)[LF]" 10:33:07.050487 Client has been notified that DATA conn will be accepted on port 44507 10:33:07.052605 Client connects to port 44507 10:33:07.052970 ====> Client established passive DATA connection on port 44507 10:33:07.054048 < "TYPE I" 10:33:07.054537 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:07.057383 < "SIZE verifiedserver" 10:33:07.058098 > "213 17[CR][LF]" 10:33:07.061037 < "RETR verifiedserver" 10:33:07.061805 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:07.062849 =====> Closing passive DATA connection... 10:33:07.063246 Server disconnects passive DATA connection 10:33:07.068373 Server disconnected passive DATA connection 10:33:07.068776 DATA sockfilt for passive data channel quits (pid 132592) 10:33:07.072489 DATA sockfilt for passive data channel quit (pid 132592) 10:33:07.072945 =====> Closed passive DATA connection 10:33:07.074255 > "226 File transfer complete[CR][LF]" 10:33:07.109089 < "QUIT" 10:33:07.109630 > "221 bye bye baby[CR][LF]" 10:33:07.113125 MAIN sockfilt said DISC 10:33:07.113708 ====> Client disconnected 10:33:07.114482 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:06.669899 ====> Client connect 10:33:06.675124 Received DATA (on stdin) 10:33:06.675411 > 160 bytes data, server => client 10:33:06.675536 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:06.675636 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:06.675735 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:06.677321 < 16 bytes data, client => server 10:33:06.677567 'USER anonymous\r\n' 10:33:06.680371 Received DATA (on stdin) 10:33:06.680649 > 33 bytes data, server => client 10:33:06.680762 '331 We are happy you popped in!\r\n' 10:33:06.681677 < 22 bytes data, client => server 10:33:06.681904 'PASS ftp@example.com\r\n' 10:33:06.684398 Received DATA (on stdin) 10:33:06.684672 > 30 bytes data, server => client 10:33:06.684794 '230 Welcome you silly person\r\n' 10:33:06.687739 < 5 bytes data, client => server 10:33:06.688031 'PWD\r\n' 10:33:06.689930 Received DATA (on stdin) 10:33:06.690321 > 30 bytes data, server => client 10:33:06.692813 '257 "/" is current directory\r\n' 10:33:06.695266 < 6 bytes data, client => server 10:33:06.695512 'EPSV\r\n' 10:33:06.718798 Received DATA (on stdin) 10:33:06.718995 > 38 bytes data, server => client 10:33:06.719100 '229 Entering Passive Mode (|||44507|)\n' 10:33:06.720694 < 8 bytes data, client => server 10:33:06.720839 'TYPE I\r\n' 10:33:06.723436 Received DATA (on stdin) 10:33:06.723648 > 33 bytes data, server => client 10:33:06.723774 '200 I modify TYPE as you wanted\r\n' 10:33:06.724526 < 21 bytes data, client => server 10:33:06.724717 'SIZE verifiedserver\r\n' 10:33:06.727074 Received DATA (on stdin) 10:33:06.727266 > 8 bytes data, server => client 10:33:06.727362 '213 17\r\n' 10:33:06.728626 < 21 bytes data, client => server 10:33:06.728876 'RETR verifiedserver\r\n' 10:33:06.732166 Received DATA (on stdin) 10:33:06.732421 > 29 bytes data, server => client 10:33:06.732638 '150 Binary junk (17 bytes).\r\n' 10:33:06.741945 Received DATA (on stdin) 10:33:06.742441 > 28 bytes data, server => client 10:33:06.743181 '226 File transfer complete\r\n' 10:33:06.776971 < 6 bytes data, client => server 10:33:06.777219 'QUIT\r\n' 10:33:06.778254 Received DATA (on stdin) 10:33:06.778378 > 18 bytes data, server => client 10:33:06.778458 '221 bye bye baby\r\n' 10:33:06.781036 ====> Client disconnect 10:33:06.783543 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:07.715241 Running IPv4 version 10:33:07.715790 Listening on port 44507 10:33:07.716293 Wrote pid 132592 to log/8/server/ftp_sockdata.pid 10:33:07.716482 Received PING (on stdin) 10:33:07.717433 Received PORT (on stdin) 10:33:07.720376 ====> Client connect 10:33:07.734132 Received DATA (on stdin) 10:33:07.734390 > 17 bytes data, server => client 10:33:07.734527 'WE ROOLZ: 86552\r\n' 10:33:07.734968 Received DISC (on stdin) 10:33:07.735193 ====> Client forcibly disconnected 10:33:07.737823 Received QUIT (on stdin) 10:33:07.738059 quits 10:33:07.738588 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1113 === End of file server.cmd === Start of file valgrind1113 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1117 ../src/curl -q --include --trace-ascii log/2/trace1117 --trace-time -r 10-22 http://127.0.0.1:43789/want/1117 http://127.0.0.1:43789/wantmore/11170001 > log/2/stdout1117 2> log/2/stderr1117 valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1113 test 1114...[FTP wildcard download - skip/correctness/FNMATCH_FUNCTION (DOS)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1114 ./libtest/libtests lib576 ftp://127.0.0.1:33831/fully_simulated/DOS/* > log/3/stdout1114 2> log/3/stderr1114 1114: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:08.069807598 +0000 +++ log/3/check-generated 2025-09-11 10:33:08.069807598 +0000 @@ -1,96 +0,0 @@ -=============================================================[LF] -Remains: 12[LF] -Filename: .[LF] -Size: 0B[LF] -Time: 04-27-10 05:12AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 11[LF] -Filename: ..[LF] -Size: 0B[LF] -Time: 04-23-10 03:12AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 10[LF] -Filename: chmod1[LF] -Size: 38B[LF] -Time: 01-11-10 10:00AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 444[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 9[LF] -Filename: chmod2[LF] -Size: 38B[LF] -Time: 02-01-10 08:00AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 666[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 8[LF] -Filename: chmod3[LF] -Size: 38B[LF] -Time: 02-01-10 08:00AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This file should have permissions 777[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 7[LF] -Filename: chmod4[LF] -Size: 0B[LF] -Time: 05-04-10 04:31AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 6[LF] -Filename: chmod5[LF] -Size: 0B[LF] -Time: 05-04-10 04:31AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 5[LF] -Filename: empty_file.dat[LF] -Size: 0B[LF] -Time: 04-27-10 11:01AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 4[LF] -Filename: file.txt[LF] -Size: 35B[LF] -Time: 04-27-10 11:01AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -This is content of file "file.txt"[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 3[LF] -Filename: .NeXT[LF] -Size: 0B[LF] -Time: 01-23-05 02:05AM[LF] -Filetype: directory[LF] -=============================================================[LF] -Remains: 2[LF] -Filename: someothertext.txt[LF] -Size: 47B[LF] -Time: 04-27-10 11:01AM[LF] -Filetype: regular file[LF] -Content:[LF] --------------------------------------------------------------[LF] -# THIS CONTENT WAS SKIPPED IN CHUNK_BGN CALLBACK #[LF] --------------------------------------------------------------[LF] -=============================================================[LF] -Remains: 1[LF] -Filename: weirddir.txt[LF] -Size: 0B[LF] -Time: 04-23-10 03:12AM[LF] -Filetype: directory[LF] -=============================================================[LF] == Contents of files in the log/3/ dir after test 1114 === Start of file check-expected =============================================================[LF] Remains: 12[LF] Filename: .[LF] Size: 0B[LF] Time: 04-27-10 05:12AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 11[LF] Filename: ..[LF] Size: 0B[LF] Time: 04-23-10 03:12AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 10[LF] Filename: chmod1[LF] Size: 38B[LF] Time: 01-11-10 10:00AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 444[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 9[LF] Filename: chmod2[LF] Size: 38B[LF] Time: 02-01-10 08:00AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 666[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 8[LF] Filename: chmod3[LF] Size: 38B[LF] Time: 02-01-10 08:00AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This file should have permissions 777[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 7[LF] Filename: chmod4[LF] Size: 0B[LF] Time: 05-04-10 04:31AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 6[LF] Filename: chmod5[LF] Size: 0B[LF] Time: 05-04-10 04:31AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 5[LF] Filename: empty_file.dat[LF] Size: 0B[LF] Time: 04-27-10 11:01AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 4[LF] Filename: file.txt[LF] Size: 35B[LF] Time: 04-27-10 11:01AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] This is content of file "file.txt"[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 3[LF] Filename: .NeXT[LF] Size: 0B[LF] Time: 01-23-05 02:05AM[LF] Filetype: directory[LF] =============================================================[LF] Remains: 2[LF] Filename: someothertext.txt[LF] Size: 47B[LF] Time: 04-27-10 11:01AM[LF] Filetype: regular file[LF] Content:[LF] -------------------------------------------------------------[LF] # THIS CONTENT WAS SKIPPED IN CHUNK_BGN CALLBACK #[LF] -------------------------------------------------------------[LF] =============================================================[LF] Remains: 1[LF] Filename: weirddir.txt[LF] Size: 0B[LF] Time: 04-23-10 03:12AM[LF] Filetype: directory[LF] =============================================================[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1114 ./libtest/libtests lib576 ftp://127.0.0.1:33831/fully_simulated/DOS/* > log/3/stdout1114 2> log/3/stderr1114 === End of file commands.log === Start of file ftp_server.log 10:33:07.037126 ====> Client connect 10:33:07.041567 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:07.047408 < "USER anonymous" 10:33:07.048786 > "331 We are happy you popped in![CR][LF]" 10:33:07.050236 < "PASS ftp@example.com" 10:33:07.051469 > "230 Welcome you silly person[CR][LF]" 10:33:07.052925 < "PWD" 10:33:07.053985 > "257 "/" is current directory[CR][LF]" 10:33:07.056912 < "EPSV" 10:33:07.057392 ====> Passive DATA channel requested by client 10:33:07.057831 DATA sockfilt for passive data channel starting... 10:33:07.069727 DATA sockfilt for passive data channel started (pid 132598) 10:33:07.073982 DATA sockfilt for passive data channel listens on port 42207 10:33:07.074524 > "229 Entering Passive Mode (|||42207|)[LF]" 10:33:07.074824 Client has been notified that DATA conn will be accepted on port 42207 10:33:07.083652 Client connects to port 42207 10:33:07.084158 ====> Client established passive DATA connection on port 42207 10:33:07.085218 < "TYPE I" 10:33:07.086618 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:07.088479 < "SIZE verifiedserver" 10:33:07.088977 > "213 17[CR][LF]" 10:33:07.094394 < "RETR verifiedserver" 10:33:07.094916 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:07.095747 =====> Closing passive DATA connection... 10:33:07.096014 Server disconnects passive DATA connection 10:33:07.101663 Server disconnected passive DATA connection 10:33:07.102111 DATA sockfilt for passive data channel quits (pid 132598) 10:33:07.107136 DATA sockfilt for passive data channel quit (pid 132598) 10:33:07.107489 =====> Closed passive DATA connection 10:33:07.107839 > "226 File transfer complete[CR][LF]" 10:33:07.143476 < "QUIT" 10:33:07.143969 > "221 bye bye baby[CR][LF]" 10:33:07.150162 MAIN sockfilt said DISC 10:33:07.150623 ====> Client disconnected 10:33:07.151203 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:06.704434 ====> Client connect 10:33:06.710689 Received DATA (on stdin) 10:33:06.710931 > 160 bytes data, server => client 10:33:06.711061 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:06.711152 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:06.711232 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:06.714599 < 16 bytes data, client => server 10:33:06.714874 'USER anonymous\r\n' 10:33:06.716463 Received DATA (on stdin) 10:33:06.716613 > 33 bytes data, server => client 10:33:06.716782 '331 We are happy you popped in!\r\n' 10:33:06.717463 < 22 bytes data, client => server 10:33:06.717646 'PASS ftp@example.com\r\n' 10:33:06.719179 Received DATA (on stdin) 10:33:06.719333 > 30 bytes data, server => client 10:33:06.719518 '230 Welcome you silly person\r\n' 10:33:06.720211 < 5 bytes data, client => server 10:33:06.720421 'PWD\r\n' 10:33:06.721933 Received DATA (on stdin) 10:33:06.723146 > 30 bytes data, server => client 10:33:06.723256 '257 "/" is current directory\r\n' 10:33:06.724117 < 6 bytes data, client => server 10:33:06.724393 'EPSV\r\n' 10:33:06.746133 Received DATA (on stdin) 10:33:06.746347 > 38 bytes data, server => client 10:33:06.746445 '229 Entering Passive Mode (|||42207|)\n' 10:33:06.751242 < 8 bytes data, client => server 10:33:06.751495 'TYPE I\r\n' 10:33:06.755161 Received DATA (on stdin) 10:33:06.755433 > 33 bytes data, server => client 10:33:06.755550 '200 I modify TYPE as you wanted\r\n' 10:33:06.756256 < 21 bytes data, client => server 10:33:06.756445 'SIZE verifiedserver\r\n' 10:33:06.757516 Received DATA (on stdin) 10:33:06.757696 > 8 bytes data, server => client 10:33:06.757795 '213 17\r\n' 10:33:06.758701 < 21 bytes data, client => server 10:33:06.758907 'RETR verifiedserver\r\n' 10:33:06.763479 Received DATA (on stdin) 10:33:06.763623 > 29 bytes data, server => client 10:33:06.763707 '150 Binary junk (17 bytes).\r\n' 10:33:06.777916 Received DATA (on stdin) 10:33:06.778244 > 28 bytes data, server => client 10:33:06.778370 '226 File transfer complete\r\n' 10:33:06.807124 < 6 bytes data, client => server 10:33:06.807346 'QUIT\r\n' 10:33:06.813488 Received DATA (on stdin) 10:33:06.813751 > 18 bytes data, server => client 10:33:06.813866 '221 bye bye baby\r\n' 10:33:06.818283 ====> Client disconnect 10:33:06.819185 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:07.735975 Running IPv4 version 10:33:07.736611 Listening on port 42207 10:33:07.737080 Wrote pid 132598 to log/3/server/ftp_sockdata.pid 10:33:07.737581 Received PING (on stdin) 10:33:07.739162 Received PORT (on stdin) 10:33:07.751837 ====> Client connect 10:33:07.764111 Received DATA (on stdin) 10:33:07.764281 > 17 bytes data, server => client 10:33:07.764373 'WE ROOLZ: 79555\r\n' 10:33:07.766415 Received DISC (on stdin) 10:33:07.766707 ====> Client forcibly disconnected 10:33:07.771040 Received QUIT (on stdin) 10:33:07.771248 quits 10:33:07.773797 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1114 === End of file server.cmd === Start of file valgrind1114 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1114 test 1118...[URL without slash and @-letter in query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1118 ../src/curl -q --output log/4/curl1118.out --include --trace-ascii log/4/trace1118 --trace-time http://127.0.0.1:36757?email=name@example.com/1118 > log/4/stdout1118 2> log/4/stderr1118 1118: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1118 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1118 ../src/curl -q --output log/4/curl1118.out --include --trace-ascii log/4/trace1118 --trace-time http://127.0.0.1:36757?email=name@example.com/1118 > log/4/stdout1118 2> log/4/stderr1118 === End of file commands.log === Start of file http_server.log 10:33:07.962343 ====> Client connect 10:33:07.962686 accept_connection 3 returned 4 10:33:07.962866 accept_connection 3 returned 0 10:33:07.962991 Read 93 bytes 10:33:07.963066 Process 93 bytes request 10:33:07.963147 Got request: GET /verifiedserver HTTP/1.1 10:33:07.963212 Are-we-friendly question received 10:33:07.963424 Wrote request (93 bytes) input to log/4/server.input 10:33:07.963598 Identifying ourselves as friends 10:33:07.964312 Response sent (56 bytes) and written to log/4/server.response 10:33:07.964468 special request received, no persistency 10:33:07.964556 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52170 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1118 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1118 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1118 test 1116...[HTTP GET with chunked trailer without Trailer:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1116 ../src/curl -q --output log/6/curl1116.out --include --trace-ascii log/6/trace1116 --trace-time http://127.0.0.1:33363/1116 -D log/6/heads1116 > log/6/stdout1116 2> log/6/stderr1116 1116: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1116 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1116 ../src/curl -q --output log/6/curl1116.out --include --trace-ascii log/6/trace1116 --trace-time http://127.0.0.1:33363/1116 -D log/6/heads1116 > log/6/stdout1116 2> log/6/stderr1116 === End of file commands.log === Start of file http_server.log 10:33:06.846308 ====> Client connect 10:33:06.846624 accept_connection 3 returned 4 10:33:06.846815 accept_connection 3 returned 0 10:33:06.846995 Read 93 bytes 10:33:06.847108 Process 93 bytes request 10:33:06.847204 Got request: GET /verifiedserver HTTP/1.1 10:33:06.847286 Are-we-friendly question received 10:33:06.847523 Wrote request (93 bytes) input to log/6/server.input 10:33:06.847696 Identifying ourselves as friends 10:33:06.848451 Response sent (56 bytes) and written to log/6/server.response 10:33:06.848640 special request received, no persistency 10:33:06.848724 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 48256 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1116 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1116 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1116 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1120 ../src/curl -q --output log/5/curl1120.out --include --trace-ascii log/5/trace1120 --trace-time ftp://127.0.0.1:40501/a/path/1120 > log/5/stdout1120 2> log/5/stderr1120 test 1117...[HTTP with invalid range then another URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1117 ../src/curl -q --include --trace-ascii log/2/trace1117 --trace-time -r 10-22 http://127.0.0.1:43789/want/1117 http://127.0.0.1:43789/wantmore/11170001 > log/2/stdout1117 2> log/2/stderr1117 1117: stdout FAILED: --- log/2/check-expected 2025-09-11 10:33:08.145809111 +0000 +++ log/2/check-generated 2025-09-11 10:33:08.145809111 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 416 Requested Range Not Satisfiable[CR][LF] -Date: Tue, 09 Sep 2010 14:49:00 GMT[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Length: 115[CR][LF] -[CR][LF] -This is a long error message that is large enough that the test server is[LF] -guaranteed to split it into two packets.[LF] -HTTP/1.1 206 Partial Content[CR][LF] -Date: Tue, 09 Sep 2010 14:49:01 GMT[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Range: bytes 10-18/155[CR][LF] -Content-Length: 13[CR][LF] -Content-Type: text/plain[CR][LF] -[CR][LF] -partial body[LF] == Contents of files in the log/2/ dir after test 1117 === Start of file check-expected HTTP/1.1 416 Requested Range Not Satisfiable[CR][LF] Date: Tue, 09 Sep 2010 14:49:00 GMT[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Length: 115[CR][LF] [CR][LF] This is a long error message that is large enough that the test server is[LF] guaranteed to split it into two packets.[LF] HTTP/1.1 206 Partial Content[CR][LF] Date: Tue, 09 Sep 2010 14:49:01 GMT[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Range: bytes 10-18/155[CR][LF] Content-Length: 13[CR][LF] Content-Type: text/plain[CR][LF] [CR][LF] partial body[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1117 ../src/curl -q --include --trace-ascii log/2/trace1117 --trace-time -r 10-22 http://127.0.0.1:43789/want/1117 http://127.0.0.1:43789/wantmore/11170001 > log/2/stdout1117 2> log/2/stderr1117 === End of file commands.log === Start of file http_server.log 10:33:06.878393 ====> Client connect 10:33:06.878902 accept_connection 3 returned 4 10:33:06.879096 accept_connection 3 returned 0 10:33:06.879226 Read 93 bytes 10:33:06.879338 Process 93 bytes request 10:33:06.879431 Got request: GET /verifiedserver HTTP/1.1 10:33:06.879502 Are-we-friendly question received 10:33:06.879721 Wrote request (93 bytes) input to log/2/server.input 10:33:06.879980 Identifying ourselves as friends 10:33:06.880746 Response sent (56 bytes) and written to log/2/server.response 10:33:06.881055 special request received, no persistency 10:33:06.881153 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 35720 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd writedelay: 100 Testnum 1117 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1117 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1117 test 1120...[FTP with 421 timeout response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1120 ../src/curl -q --output log/5/curl1120.out --include --trace-ascii log/5/trace1120 --trace-time ftp://127.0.0.1:40501/a/path/1120 > log/5/stdout1120 2> log/5/stderr1120 1120: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1120 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1120 ../src/curl -q --output log/5/curl1120.out --include --trace-ascii log/5/trace1120 --trace-time ftp://127.0.0.1:40501/a/path/1120 > log/5/stdout1120 2> log/5/stderr1120 === End of file commands.log === Start of file ftp_server.log 10:33:07.689123 ====> Client connect 10:33:07.691062 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:07.704852 < "USER anonymous" 10:33:07.705633 > "331 We are happy you popped in![CR][LF]" 10:33:07.707757 < "PASS ftp@example.com" 10:33:07.708620 > "230 Welcome you silly person[CR][LF]" 10:33:07.714954 < "PWD" 10:33:07.715833 > "257 "/" is current directory[CR][LF]" 10:33:07.718801 < "EPSV" 10:33:07.719306 ====> Passive DATA channel requested by client 10:33:07.719572 DATA sockfilt for passive data channel starting... 10:33:07.733949 DATA sockfilt for passive data channel started (pid 132945) 10:33:07.736132 DATA sockfilt for passive data channel listens on port 37683 10:33:07.736806 > "229 Entering Passive Mode (|||37683|)[LF]" 10:33:07.737107 Client has been notified that DATA conn will be accepted on port 37683 10:33:07.743245 Client connects to port 37683 10:33:07.743859 ====> Client established passive DATA connection on port 37683 10:33:07.745277 < "TYPE I" 10:33:07.746029 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:07.753823 < "SIZE verifiedserver" 10:33:07.754549 > "213 18[CR][LF]" 10:33:07.757441 < "RETR verifiedserver" 10:33:07.758335 > "150 Binary junk (18 bytes).[CR][LF]" 10:33:07.759373 =====> Closing passive DATA connection... 10:33:07.759758 Server disconnects passive DATA connection 10:33:07.767028 Server disconnected passive DATA connection 10:33:07.767576 DATA sockfilt for passive data channel quits (pid 132945) 10:33:07.770562 DATA sockfilt for passive data channel quit (pid 132945) 10:33:07.770987 =====> Closed passive DATA connection 10:33:07.771478 > "226 File transfer complete[CR][LF]" 10:33:07.807829 < "QUIT" 10:33:07.808484 > "221 bye bye baby[CR][LF]" 10:33:07.817695 MAIN sockfilt said DISC 10:33:07.818290 ====> Client disconnected 10:33:07.818991 Awaiting input === End of file ftp_server.log === StCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1121 ../src/curl -q --output log/1/curl1121.out --include --trace-ascii log/1/trace1121 --trace-time -H "Host: host1" -H "Host: host2" -H "Host: host3" http://127.0.0.1:36129/1121 > log/1/stdout1121 2> log/1/stderr1121 art of file ftp_sockctrl.log 10:33:08.355286 ====> Client connect 10:33:08.362838 Received DATA (on stdin) 10:33:08.363129 > 160 bytes data, server => client 10:33:08.363273 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:08.363388 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:08.363487 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:08.369496 < 16 bytes data, client => server 10:33:08.369800 'USER anonymous\r\n' 10:33:08.374127 Received DATA (on stdin) 10:33:08.374417 > 33 bytes data, server => client 10:33:08.374548 '331 We are happy you popped in!\r\n' 10:33:08.375291 < 22 bytes data, client => server 10:33:08.375583 'PASS ftp@example.com\r\n' 10:33:08.378910 Received DATA (on stdin) 10:33:08.379190 > 30 bytes data, server => client 10:33:08.379330 '230 Welcome you silly person\r\n' 10:33:08.382464 < 5 bytes data, client => server 10:33:08.382794 'PWD\r\n' 10:33:08.384549 Received DATA (on stdin) 10:33:08.384858 > 30 bytes data, server => client 10:33:08.385025 '257 "/" is current directory\r\n' 10:33:08.385912 < 6 bytes data, client => server 10:33:08.386271 'EPSV\r\n' 10:33:08.405350 Received DATA (on stdin) 10:33:08.405559 > 38 bytes data, server => client 10:33:08.405662 '229 Entering Passive Mode (|||37683|)\n' 10:33:08.408127 < 8 bytes data, client => server 10:33:08.408321 'TYPE I\r\n' 10:33:08.414604 Received DATA (on stdin) 10:33:08.414838 > 33 bytes data, server => client 10:33:08.414972 '200 I modify TYPE as you wanted\r\n' 10:33:08.418576 < 21 bytes data, client => server 10:33:08.418829 'SIZE verifiedserver\r\n' 10:33:08.423127 Received DATA (on stdin) 10:33:08.423363 > 8 bytes data, server => client 10:33:08.423462 '213 18\r\n' 10:33:08.424314 < 21 bytes data, client => server 10:33:08.424547 'RETR verifiedserver\r\n' 10:33:08.428655 Received DATA (on stdin) 10:33:08.428875 > 29 bytes data, server => client 10:33:08.428979 '150 Binary junk (18 bytes).\r\n' 10:33:08.442225 Received DATA (on stdin) 10:33:08.442514 > 28 bytes data, server => client 10:33:08.442631 '226 File transfer complete\r\n' 10:33:08.475451 < 6 bytes data, client => server 10:33:08.475706 'QUIT\r\n' 10:33:08.477092 Received DATA (on stdin) 10:33:08.477351 > 18 bytes data, server => client 10:33:08.477478 '221 bye bye baby\r\n' 10:33:08.482489 ====> Client disconnect 10:33:08.486884 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:07.400606 Running IPv4 version 10:33:07.401307 Listening on port 37683 10:33:07.401737 Wrote pid 132945 to log/5/server/ftp_sockdata.pid 10:33:07.402056 Received PING (on stdin) 10:33:07.403857 Received PORT (on stdin) 10:33:07.407695 ====> Client connect 10:33:07.434406 Received DATA (on stdin) 10:33:07.434669 > 18 bytes data, server => client 10:33:07.434785 'WE ROOLZ: 131615\r\n' 10:33:07.435159 Received DISC (on stdin) 10:33:07.435375 ====> Client forcibly disconnected 10:33:07.436661 Received QUIT (on stdin) 10:33:07.436907 quits 10:33:07.437404 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY CWD 421 Timeout Testnum 1120 === End of file server.cmd === Start of file valgrind1120 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1120 test 1121...[HTTP multiple provided Host: headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1121 ../src/curl -q --output log/1/curl1121.out --include --trace-ascii log/1/trace1121 --trace-time -H "Host: host1" -H "Host: host2" -H "Host: host3" http://127.0.0.1:36129/1121 > log/1/stdout1121 2> log/1/stderr1121 1121: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1121 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1121 ../src/curl -q --output log/1/curl1121.out --include --trace-ascii log/1/trace1121 --trace-time -H "Host: host1" -H "Host: host2" -H "Host: host3" http://127.0.0.1:36129/1121 > log/1/stdout1121 2> log/1/stderr1121 === End of file commands.log === Start of file http_server.log 10:33:07.721071 ====> Client connect 10:33:07.721381 accept_connection 3 returned 4 10:33:07.721570 accept_connection 3 returned 0 10:33:07.721686 Read 93 bytes 10:33:07.721763 Process 93 bytes request 10:33:07.721841 Got request: GET /verifiedserver HTTP/1.1 10:33:07.721906 Are-we-friendly question received 10:33:07.722214 Wrote request (93 bytes) input to log/1/server.input 10:33:07.722401 Identifying ourselves as friends 10:33:07.723071 Response sent (56 bytes) and written to log/1/server.response 10:33:07.723194 special request received, no persistency 10:33:07.723254 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42416 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1121 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1121 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to iCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1122 ../src/curl -q --output log/8/curl1122.out --include --trace-ascii log/8/trace1122 --trace-time http://127.0.0.1:36007/1122 --tr-encoding > log/8/stdout1122 2> log/8/stderr1122 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1124 ../src/curl -q --output log/2/curl1124.out --include --trace-ascii log/2/trace1124 --trace-time http://127.0.0.1:43789/1124 --tr-encoding > log/2/stdout1124 2> log/2/stderr1124 nstall for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1121 test 1122...[HTTP GET gzip transfer-encoded content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1122 ../src/curl -q --output log/8/curl1122.out --include --trace-ascii log/8/trace1122 --trace-time http://127.0.0.1:36007/1122 --tr-encoding > log/8/stdout1122 2> log/8/stderr1122 1122: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1122 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1122 ../src/curl -q --output log/8/curl1122.out --include --trace-ascii log/8/trace1122 --trace-time http://127.0.0.1:36007/1122 --tr-encoding > log/8/stdout1122 2> log/8/stderr1122 === End of file commands.log === Start of file http_server.log 10:33:07.848255 ====> Client connect 10:33:07.848573 accept_connection 3 returned 4 10:33:07.848753 accept_connection 3 returned 0 10:33:07.848869 Read 93 bytes 10:33:07.848951 Process 93 bytes request 10:33:07.849033 Got request: GET /verifiedserver HTTP/1.1 10:33:07.849099 Are-we-friendly question received 10:33:07.849304 Wrote request (93 bytes) input to log/8/server.input 10:33:07.849446 Identifying ourselves as friends 10:33:07.850071 Response sent (56 bytes) and written to log/8/server.response 10:33:07.850195 special request received, no persistency 10:33:07.850255 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57340 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1122 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1122 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1122 test 1124...[HTTP GET gzip+chunked transfer-encoded content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1124 ../src/curl -q --output log/2/curl1124.out --include --trace-ascii log/2/trace1124 --trace-time http://127.0.0.1:43789/1124 --tr-encoding > log/2/stdout1124 2> log/2/stderr1124 1124: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1124 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1124 ../src/curl -q --output log/2/curl1124.out --include --trace-ascii log/2/trace1124 --trace-time http://127.0.0.1:43789/1124 --tr-encoding > log/2/stdout1124 2> log/2/stderr1124 === End of file commands.log === Start of file http_server.log 10:33:07.993812 ====> Client connect 10:33:07.994525 accept_connection 3 returned 4 10:33:07.994704 accept_connection 3 returned 0 10:33:07.994812 Read 93 bytes 10:33:07.994881 Process 93 bytes request 10:33:07.994958 Got request: GET /verifiedserver HTTP/1.1 10:33:07.995016 Are-we-friendly question received 10:33:07.995249 Wrote request (93 bytes) input to log/2/server.input 10:33:07.995449 Identifying ourselves as friends 10:33:07.996229 Response sent (56 bytes) and written to log/2/server.response 10:33:07.996393 special request received, no persistency 10:33:07.996475 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 35726 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1124 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1124 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1126 ../src/curl -q --output log/3/curl1126.out --include --trace-ascii log/3/trace1126 --trace-time http://127.0.0.1:36933/1126 -z "dec 12 12:00:00 1999 GMT" > log/3/stdout1126 2> log/3/stderr1126 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1125 ../src/curl -q --output log/4/curl1125.out --include --trace-ascii log/4/trace1125 --trace-time http://127.0.0.1:36757/1125 --tr-encoding -H "Connection: close" > log/4/stdout1125 2> log/4/stderr1125 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1123 ../src/curl -q --output log/6/curl1123.out --include --trace-ascii log/6/trace1123 --trace-time http://127.0.0.1:33363/1123 --tr-encoding > log/6/stdout1123 2> log/6/stderr1123 -- exiting now. Sorry. === End of file valgrind1124 test 1126...[HTTP 200 If-Modified-Since with newer document] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1126 ../src/curl -q --output log/3/curl1126.out --include --trace-ascii log/3/trace1126 --trace-time http://127.0.0.1:36933/1126 -z "dec 12 12:00:00 1999 GMT" > log/3/stdout1126 2> log/3/stderr1126 1126: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1126 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1126 ../src/curl -q --output log/3/curl1126.out --include --trace-ascii log/3/trace1126 --trace-time http://127.0.0.1:36933/1126 -z "dec 12 12:00:00 1999 GMT" > log/3/stdout1126 2> log/3/stderr1126 === End of file commands.log === Start of file http_server.log 10:33:08.120682 ====> Client connect 10:33:08.121070 accept_connection 3 returned 4 10:33:08.121290 accept_connection 3 returned 0 10:33:08.121466 Read 93 bytes 10:33:08.121591 Process 93 bytes request 10:33:08.121702 Got request: GET /verifiedserver HTTP/1.1 10:33:08.121788 Are-we-friendly question received 10:33:08.122232 Wrote request (93 bytes) input to log/3/server.input 10:33:08.122515 Identifying ourselves as friends 10:33:08.123616 Response sent (56 bytes) and written to log/3/server.response 10:33:08.123813 special request received, no persistency 10:33:08.123909 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42790 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1126 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1126 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1126 test 1125...[HTTP GET transfer-encoding with custom Connection:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1125 ../src/curl -q --output log/4/curl1125.out --include --trace-ascii log/4/trace1125 --trace-time http://127.0.0.1:36757/1125 --tr-encoding -H "Connection: close" > log/4/stdout1125 2> log/4/stderr1125 1125: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1125 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1125 ../src/curl -q --output log/4/curl1125.out --include --trace-ascii log/4/trace1125 --trace-time http://127.0.0.1:36757/1125 --tr-encoding -H "Connection: close" > log/4/stdout1125 2> log/4/stderr1125 === End of file commands.log === Start of file http_server.log 10:33:09.020461 ====> Client connect 10:33:09.020865 accept_connection 3 returned 4 10:33:09.021128 accept_connection 3 returned 0 10:33:09.021300 Read 93 bytes 10:33:09.021397 Process 93 bytes request 10:33:09.021498 Got request: GET /verifiedserver HTTP/1.1 10:33:09.021578 Are-we-friendly question received 10:33:09.021833 Wrote request (93 bytes) input to log/4/server.input 10:33:09.022262 Identifying ourselves as friends 10:33:09.023123 Response sent (56 bytes) and written to log/4/server.response 10:33:09.023320 special request received, no persistency 10:33:09.023400 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52182 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1125 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1125 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1125 test 1123...[HTTP GET deflate transfer-encoded content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1123 ../src/curl -q CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1132.pl /build/curl/src/curl/tests/../lib > log/4/stdout1132 2> log/4/stderr1132 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1127 ../src/curl -q --output log/5/curl1127.out --include --trace-ascii log/5/trace1127 --trace-time http://127.0.0.1:41733/1127 -z "dec 12 12:00:00 1999 GMT" > log/5/stdout1127 2> log/5/stderr1127 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1128 ../src/curl -q --include --trace-ascii log/1/trace1128 --trace-time http://127.0.0.1:36129/1128 http://127.0.0.1:36129/11280001 -z "dec 12 12:00:00 1999 GMT" > log/1/stdout1128 2> log/1/stderr1128 --output log/6/curl1123.out --include --trace-ascii log/6/trace1123 --trace-time http://127.0.0.1:33363/1123 --tr-encoding > log/6/stdout1123 2> log/6/stderr1123 1123: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1123 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1123 ../src/curl -q --output log/6/curl1123.out --include --trace-ascii log/6/trace1123 --trace-time http://127.0.0.1:33363/1123 --tr-encoding > log/6/stdout1123 2> log/6/stderr1123 === End of file commands.log === Start of file http_server.log 10:33:07.932708 ====> Client connect 10:33:07.933056 accept_connection 3 returned 4 10:33:07.933250 accept_connection 3 returned 0 10:33:07.933400 Read 93 bytes 10:33:07.933496 Process 93 bytes request 10:33:07.933592 Got request: GET /verifiedserver HTTP/1.1 10:33:07.933678 Are-we-friendly question received 10:33:07.933916 Wrote request (93 bytes) input to log/6/server.input 10:33:07.934235 Identifying ourselves as friends 10:33:07.935000 Response sent (56 bytes) and written to log/6/server.response 10:33:07.935199 special request received, no persistency 10:33:07.935297 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 48264 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1123 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1123 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1123 test 1132...[Verify memory #include files in libcurl's C source files] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1132.pl /build/curl/src/curl/tests/../lib > log/4/stdout1132 2> log/4/stderr1132 valgrind SKIPPED -------e--- OK (1060 out of 1725, remaining: 01:36, took 0.292s, duration: 02:33) test 1127...[HTTP 200 If-Modified-Since with older document] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1127 ../src/curl -q --output log/5/curl1127.out --include --trace-ascii log/5/trace1127 --trace-time http://127.0.0.1:41733/1127 -z "dec 12 12:00:00 1999 GMT" > log/5/stdout1127 2> log/5/stderr1127 1127: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1127 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1127 ../src/curl -q --output log/5/curl1127.out --include --trace-ascii log/5/trace1127 --trace-time http://127.0.0.1:41733/1127 -z "dec 12 12:00:00 1999 GMT" > log/5/stdout1127 2> log/5/stderr1127 === End of file commands.log === Start of file http_server.log 10:33:09.454432 ====> Client connect 10:33:09.454776 accept_connection 3 returned 4 10:33:09.454957 accept_connection 3 returned 0 10:33:09.455088 Read 93 bytes 10:33:09.455176 Process 93 bytes request 10:33:09.455270 Got request: GET /verifiedserver HTTP/1.1 10:33:09.455364 Are-we-friendly question received 10:33:09.455648 Wrote request (93 bytes) input to log/5/server.input 10:33:09.455864 Identifying ourselves as friends 10:33:09.456529 Response sent (56 bytes) and written to log/5/server.response 10:33:09.456664 special request received, no persistency 10:33:09.456729 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 48982 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1127 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1127 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1127 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1129 ../src/curl -q --include --trace-ascii log/8/trace1129 --trace-time -d @log/8/file1129 --expect100-timeout 99 http://127.0.0.1:36007/1129 http://127.0.0.1:36007/11290001 > log/8/stdout1129 2> log/8/stderr1129 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1135.pl /build/curl/src/curl/tests/.. > log/5/stdout1135 2> log/5/stderr1135 test 1128...[HTTP 200 If-Modified-Since with old+new documents] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1128 ../src/curl -q --include --trace-ascii log/1/trace1128 --trace-time http://127.0.0.1:36129/1128 http://127.0.0.1:36129/11280001 -z "dec 12 12:00:00 1999 GMT" > log/1/stdout1128 2> log/1/stderr1128 1128: stdout FAILED: --- log/1/check-expected 2025-09-11 10:33:09.957845181 +0000 +++ log/1/check-generated 2025-09-11 10:33:09.957845181 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Last-Modified: Tue, 13 Jun 1980 12:10:00 GMT[LF] -Content-Length: 11[LF] -Content-Type: text/html[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:01 GMT[LF] -Server: test-server/fake[LF] -Last-Modified: Tue, 13 Jun 2002 12:10:00 GMT[LF] -Content-Length: 11[LF] -Content-Type: text/html[LF] -[LF] -0123456789[LF] == Contents of files in the log/1/ dir after test 1128 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Last-Modified: Tue, 13 Jun 1980 12:10:00 GMT[LF] Content-Length: 11[LF] Content-Type: text/html[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:01 GMT[LF] Server: test-server/fake[LF] Last-Modified: Tue, 13 Jun 2002 12:10:00 GMT[LF] Content-Length: 11[LF] Content-Type: text/html[LF] [LF] 0123456789[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1128 ../src/curl -q --include --trace-ascii log/1/trace1128 --trace-time http://127.0.0.1:36129/1128 http://127.0.0.1:36129/11280001 -z "dec 12 12:00:00 1999 GMT" > log/1/stdout1128 2> log/1/stderr1128 === End of file commands.log === Start of file http_server.log 10:33:08.695092 ====> Client connect 10:33:08.695479 accept_connection 3 returned 4 10:33:08.695760 accept_connection 3 returned 0 10:33:08.695965 Read 93 bytes 10:33:08.696094 Process 93 bytes request 10:33:08.696204 Got request: GET /verifiedserver HTTP/1.1 10:33:08.696300 Are-we-friendly question received 10:33:08.696658 Wrote request (93 bytes) input to log/1/server.input 10:33:08.701362 Identifying ourselves as friends 10:33:08.702551 Response sent (56 bytes) and written to log/1/server.response 10:33:08.702789 special request received, no persistency 10:33:08.702898 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 42432 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1128 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1128 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1128 test 1135...[Verify CURL_EXTERN order] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1135.pl /build/curl/src/curl/tests/.. > log/5/stdout1135 2> log/5/stderr1135 valgrind SKIPPED s------e--- OK (1063 out of 1725, remaining: 01:35, took 0.483s, duration: 02:33) test 1129...[HTTP POST expect 100-continue with a 404] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1129 ../src/curl -q --include --trace-ascii log/8/trace1129 --trace-time -d @log/8/file1129 --expect100-timeout 99 http://127.0.0.1:36007/1129 http://127.0.0.1:36007/11290001 > log/8/stdout1129 2> log/8/stderr1129 1129: stdout FAILED: --- log/8/check-expected 2025-09-11 10:33:10.149849003 +0000 +++ log/8/check-generated 2025-09-11 10:33:10.149849003 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 404 NOOOOOOOOO[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 6[LF] -Content-Type: text/html[LF] -[LF] --foo-[LF] -HTTP/1.1 404 NEITHER[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 6[LF] -Content-Type: text/html[LF] -[LF] --foo-[LF] == Contents of files in the log/8/ dir after test 1129 === Start of file check-expected HTTP/1.1 404 NOOOOOOOOO[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 6[LF] Content-Type: text/html[LF] [LF] -foo-[LF] HTTP/1.1 404 NEITHER[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 6[LF] Content-Type: text/html[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1129 ../src/curl -q --include --trace-ascii log/8/trace1129 --trace-time -d @log/8/file1129 --expect100-timeout 99 http://127.0.0.1:36007/1129 http://127.0.0.1:36007/11290001 > log/8/stdout1129 2> log/8/stderr1129 === End of file commands.log === Start of file file1129 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1130 ../src/curl -q --include --trace-ascii log/2/trace1130 --trace-time -d @log/2/file1130 http://127.0.0.1:43789/1130 http://127.0.0.1:43789/11300001 -H "Expect: 100-continue" --expect100-timeout 99 > log/2/stdout1130 2> log/2/stderr1130 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx === End of file file1129 === Start of file http_server.log 10:33:08.878517 ====> Client connect 10:33:08.878970 accept_connection 3 returned 4 10:33:08.880979 accept_connection 3 returned 0 10:33:08.881239 Read 93 bytes 10:33:08.881377 Process 93 bytes request 10:33:08.881488 Got request: GET /verifiedserver HTTP/1.1 10:33:08.881588 Are-we-friendly question received 10:33:08.881894 Wrote request (93 bytes) input to log/8/server.input 10:33:08.882227 Identifying ourselves as friends 10:33:08.883080 Response sent (56 bytes) and written to log/8/server.response 10:33:08.883242 special request received, no persistency 10:33:08.883323 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 57350 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd skip: 1053700 Testnum 1129 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1129 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1129 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1131 ../src/curl -q --include --trace-ascii log/3/trace1131 --trace-time -H "Expect: 100-continue" -T log/3/file1131 http://127.0.0.1:36933/1131 -T log/3/file1131 http://127.0.0.1:36933/11310001 --expect100-timeout 99 > log/3/stdout1131 2> log/3/stderr1131 test 1130...[HTTP POST forced expect 100-continue with a 404] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1130 ../src/curl -q --include --trace-ascii log/2/trace1130 --trace-time -d @log/2/file1130 http://127.0.0.1:43789/1130 http://127.0.0.1:43789/11300001 -H "Expect: 100-continue" --expect100-timeout 99 > log/2/stdout1130 2> log/2/stderr1130 1130: stdout FAILED: --- log/2/check-expected 2025-09-11 10:33:10.409854179 +0000 +++ log/2/check-generated 2025-09-11 10:33:10.409854179 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 404 NOOOOOOOOO[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 6[LF] -Content-Type: text/html[LF] -[LF] --foo-[LF] -HTTP/1.1 404 NEITHER[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 6[LF] -Content-Type: text/html[LF] -[LF] --foo-[LF] == Contents of files in the log/2/ dir after test 1130 === Start of file check-expected HTTP/1.1 404 NOOOOOOOOO[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 6[LF] Content-Type: text/html[LF] [LF] -foo-[LF] HTTP/1.1 404 NEITHER[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 6[LF] Content-Type: text/html[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1130 ../src/curl -q --include --trace-ascii log/2/trace1130 --trace-time -d @log/2/file1130 http://127.0.0.1:43789/1130 http://127.0.0.1:43789/11300001 -H "Expect: 100-continue" --expect100-timeout 99 > log/2/stdout1130 2> log/2/stderr1130 === End of file commands.log === Start of file file1130 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX === End of file file1130 === Start of file http_server.log 10:33:09.050856 ====> Client connect 10:33:09.051275 accept_connection 3 returned 4 10:33:09.051531 accept_connection 3 returned 0 10:33:09.051705 Read 93 bytes 10:33:09.051820 Process 93 bytes request 10:33:09.051937 Got request: GET /verifiedserver HTTP/1.1 10:33:09.052050 Are-we-friendly question received 10:33:09.052345 Wrote request (93 bytes) input to log/2/server.input 10:33:09.052570 Identifying ourselves as friends 10:33:09.053482 Response sent (56 bytes) and written to log/2/server.response 10:33:09.053619 special request received, no persistency 10:33:09.053690 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 35734 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd skip: 100 Testnum 1130 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1130 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1130 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1133 ../src/curl -q --output log/6/curl1133.out --include --trace-ascii log/6/trace1133 --trace-time http://127.0.0.1:33363/we/want/1133 -F "file=@\"log/6/test1133,and;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/6/test1133,and;.txt"' -F 'file3=@"log/6/test1133,and;.txt";type=m/f,"log/6/test1133,and;.txt"' -F a="{\"field1\":\"value1\",\"field2\":\"value2\"}" -F 'b=" \\value1;type=\"whatever\" "; type=text/foo; charset=utf-8 ; filename=param_b' > log/6/stdout1133 2> log/6/stderr1133 test 1131...[HTTP PUT expect 100-continue with a 400] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1131 ../src/curl -q --include --trace-ascii log/3/trace1131 --trace-time -H "Expect: 100-continue" -T log/3/file1131 http://127.0.0.1:36933/1131 -T log/3/file1131 http://127.0.0.1:36933/11310001 --expect100-timeout 99 > log/3/stdout1131 2> log/3/stderr1131 1131: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:10.497855931 +0000 +++ log/3/check-generated 2025-09-11 10:33:10.497855931 +0000 @@ -1,14 +0,0 @@ -HTTP/1.1 400 NOOOOOOOOO[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 9[LF] -Content-Type: text/html[LF] -[LF] -FAILURE1[LF] -HTTP/1.1 400 NEITHER[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 9[LF] -Content-Type: text/html[LF] -[LF] -FAILURE2[LF] == Contents of files in the log/3/ dir after test 1131 === Start of file check-expected HTTP/1.1 400 NOOOOOOOOO[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 9[LF] Content-Type: text/html[LF] [LF] FAILURE1[LF] HTTP/1.1 400 NEITHER[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 9[LF] Content-Type: text/html[LF] [LF] FAILURE2[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1131 ../src/curl -q --include --trace-ascii log/3/trace1131 --trace-time -H "Expect: 100-continue" -T log/3/file1131 http://127.0.0.1:36933/1131 -T log/3/file1131 http://127.0.0.1:36933/11310001 --expect100-timeout 99 > log/3/stdout1131 2> log/3/stderr1131 === End of file commands.log === Start of file file1131 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX === End of file file1131 === Start of file http_server.log 10:33:09.115880 ====> Client connect 10:33:09.117875 accept_connection 3 returned 4 10:33:09.118210 accept_connection 3 returned 0 10:33:09.118363 Read 93 bytes 10:33:09.118446 Process 93 bytes request 10:33:09.118540 Got request: GET /verifiedserver HTTP/1.1 10:33:09.118615 Are-we-friendly question received 10:33:09.118932 Wrote request (93 bytes) input to log/3/server.input 10:33:09.119126 Identifying ourselves as friends 10:33:09.119804 Response sent (56 bytes) and written to log/3/server.response 10:33:09.119920 special request received, no persistency 10:33:09.119983 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 42798 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd skip: 100 Testnum 1131 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1131 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1131 test 1133...[HTTP RFC1867-type formposting with filename/data contains ',', ';', '"'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1133 ../src/curl -q --output log/6/curl1133.out --include --trace-ascii log/6/trace1133 --trace-time http://127.0.0.1:33363/we/want/1133 -F "file=@\"log/6/test1133,and;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/6/test1133,and;.txt"' -F 'file3=@"log/6/test1133,and;.txt";type=m/f,"log/6/test1133,and;.txt"' -F a="{\"field1\":\"value1\",\"field2\":\"value2\"}" -F 'b=" \\value1;type=\"whatever\" "; type=text/foo; charset=utf-8 ; filename=param_b' > log/6/stdout1133 2> log/6/stderr1133 1133: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1133 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1133 ../src/curl -q --output log/6/curl1133.out --include --trace-ascii log/6/trace1133 --trace-time http://127.0.0.1:33363/we/want/1133 -F "file=@\"log/6/test1133,and;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/6/test1133,and;.txt"' -F 'file3=@"log/6/test1133,and;.txt";type=m/f,"log/6/test1133,and;.txt"' -F a="{\"field1\":\"value1\",\"field2\":\"value2\"}" -F 'b=" \\value1;type=\"whatever\" "; type=text/foo; charset=utf-8 ; filename=param_b' > log/6/stdout1133 2> log/6/stderr1133 === End of file commands.log === Start of file http_server.log 10:33:09.176426 ====> Client connect 10:33:09.176719 accept_connection 3 returned 4 10:33:09.176888 accept_connection 3 returned 0 10:33:09.177018 Read 93 bytes 10:33:09.177116 Process 93 bytes request 10:33:09.177216 Got request: GET /verifiedserver HTTP/1.1 10:33:09.177293 Are-we-friendly question received 10:33:09.177524 Wrote request (93 bytes) input to log/6/server.input 10:33:09.177711 Identifying ourselves as friends 10:33:09.178562 Response sent (56 bytes) and written to log/6/server.response 10:33:09.178710 special request received, no persistency 10:33:09.178779 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 48278 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1133 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file test1133,and;.txt foo bar This is a bar foo bar foo === End of fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1134 ../src/curl -q --output log/4/curl1134.out --include --trace-ascii log/4/trace1134 --trace-time http://127.0.0.1:36757/1134 -u user1:password1 --next http://127.0.0.1:36757/11340001 -u 2user:password2 > log/4/stdout1134 2> log/4/stderr1134 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1119.pl /build/curl/src/curl/tests/.. ../include/curl > log/7/stdout1119 2> log/7/stderr1119 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1139.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/2/stdout1139 2> log/2/stderr1139 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1136 ../src/curl -q --output log/1/curl1136.out --include --trace-ascii log/1/trace1136 --trace-time http://www.example.ck/1136 http://www.ck/1136 http://z-1.compute-1.amazonaws.com/1136 -b none -c log/1/jar1136.txt -x 127.0.0.1:36129 > log/1/stdout1136 2> log/1/stderr1136 ile test1133,and;.txt === Start of file valgrind1133 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1133 test 1134...[HTTP connection reuse with different credentials] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1134 ../src/curl -q --output log/4/curl1134.out --include --trace-ascii log/4/trace1134 --trace-time http://127.0.0.1:36757/1134 -u user1:password1 --next http://127.0.0.1:36757/11340001 -u 2user:password2 > log/4/stdout1134 2> log/4/stderr1134 1134: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1134 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1134 ../src/curl -q --output log/4/curl1134.out --include --trace-ascii log/4/trace1134 --trace-time http://127.0.0.1:36757/1134 -u user1:password1 --next http://127.0.0.1:36757/11340001 -u 2user:password2 > log/4/stdout1134 2> log/4/stderr1134 === End of file commands.log === Start of file http_server.log 10:33:10.414679 ====> Client connect 10:33:10.415021 accept_connection 3 returned 4 10:33:10.415213 accept_connection 3 returned 0 10:33:10.415385 Read 93 bytes 10:33:10.415512 Process 93 bytes request 10:33:10.415601 Got request: GET /verifiedserver HTTP/1.1 10:33:10.415677 Are-we-friendly question received 10:33:10.415929 Wrote request (93 bytes) input to log/4/server.input 10:33:10.416150 Identifying ourselves as friends 10:33:10.416991 Response sent (56 bytes) and written to log/4/server.response 10:33:10.417143 special request received, no persistency 10:33:10.417212 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52198 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1134 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1134 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1134 test 1119...[Verify that symbols-in-versions and headers are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1119.pl /build/curl/src/curl/tests/.. ../include/curl > log/7/stdout1119 2> log/7/stderr1119 valgrind SKIPPED s------e--- OK (1047 out of 1725, remaining: 01:40, took 3.186s, duration: 02:34) test 1139...[Verify that all libcurl options have man pages] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1139.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/2/stdout1139 2> log/2/stderr1139 valgrind SKIPPED -r-----e--- OK (1067 out of 1725, remaining: 01:35, took 0.413s, duration: 02:34) CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1137 ../src/curl -q --output log/5/curl1137.out --include --trace-ascii log/5/trace1137 --trace-time ftp://127.0.0.1:40501/1137 --ignore-content-length > log/5/stdout1137 2> log/5/stderr1137 setenv TZ = GMT test 1136...[Check cookies against PSL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1136 ../src/curl -q --output log/1/curl1136.out --include --trace-ascii log/1/trace1136 --trace-time http://www.example.ck/1136 http://www.ck/1136 http://z-1.compute-1.amazonaws.com/1136 -b none -c log/1/jar1136.txt -x 127.0.0.1:36129 > log/1/stdout1136 2> log/1/stderr1136 1136: data FAILED: --- log/1/check-expected 2025-09-11 10:33:11.149868910 +0000 +++ log/1/check-generated 2025-09-11 10:33:11.149868910 +0000 @@ -1,13 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Content-Length: 4[LF] -Content-Type: text/html[LF] -Funny-head: yesyes[LF] -Set-Cookie: test1=forbidden1; domain=example.ck; path=/;[LF] -Set-Cookie: test2=allowed2; domain=www.example.ck; path=/;[LF] -Set-Cookie: test3=forbidden3; domain=ck; path=/;[LF] -Set-Cookie: test4=allowed4; domain=www.ck; path=/;[LF] -Set-Cookie: test5=forbidden5; domain=z-1.compute-1.amazonaws.com; path=/;[LF] -[LF] -boo[LF] == Contents of files in the log/1/ dir after test 1136 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Content-Length: 4[LF] Content-Type: text/html[LF] Funny-head: yesyes[LF] Set-Cookie: test1=forbidden1; domain=example.ck; path=/;[LF] Set-Cookie: test2=allowed2; domain=www.example.ck; path=/;[LF] Set-Cookie: test3=forbidden3; domain=ck; path=/;[LF] Set-Cookie: test4=allowed4; domain=www.ck; path=/;[LF] Set-Cookie: test5=forbidden5; domain=z-1.compute-1.amazonaws.com; path=/;[LF] [LF] boo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1136 ../src/curl -q --output log/1/curl1136.out --include --trace-ascii log/1/trace1136 --trace-time http://www.example.ck/1136 http://www.ck/1136 http://z-1.compute-1.amazonaws.com/1136 -b none -c log/1/jar1136.txt -x 127.0.0.1:36129 > log/1/stdout1136 2> log/1/stderr1136 === End of file commands.log === Start of file http_server.log 10:33:09.824173 ====> Client connect 10:33:09.824617 accept_connection 3 returned 4 10:33:09.824944 accept_connection 3 returned 0 10:33:09.825122 Read 93 bytes 10:33:09.825227 Process 93 bytes request 10:33:09.825332 Got request: GET /verifiedserver HTTP/1.1 10:33:09.825422 Are-we-friendly question received 10:33:09.825721 Wrote request (93 bytes) input to log/1/server.input 10:33:09.826060 Identifying ourselves as friends 10:33:09.827078 Response sent (56 bytes) and written to log/1/server.response 10:33:09.827279 special request received, no persistency 10:33:09.827367 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46156 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1136 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1136 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1136 test 1137...[FTP RETR --ignore-content-length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1137 ../src/curl -q --output log/5/curl1137.out --include --trace-ascii log/5/trace1137 --trace-time ftp://127.0.0.1:40501/1137 --ignore-content-length > log/5/stdout1137 2> log/5/stderr1137 1137: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1137 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1137 ../src/curl -q --output log/5/curl1137.out --include --trace-ascii log/5/trace1137 --trace-time ftp://127.0.0.1:40501/1137 --ignore-content-length > log/5/stdout1137 2> log/5/stderr1137 === End of file commands.log === Start of file ftp_server.log 10:33:10.335637 ====> Client connect 10:33:10.337307 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:10.348080 < "USER anonymous" 10:33:10.350228 > "331 We are happy you popped in![CR][LF]" 10:33:10.352747 < "PASS ftp@example.com" 10:33:10.354738 > "230 Welcome you silly person[CR][LF]" 10:33:10.360209 < "PWD" 10:33:10.360889 > "257 "/" is current directory[CR][LF]" 10:33:10.366487 < "EPSV" 10:33:10.368166 ====> Passive DATA channel requested by client 10:33:10.368774 DATA sockfilt for passive data channel starting... 10:33:10.394442 DATA sockfilt for passive data channel started (pid 133949) 10:33:10.396912 DATA sockfilt for passive data channel listens on port 42527 10:33:10.397438 > "229 Entering Passive Mode (|||42527|)[LF]" 10:33:10.398013 Client has been notified that DATA conn will be accepted on port 42527 10:33:10.402697 Client connects to port 42527 10:33:10.403152 ====> Client established passive DATA connection on port 42527 10:33:10.404036 < "TYPE I" 10:33:10.404457 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:10.410659 < "SIZE verifiedserver" 10:33:10.411258 > "213 18[CR][LF]" 10:33:10.415631 < "RETR verifiedserver" 10:33:10.416117 > "150 Binary junk (18 bytes).[CR][LF]" 10:33:10.416957 =====> Closing passive DATA connection... 10:33:10.417301 Server disconnects passive DATA connection 10:33:10.425734 Server disconnected passive DATA connection 10:33:10.426318 DATA sockfilt for passive data channel quits (pid 133949) 10:33:10.428470 DATA sockfilt for passive data channel quit (pid 133949) 10:33:10.428833 =====> Closed passive DATA connection 10:33:10.429245 > "226 File transfer complete[CR][LF]" 10:33:10.474298 < "QUIT" 10:33:10.474785 > "221 bye bye baby[CR][LF]" 10:33:10.478107 MAIN sockfilt said DISC 10:33:10CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1138 ../src/curl -q --output log/8/curl1138.out --include --trace-ascii log/8/trace1138 --trace-time http://127.0.0.1:36007/we/are/all/twits/1138 -L > log/8/stdout1138 2> log/8/stderr1138 .478566 ====> Client disconnected 10:33:10.479217 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:11.002661 ====> Client connect 10:33:11.005761 Received DATA (on stdin) 10:33:11.006261 > 160 bytes data, server => client 10:33:11.006501 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:11.006659 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:11.006783 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:11.008121 < 16 bytes data, client => server 10:33:11.008403 'USER anonymous\r\n' 10:33:11.018660 Received DATA (on stdin) 10:33:11.018905 > 33 bytes data, server => client 10:33:11.019041 '331 We are happy you popped in!\r\n' 10:33:11.019846 < 22 bytes data, client => server 10:33:11.020127 'PASS ftp@example.com\r\n' 10:33:11.022466 Received DATA (on stdin) 10:33:11.022749 > 30 bytes data, server => client 10:33:11.022891 '230 Welcome you silly person\r\n' 10:33:11.024515 < 5 bytes data, client => server 10:33:11.025654 'PWD\r\n' 10:33:11.030323 Received DATA (on stdin) 10:33:11.030746 > 30 bytes data, server => client 10:33:11.030924 '257 "/" is current directory\r\n' 10:33:11.032075 < 6 bytes data, client => server 10:33:11.032341 'EPSV\r\n' 10:33:11.065907 Received DATA (on stdin) 10:33:11.066445 > 38 bytes data, server => client 10:33:11.066576 '229 Entering Passive Mode (|||42527|)\n' 10:33:11.071971 < 8 bytes data, client => server 10:33:11.072192 'TYPE I\r\n' 10:33:11.072934 Received DATA (on stdin) 10:33:11.073420 > 33 bytes data, server => client 10:33:11.073545 '200 I modify TYPE as you wanted\r\n' 10:33:11.074395 < 21 bytes data, client => server 10:33:11.074621 'SIZE verifiedserver\r\n' 10:33:11.079772 Received DATA (on stdin) 10:33:11.079996 > 8 bytes data, server => client 10:33:11.080107 '213 18\r\n' 10:33:11.082581 < 21 bytes data, client => server 10:33:11.082863 'RETR verifiedserver\r\n' 10:33:11.086252 Received DATA (on stdin) 10:33:11.086461 > 29 bytes data, server => client 10:33:11.086556 '150 Binary junk (18 bytes).\r\n' 10:33:11.098204 Received DATA (on stdin) 10:33:11.098418 > 28 bytes data, server => client 10:33:11.098509 '226 File transfer complete\r\n' 10:33:11.140222 < 6 bytes data, client => server 10:33:11.140482 'QUIT\r\n' 10:33:11.143277 Received DATA (on stdin) 10:33:11.143507 > 18 bytes data, server => client 10:33:11.143606 '221 bye bye baby\r\n' 10:33:11.146138 ====> Client disconnect 10:33:11.147076 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:10.059615 Running IPv4 version 10:33:10.060455 Listening on port 42527 10:33:10.060768 Wrote pid 133949 to log/5/server/ftp_sockdata.pid 10:33:10.062276 Received PING (on stdin) 10:33:10.063554 Received PORT (on stdin) 10:33:10.070744 ====> Client connect 10:33:10.088703 Received DATA (on stdin) 10:33:10.088976 > 18 bytes data, server => client 10:33:10.089090 'WE ROOLZ: 131615\r\n' 10:33:10.089466 Received DISC (on stdin) 10:33:10.089681 ====> Client forcibly disconnected 10:33:10.095144 Received QUIT (on stdin) 10:33:10.095384 quits 10:33:10.096059 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1137 === End of file server.cmd === Start of file valgrind1137 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1137 test 1138...[HTTP redirect with UTF-8 characters] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1138 ../src/curl -q --output log/8/curl1138.out --include --trace-ascii log/8/trace1138 --trace-time http://127.0.0.1:36007/we/are/all/twits/1138 -L > log/8/stdout1138 2> log/8/stderr1138 1138: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1138 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1138 ../src/curl -q --output log/8/curl1138.out --include --trace-ascii log/8/trace1138 --trace-time http://127.0.0.1:36007/we/are/all/twits/1138 -L > log/8/stdout1138 2> log/8/stderr1138 === End of file commands.log === Start of file http_server.log 10:33:10.236247 ====> Client connect 10:33:10.236651 accept_connection 3 returned 4 10:33:10.236994 accept_connection 3 returned 0 10:33:10.237234 Read 93 bytes 10:33:10.237347 Process 93 bytes request 10:33:10.237448 Got request: GET /verifiedserver HTTP/1.1 10:33:10.237525 Are-we-friendly question received 10:33:10.237739 Wrote request (93 bytes) input to log/8/server.input 10:33:10.237905 Identifying ourselves as friends 10:33:10.238728 Response sent (56 bytes) and written to log/8/server.response 10:33:10.238881 special request received, no persistency 10:33:10.238970 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58720 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1138 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1138 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for thisCMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1140.pl /build/curl/src/build-curl/tests/../docs/ /build/curl/src/build-curl/tests/../docs/libcurl/*.3 /build/curl/src/build-curl/tests/../docs/libcurl/opts/*.3 /build/curl/src/build-curl/tests/../docs/*.1 /build/curl/src/build-curl/tests/../docs/cmdline-opts/*.1 > log/3/stdout1140 2> log/3/stderr1140 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1142 ../src/curl -q --output log/4/curl1142.out --include --trace-ascii log/4/trace1142 --trace-time 127.0.0.1:36757/want/1142 -L -x http://127.0.0.1:36757 > log/4/stdout1142 2> log/4/stderr1142 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1141 ../src/curl -q --output log/6/curl1141.out --include --trace-ascii log/6/trace1141 --trace-time 127.0.0.1:33363/want/1141 -L -x http://127.0.0.1:33363 > log/6/stdout1141 2> log/6/stderr1141 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1143 ../src/curl -q --output log/7/curl1143.out --include --trace-ascii log/7/trace1143 --trace-time http:/127.0.0.1:40129/want/1143 > log/7/stdout1143 2> log/7/stderr1143 platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1138 test 1140...[Verify the nroff of manpages] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1140.pl /build/curl/src/build-curl/tests/../docs/ /build/curl/src/build-curl/tests/../docs/libcurl/*.3 /build/curl/src/build-curl/tests/../docs/libcurl/opts/*.3 /build/curl/src/build-curl/tests/../docs/*.1 /build/curl/src/build-curl/tests/../docs/cmdline-opts/*.1 > log/3/stdout1140 2> log/3/stderr1140 valgrind SKIPPED s------e--- OK (1068 out of 1725, remaining: 01:35, took 0.848s, duration: 02:35) test 1142...[HTTP redirect to http://// (four slashes!)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1142 ../src/curl -q --output log/4/curl1142.out --include --trace-ascii log/4/trace1142 --trace-time 127.0.0.1:36757/want/1142 -L -x http://127.0.0.1:36757 > log/4/stdout1142 2> log/4/stderr1142 1142: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1142 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1142 ../src/curl -q --output log/4/curl1142.out --include --trace-ascii log/4/trace1142 --trace-time 127.0.0.1:36757/want/1142 -L -x http://127.0.0.1:36757 > log/4/stdout1142 2> log/4/stderr1142 === End of file commands.log === Start of file http_server.log 10:33:11.439488 ====> Client connect 10:33:11.439837 accept_connection 3 returned 4 10:33:11.440062 accept_connection 3 returned 0 10:33:11.440223 Read 93 bytes 10:33:11.440351 Process 93 bytes request 10:33:11.440455 Got request: GET /verifiedserver HTTP/1.1 10:33:11.440543 Are-we-friendly question received 10:33:11.440806 Wrote request (93 bytes) input to log/4/server.input 10:33:11.441026 Identifying ourselves as friends 10:33:11.441796 Response sent (56 bytes) and written to log/4/server.response 10:33:11.441981 special request received, no persistency 10:33:11.442071 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52680 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1142 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1142 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1142 test 1141...[HTTP redirect to http:/// (three slashes!)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1141 ../src/curl -q --output log/6/curl1141.out --include --trace-ascii log/6/trace1141 --trace-time 127.0.0.1:33363/want/1141 -L -x http://127.0.0.1:33363 > log/6/stdout1141 2> log/6/stderr1141 1141: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1141 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1141 ../src/curl -q --output log/6/curl1141.out --include --trace-ascii log/6/trace1141 --trace-time 127.0.0.1:33363/want/1141 -L -x http://127.0.0.1:33363 > log/6/stdout1141 2> log/6/stderr1141 === End of file commands.log === Start of file http_server.log 10:33:10.420209 ====> Client connect 10:33:10.420569 accept_connection 3 returned 4 10:33:10.420824 accept_connection 3 returned 0 10:33:10.420990 Read 93 bytes 10:33:10.421084 Process 93 bytes request 10:33:10.421185 Got request: GET /verifiedserver HTTP/1.1 10:33:10.421260 Are-we-friendly question received 10:33:10.421462 Wrote request (93 bytes) input to log/6/server.input 10:33:10.421643 Identifying ourselves as friends 10:33:10.422470 Response sent (56 bytes) and written to log/6/server.response 10:33:10.422628 special request received, no persistency 10:33:10.422719 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60130 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1141 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1141 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1144 ../src/curl -q --output log/2/curl1144.out --include --trace-ascii log/2/trace1144 --trace-time -I http://127.0.0.1:43789/1144 --http0.9 > log/2/stdout1144 2> log/2/stderr1144 : stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1141 setenv MSYS2_ARG_CONV_EXCL = http:/ test 1143...[HTTP URL with http:/ (one slash!)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1143 ../src/curl -q --output log/7/curl1143.out --include --trace-ascii log/7/trace1143 --trace-time http:/127.0.0.1:40129/want/1143 > log/7/stdout1143 2> log/7/stderr1143 1143: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1143 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1143 ../src/curl -q --output log/7/curl1143.out --include --trace-ascii log/7/trace1143 --trace-time http:/127.0.0.1:40129/want/1143 > log/7/stdout1143 2> log/7/stderr1143 === End of file commands.log === Start of file http_server.log 10:33:10.501546 ====> Client connect 10:33:10.501900 accept_connection 3 returned 4 10:33:10.502376 accept_connection 3 returned 0 10:33:10.503244 Read 93 bytes 10:33:10.503484 Process 93 bytes request 10:33:10.503629 Got request: GET /verifiedserver HTTP/1.1 10:33:10.503736 Are-we-friendly question received 10:33:10.504059 Wrote request (93 bytes) input to log/7/server.input 10:33:10.504300 Identifying ourselves as friends 10:33:10.504974 Response sent (56 bytes) and written to log/7/server.response 10:33:10.505135 special request received, no persistency 10:33:10.505213 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60166 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1143 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1143 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1143 test 1144...[HTTP HEAD, receive no headers only body] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1144 ../src/curl -q --output log/2/curl1144.out --include --trace-ascii log/2/trace1144 --trace-time -I http://127.0.0.1:43789/1144 --http0.9 > log/2/stdout1144 2> log/2/stderr1144 1144: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1144 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1144 ../src/curl -q --output log/2/curl1144.out --include --trace-ascii log/2/trace1144 --trace-time -I http://127.0.0.1:43789/1144 --http0.9 > log/2/stdout1144 2> log/2/stderr1144 === End of file commands.log === Start of file http_server.log 10:33:10.736240 ====> Client connect 10:33:10.736594 accept_connection 3 returned 4 10:33:10.736787 accept_connection 3 returned 0 10:33:10.736932 Read 93 bytes 10:33:10.737039 Process 93 bytes request 10:33:10.737149 Got request: GET /verifiedserver HTTP/1.1 10:33:10.737273 Are-we-friendly question received 10:33:10.737587 Wrote request (93 bytes) input to log/2/server.input 10:33:10.737845 Identifying ourselves as friends 10:33:10.739210 Response sent (56 bytes) and written to log/2/server.response 10:33:10.739370 special request received, no persistency 10:33:10.739450 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60954 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1144 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1144 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1145 ../src/curl -q --output log/1/curl1145.out --include --trace-ascii log/1/trace1145 --trace-time file://bad-host/build/curl/src/build-curl/tests/log/1/test1145.txt > log/1/stdout1145 2> log/1/stderr1145 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1146 ../src/curl -q --output log/5/curl1146.out --trace-ascii log/5/trace1146 --trace-time --proto-default file /build/curl/src/build-curl/tests/log/5/test1146.txt > log/5/stdout1146 2> log/5/stderr1146 are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1144 test 1145...[file:// bad host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1145 ../src/curl -q --output log/1/curl1145.out --include --trace-ascii log/1/trace1145 --trace-time file://bad-host/build/curl/src/build-curl/tests/log/1/test1145.txt > log/1/stdout1145 2> log/1/stderr1145 curl returned 1, when expecting 3 1145: exit FAILED == Contents of files in the log/1/ dir after test 1145 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1145 ../src/curl -q --output log/1/curl1145.out --include --trace-ascii log/1/trace1145 --trace-time file://bad-host/build/curl/src/build-curl/tests/log/1/test1145.txt > log/1/stdout1145 2> log/1/stderr1145 === End of file commands.log === Start of file server.cmd Testnum 1145 === End of file server.cmd === Start of file test1145.txt foo bar bar foo moo === End of file test1145.txt === Start of file valgrind1145 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1145 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1147 ../src/curl -q --output log/8/curl1147.out --include --trace-ascii log/8/trace1147 --trace-time http://127.0.0.1:36007/1147 -H @log/8/heads1147.txt > log/8/stdout1147 2> log/8/stderr1147 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1148 ../src/curl -q --output log/3/curl1148.out --include --trace-ascii log/3/trace1148 --trace-time http://127.0.0.1:36933/1148 -# --stderr log/3/stderrlog1148 > log/3/stdout1148 2> log/3/stderr1148 test 1146...[--proto-default file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1146 ../src/curl -q --output log/5/curl1146.out --trace-ascii log/5/trace1146 --trace-time --proto-default file /build/curl/src/build-curl/tests/log/5/test1146.txt > log/5/stdout1146 2> log/5/stderr1146 1146: data FAILED: --- log/5/check-expected 2025-09-11 10:33:12.141888657 +0000 +++ log/5/check-generated 2025-09-11 10:33:12.141888657 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/5/ dir after test 1146 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1146 ../src/curl -q --output log/5/curl1146.out --trace-ascii log/5/trace1146 --trace-time --proto-default file /build/curl/src/build-curl/tests/log/5/test1146.txt > log/5/stdout1146 2> log/5/stderr1146 === End of file commands.log === Start of file server.cmd Testnum 1146 === End of file server.cmd === Start of file test1146.txt foo bar bar foo moo === End of file test1146.txt === Start of file valgrind1146 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1146 test 1147...[Get -H headers from a file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1147 ../src/curl -q --output log/8/curl1147.out --include --trace-ascii log/8/trace1147 --trace-time http://127.0.0.1:36007/1147 -H @log/8/heads1147.txt > log/8/stdout1147 2> log/8/stderr1147 1147: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1147 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1147 ../src/curl -q --output log/8/curl1147.out --include --trace-ascii log/8/trace1147 --trace-time http://127.0.0.1:36007/1147 -H @log/8/heads1147.txt > log/8/stdout1147 2> log/8/stderr1147 === End of file commands.log === Start of file heads1147.txt One: 1 Two: 2 no-colon And A Funny One : wohoo User-Agent: === End of file heads1147.txt === Start of file http_server.log 10:33:11.242921 ====> Client connect 10:33:11.243230 accept_connection 3 returned 4 10:33:11.243415 accept_connection 3 returned 0 10:33:11.243551 Read 93 bytes 10:33:11.243630 Process 93 bytes request 10:33:11.243706 Got request: GET /verifiedserver HTTP/1.1 10:33:11.243770 Are-we-friendly question received 10:33:11.243981 Wrote request (93 bytes) input to log/8/server.input 10:33:11.244170 Identifying ourselves as friends 10:33:11.244954 Response sent (56 bytes) and written to log/8/server.response 10:33:11.245095 special request received, no persistency 10:33:11.245179 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58730 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1147 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1147 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1147 test 1148...[progress-bar] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1148 ../src/curl -q --output log/3/curl1148.out --include --trace-ascii log/3/trace1148 --trace-time http://127.0.0.1:36933/1148 -# --stderr log/3/stderrlog1148 > log/3/stdout1148 2> log/3/stderr1148 1148: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1148 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1148 ../src/curl -q --output log/3/curl1148.out --include --trace-ascii log/3/trace1148 --trace-time http://127.0.0.1:36933/1148 -# --stderr log/3/stderrlog1148 > log/3/stdout1148 2> log/3/stderr1148 === End of file commands.log === Start of file http_server.log 10:33:11.285108 ====> Client connect 10:33:11.285552 accept_connection 3 returned 4 10:33:11.285771 accept_connection 3 returned 0 10:33:11.286186 Read 93 bytes 10:33:11.286344 Process 93 bytes request 10:33:11.286440 Got reCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1150 ../src/curl -q --output log/7/curl1150.out --include --trace-ascii log/7/trace1150 --trace-time --proxy http://127.0.0.1:40129 http://test.remote.example.com.1150:150/path http://test.remote.example.com.1150:1234/path/ > log/7/stdout1150 2> log/7/stderr1150 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1149 ../src/curl -q --output log/4/curl1149.out --include --trace-ascii log/4/trace1149 --trace-time ftp://127.0.0.1:42635/list/this/path/1149/ --ftp-method multicwd --next ftp://127.0.0.1:42635/list/this/path/1149/ --ftp-method nocwd > log/4/stdout1149 2> log/4/stderr1149 quest: GET /verifiedserver HTTP/1.1 10:33:11.286524 Are-we-friendly question received 10:33:11.286779 Wrote request (93 bytes) input to log/3/server.input 10:33:11.286974 Identifying ourselves as friends 10:33:11.287714 Response sent (56 bytes) and written to log/3/server.response 10:33:11.287887 special request received, no persistency 10:33:11.287963 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60790 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1148 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1148 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1148 test 1150...[HTTP proxy with URLs using different ports] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1150 ../src/curl -q --output log/7/curl1150.out --include --trace-ascii log/7/trace1150 --trace-time --proxy http://127.0.0.1:40129 http://test.remote.example.com.1150:150/path http://test.remote.example.com.1150:1234/path/ > log/7/stdout1150 2> log/7/stderr1150 1150: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1150 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1150 ../src/curl -q --output log/7/curl1150.out --include --trace-ascii log/7/trace1150 --trace-time --proxy http://127.0.0.1:40129 http://test.remote.example.com.1150:150/path http://test.remote.example.com.1150:1234/path/ > log/7/stdout1150 2> log/7/stderr1150 === End of file commands.log === Start of file http_server.log 10:33:11.418426 ====> Client connect 10:33:11.418836 accept_connection 3 returned 4 10:33:11.419081 accept_connection 3 returned 0 10:33:11.419255 Read 93 bytes 10:33:11.419365 Process 93 bytes request 10:33:11.419461 Got request: GET /verifiedserver HTTP/1.1 10:33:11.419548 Are-we-friendly question received 10:33:11.419802 Wrote request (93 bytes) input to log/7/server.input 10:33:11.419994 Identifying ourselves as friends 10:33:11.420810 Response sent (56 bytes) and written to log/7/server.response 10:33:11.421021 special request received, no persistency 10:33:11.421131 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60172 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1150 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1150 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1150 test 1149...[FTP dir list multicwd then again nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1149 ../src/curl -q --output log/4/curl1149.out --include --trace-ascii log/4/trace1149 --trace-time ftp://127.0.0.1:42635/list/this/path/1149/ --ftp-method multicwd --next ftp://127.0.0.1:42635/list/this/path/1149/ --ftp-method nocwd > log/4/stdout1149 2> log/4/stderr1149 1149: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1149 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1149 ../src/curl -q --output log/4/curl1149.out --include --trace-ascii log/4/trace1149 --trace-time ftp://127.0.0.1:42635/list/this/path/1149/ --ftp-method multicwd --next ftp://127.0.0.1:42635/list/this/path/1149/ --ftp-method nocwd > log/4/stdout1149 2> log/4/stderr1149 === End of file commands.log === Start of file ftp_server.log 10:33:11.733601 ====> Client connect 10:33:11.734972 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:11.738576 < "USER anonymous" 10:3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1151 ../src/curl -q --output log/6/curl1151.out --include --trace-ascii log/6/trace1151 --trace-time http://127.0.0.1:33363/1151 -c log/6/cookies1151.txt > log/6/stdout1151 2> log/6/stderr1151 3:11.739082 > "331 We are happy you popped in![CR][LF]" 10:33:11.740967 < "PASS ftp@example.com" 10:33:11.741531 > "230 Welcome you silly person[CR][LF]" 10:33:11.743907 < "PWD" 10:33:11.744380 > "257 "/" is current directory[CR][LF]" 10:33:11.746290 < "EPSV" 10:33:11.746662 ====> Passive DATA channel requested by client 10:33:11.746829 DATA sockfilt for passive data channel starting... 10:33:11.760485 DATA sockfilt for passive data channel started (pid 134507) 10:33:11.761912 DATA sockfilt for passive data channel listens on port 42427 10:33:11.762471 > "229 Entering Passive Mode (|||42427|)[LF]" 10:33:11.762761 Client has been notified that DATA conn will be accepted on port 42427 10:33:11.767163 Client connects to port 42427 10:33:11.767640 ====> Client established passive DATA connection on port 42427 10:33:11.768594 < "TYPE I" 10:33:11.769680 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:11.773662 < "SIZE verifiedserver" 10:33:11.774294 > "213 17[CR][LF]" 10:33:11.776107 < "RETR verifiedserver" 10:33:11.776596 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:11.778748 =====> Closing passive DATA connection... 10:33:11.779105 Server disconnects passive DATA connection 10:33:11.780120 Server disconnected passive DATA connection 10:33:11.780600 DATA sockfilt for passive data channel quits (pid 134507) 10:33:11.782719 DATA sockfilt for passive data channel quit (pid 134507) 10:33:11.783168 =====> Closed passive DATA connection 10:33:11.783635 > "226 File transfer complete[CR][LF]" 10:33:11.821137 < "QUIT" 10:33:11.822004 > "221 bye bye baby[CR][LF]" 10:33:11.827244 MAIN sockfilt said DISC 10:33:11.827998 ====> Client disconnected 10:33:11.828979 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:12.394649 ====> Client connect 10:33:12.403436 Received DATA (on stdin) 10:33:12.403628 > 160 bytes data, server => client 10:33:12.403731 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:12.403816 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:12.403885 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:12.406111 < 16 bytes data, client => server 10:33:12.406347 'USER anonymous\r\n' 10:33:12.407626 Received DATA (on stdin) 10:33:12.407801 > 33 bytes data, server => client 10:33:12.407900 '331 We are happy you popped in!\r\n' 10:33:12.408538 < 22 bytes data, client => server 10:33:12.408765 'PASS ftp@example.com\r\n' 10:33:12.410675 Received DATA (on stdin) 10:33:12.410870 > 30 bytes data, server => client 10:33:12.410959 '230 Welcome you silly person\r\n' 10:33:12.411655 < 5 bytes data, client => server 10:33:12.411843 'PWD\r\n' 10:33:12.412838 Received DATA (on stdin) 10:33:12.412992 > 30 bytes data, server => client 10:33:12.413096 '257 "/" is current directory\r\n' 10:33:12.413771 < 6 bytes data, client => server 10:33:12.414417 'EPSV\r\n' 10:33:12.431557 Received DATA (on stdin) 10:33:12.431749 > 38 bytes data, server => client 10:33:12.431840 '229 Entering Passive Mode (|||42427|)\n' 10:33:12.435212 < 8 bytes data, client => server 10:33:12.435373 'TYPE I\r\n' 10:33:12.437575 Received DATA (on stdin) 10:33:12.437825 > 33 bytes data, server => client 10:33:12.438574 '200 I modify TYPE as you wanted\r\n' 10:33:12.440455 < 21 bytes data, client => server 10:33:12.440671 'SIZE verifiedserver\r\n' 10:33:12.442748 Received DATA (on stdin) 10:33:12.442969 > 8 bytes data, server => client 10:33:12.443084 '213 17\r\n' 10:33:12.443891 < 21 bytes data, client => server 10:33:12.444173 'RETR verifiedserver\r\n' 10:33:12.445050 Received DATA (on stdin) 10:33:12.445209 > 29 bytes data, server => client 10:33:12.445302 '150 Binary junk (17 bytes).\r\n' 10:33:12.452449 Received DATA (on stdin) 10:33:12.452657 > 28 bytes data, server => client 10:33:12.452759 '226 File transfer complete\r\n' 10:33:12.488549 < 6 bytes data, client => server 10:33:12.488862 'QUIT\r\n' 10:33:12.491176 Received DATA (on stdin) 10:33:12.491483 > 18 bytes data, server => client 10:33:12.491657 '221 bye bye baby\r\n' 10:33:12.492566 ====> Client disconnect 10:33:12.496607 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:11.423830 Running IPv4 version 10:33:11.424403 Listening on port 42427 10:33:11.424806 Wrote pid 134507 to log/4/server/ftp_sockdata.pid 10:33:11.426034 Received PING (on stdin) 10:33:11.429520 Received PORT (on stdin) 10:33:11.434792 ====> Client connect 10:33:11.445413 Received DATA (on stdin) 10:33:11.445559 > 17 bytes data, server => client 10:33:11.446243 'WE ROOLZ: 79516\r\n' 10:33:11.447858 Received DISC (on stdin) 10:33:11.448058 ====> Client forcibly disconnected 10:33:11.449506 Received QUIT (on stdin) 10:33:11.449723 quits 10:33:11.450232 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1149 === End of file server.cmd === Start of file valgrind1149 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1149 test 1151...[HTTP with too long cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1151 ../src/curl -q --output log/6/curl1151.out --include --trace-ascii log/6/trace1151 --trace-time http://127.0.0.1:33363/1151 -c log/6/cookies1151.txt > log/6/stdout1151 2> log/6/stderr1151 1151: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1151 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1151 ../src/curl -q --output log/6/curl1151.out --include --trace-ascii log/6/trace1151 --trace-time http://127.0.0.1:33363/1151 -c log/6/cookies1151.txt > log/6/stdout1151 2> log/6/stderr1151 === End of file commands.log === Start of file http_server.log 10:33:11.574388 ====> Client connect 10:33:11.574719 accept_connection 3 returned 4 10:33:11.574960 accept_connection 3 returned 0 10:33:11.575155 Read 93 bytes 10:33:11.575292 Process 93 bytes request 10:33:11.575409 Got request: GET /verifiedserver HTTP/1.1 10:33:11.575493 Are-we-friendly question received 10:33:11.575716 Wrote request (93 bytes) input to log/6/server.input 10:33:11.575906 Identifying ourselves as friends 10:33:11.576748 Response sent (56 bytes) and written to log/6/server.response 10:33:11.576891 special request received, no persistency 10:33:11.576974 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * TryingCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1152 ../src/curl -q --output log/2/curl1152.out --include --trace-ascii log/2/trace1152 --trace-time ftp://127.0.0.1:37959/test-1152/ > log/2/stdout1152 2> log/2/stderr1152 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60146 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1151 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1151 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1151 test 1152...[FTP with uneven quote in PWD response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1152 ../src/curl -q --output log/2/curl1152.out --include --trace-ascii log/2/trace1152 --trace-time ftp://127.0.0.1:37959/test-1152/ > log/2/stdout1152 2> log/2/stderr1152 1152: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1152 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1152 ../src/curl -q --output log/2/curl1152.out --include --trace-ascii log/2/trace1152 --trace-time ftp://127.0.0.1:37959/test-1152/ > log/2/stdout1152 2> log/2/stderr1152 === End of file commands.log === Start of file ftp_server.log 10:33:12.158605 ====> Client connect 10:33:12.160391 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:12.165046 < "USER anonymous" 10:33:12.165681 > "331 We are happy you popped in![CR][LF]" 10:33:12.169820 < "PASS ftp@example.com" 10:33:12.170503 > "230 Welcome you silly person[CR][LF]" 10:33:12.176886 < "PWD" 10:33:12.177594 > "257 "/" is current directory[CR][LF]" 10:33:12.181312 < "EPSV" 10:33:12.181861 ====> Passive DATA channel requested by client 10:33:12.182194 DATA sockfilt for passive data channel starting... 10:33:12.195315 DATA sockfilt for passive data channel started (pid 134736) 10:33:12.196716 DATA sockfilt for passive data channel listens on port 42765 10:33:12.197345 > "229 Entering Passive Mode (|||42765|)[LF]" 10:33:12.197971 Client has been notified that DATA conn will be accepted on port 42765 10:33:12.208585 Client connects to port 42765 10:33:12.209104 ====> Client established passive DATA connection on port 42765 10:33:12.214512 < "TYPE I" 10:33:12.214991 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:12.218002 < "SIZE verifiedserver" 10:33:12.218702 > "213 17[CR][LF]" 10:33:12.221591 < "RETR verifiedserver" 10:33:12.222374 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:12.223387 =====> Closing passive DATA connection... 10:33:12.223828 Server disconnects passive DATA connection 10:33:12.227247 Server disconnected passive DATA connection 10:33:12.227723 DATA sockfilt for passive data channel quits (pid 134736) 10:33:12.229971 DATA sockfilt for passive data channel quit (pid 134736) 10:33:12.230345 =====> Closed passive DATA connection 10:33:12.230764 > "226 File transfer complete[CR][LF]" 10:33:12.275432 < "QUIT" 10:33:12.276060 > "221 bye bye baby[CR][LF]" 10:33:12.289693 MAIN sockfilt said DISC 10:33:12.290500 ====> Client disconnected 10:33:12.291478 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:11.826158 ====> Client connect 10:33:11.828819 Received DATA (on stdin) 10:33:11.829100 > 160 bytes data, server => client 10:33:11.829230 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:11.829331 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:11.829418 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:11.832339 < 16 bytes data, client => server 10:33:11.832571 'USER anonymous\r\n' 10:33:11.834261 Received DATA (on stdin) 10:33:11.834438 > 33 bytes data, server => client 10:33:11.834549 '331 We are happy you popped in!\r\n' 10:33:11.835391 < 22 bytes data, client => server 10:33:11.835634 'PASS ftp@example.com\r\n' 10:33:11.839459 Received DATA (on stdin) 10:33:11.839646 > 30 bytes data, server => client 10:33:11.839745 '230 Welcome you silly person\r\n' 10:33:11.843473 < 5 bytes data, client => server 10:33:11.843613 'PWD\r\n' 10:33:11.846873 Received DATA (on stdin) 10:33:11.847138 > 30 bytes data, server => client 10:33:11.847282 '257 "/" is current directory\r\n' 10:33:11.848537 < 6 bytes data, client => server 10:33:11.848703 'EPSV\r\n' 10:33:11.870026 Received DATA (on stdin) 10:33:11.870328 > 38 bytes data, server => client 10:33:11.870440 '229 Entering Passive Mode (|||42765|)\n' 10:33:11.882102 < 8 bytes data, client => server 10:33:11.882304 'TYPE I\r\n' 10:33:11.884019 Received DATA (on stdin) 10:33:11.884283 > 33 bytes data, server => client 10:33:11.884399 '200 I modify TYPE as you wanted\r\n' 10:33:11.885243 < 21 bytes data, client => server 10:33:11.885430 'SIZE verifiedserver\r\n' 10:33:11.887622 Received DATA (on stdin) 10:33:11.887826 > 8 bytes data, server => client 10:33:11.887911 '213 17\r\n' 10:33:11.888713 < 21 bytes data, client => server 10:33:11.888931 'RETR verifiedserver\r\n' 10:33:11.892759 Received DATA (on stdin) 10:33:11.892987 > 29 bytes data, server => client 10:33:11.893112 '150 Binary junk (17 bytes).\r\n' 10:33:11.899761 Received DATA (on stdin) 10:33:11.899916 > 28 bytes data, server => client 10:33:11.900017 '226 File transfer complete\r\n' 10:33:11.942720 < 6 bytes data, client => server 10:33:11.943049 'QUIT\r\n' 10:33:11.947659 Received DATA (on stdin) 10:33:11.947981 > 18 bytes data, server => client 10:33:11.948173 '221 bye bye baby\r\n' 10:33:11.957041 ====> Client disconnect 10:33:11.958988 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:12.861474 Running IPv4 version 10:33:12.862816 Listening on port 42765 10:33:12.863271 Wrote pid 134736 to log/2/server/ftp_sockdata.pid 10:33:12.863458 Received PING (on stdin) 10:33:12.864291 Received PORT (on stdin) 10:33:12.876586 ====> Client connect 10:33:12.893822 Received DATA (on stdin) 10:33:12.894078 > 17 bytes data, server => client 10:33:12.894174 'WE ROOLZ: 79558\r\n' 10:33:12.894487 Received DISC (on stdin) 10:33:12.894713CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1154 ../src/curl -q --output log/5/curl1154.out --include --trace-ascii log/5/trace1154 --trace-time http://127.0.0.1:41733/1154 > log/5/stdout1154 2> log/5/stderr1154 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1153 ../src/curl -q --output log/1/curl1153.out --include --trace-ascii log/1/trace1153 --trace-time ftp://127.0.0.1:38733/test-1153/ > log/1/stdout1153 2> log/1/stderr1153 ====> Client forcibly disconnected 10:33:12.896527 Received QUIT (on stdin) 10:33:12.896721 quits 10:33:12.897268 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 "just one Testnum 1152 === End of file server.cmd === Start of file valgrind1152 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1152 test 1153...[FTP with quoted double quotes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1153 ../src/curl -q --output log/1/curl1153.out --include --trace-ascii log/1/trace1153 --trace-time ftp://127.0.0.1:38733/test-1153/ > log/1/stdout1153 2> log/1/stderr1153 1153: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1153 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1153 ../src/curl -q --output log/1/curl1153.out --include --trace-ascii log/1/trace1153 --trace-time ftp://127.0.0.1:38733/test-1153/ > log/1/stdout1153 2> log/1/stderr1153 === End of file commands.log === Start of file ftp_server.log 10:33:12.163626 ====> Client connect 10:33:12.165123 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:12.173170 < "USER anonymous" 10:33:12.173839 > "331 We are happy you popped in![CR][LF]" 10:33:12.178873 < "PASS ftp@example.com" 10:33:12.179407 > "230 Welcome you silly person[CR][LF]" 10:33:12.189865 < "PWD" 10:33:12.190392 > "257 "/" is current directory[CR][LF]" 10:33:12.194103 < "EPSV" 10:33:12.194502 ====> Passive DATA channel requested by client 10:33:12.194690 DATA sockfilt for passive data channel starting... 10:33:12.209325 DATA sockfilt for passive data channel started (pid 134741) 10:33:12.210657 DATA sockfilt for passive data channel listens on port 44615 10:33:12.211188 > "229 Entering Passive Mode (|||44615|)[LF]" 10:33:12.211462 Client has been notified that DATA conn will be accepted on port 44615 10:33:12.217126 Client connects to port 44615 10:33:12.217691 ====> Client established passive DATA connection on port 44615 10:33:12.218767 < "TYPE I" 10:33:12.219237 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:12.224721 < "SIZE verifiedserver" 10:33:12.225337 > "213 17[CR][LF]" 10:33:12.229611 < "RETR verifiedserver" 10:33:12.230376 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:12.231153 =====> Closing passive DATA connection... 10:33:12.231534 Server disconnects passive DATA connection 10:33:12.232915 Server disconnected passive DATA connection 10:33:12.233401 DATA sockfilt for passive data channel quits (pid 134741) 10:33:12.237550 DATA sockfilt for passive data channel quit (pid 134741) 10:33:12.238061 =====> Closed passive DATA connection 10:33:12.238573 > "226 File transfer complete[CR][LF]" 10:33:12.280401 < "QUIT" 10:33:12.281211 > "221 bye bye baby[CR][LF]" 10:33:12.291587 MAIN sockfilt said DISC 10:33:12.293087 ====> Client disconnected 10:33:12.294228 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:11.831058 ====> Client connect 10:33:11.835951 Received DATA (on stdin) 10:33:11.836199 > 160 bytes data, server => client 10:33:11.836367 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:11.836489 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:11.836609 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:11.840212 < 16 bytes data, client => server 10:33:11.840433 'USER anonymous\r\n' 10:33:11.843313 Received DATA (on stdin) 10:33:11.843622 > 33 bytes data, server => client 10:33:11.843717 '331 We are happy you popped in!\r\n' 10:33:11.844462 < 22 bytes data, client => server 10:33:11.844676 'PASS ftp@example.com\r\n' 10:33:11.848283 Received DATA (on stdin) 10:33:11.848583 > 30 bytes data, server => client 10:33:11.848705 '230 Welcome you silly person\r\n' 10:33:11.852829 < 5 bytes data, client => server 10:33:11.853089 'PWD\r\n' 10:33:11.859725 Received DATA (on stdin) 10:33:11.859993 > 30 bytes data, server => client 10:33:11.860113 '257 "/" is current directory\r\n' 10:33:11.863436 < 6 bytes data, client => server 10:33:11.863578 'EPSV\r\n' 10:33:11.882947 Received DATA (on stdin) 10:33:11.883145 > 38 bytes data, server => client 10:33:11.883238 '229 Entering Passive Mode (|||44615|)\n' 10:33:11.884811 < 8 bytes data, client => server 10:33:11.885072 'TYPE I\r\n' 10:33:11.887676 Received DATA (on stdin) 10:33:11.887826 > 33 bytes data, server => client 10:33:11.887914 '200 I modify TYPE as you wanted\r\n' 10:33:11.890699 < 21 bytes data, client => server 10:33:11.890947 'SIZE verifiedserver\r\n' 10:33:11.893785 Received DATA (on stdin) 10:33:11.894078 > 8 bytes data, server => client 10:33:11.894173 '213 17\r\n' 10:33:11.894922 < 21 bytes data, client => server 10:33:11.895091 'RETR verifiedserver\r\n' 10:33:11.899741 Received DATA (on stdin) 10:33:11.899916 > 29 bytes data, server => client 10:33:11.900017 '150 Binary junk (17 bytes).\r\n' 10:33:11.907213 Received DATA (on stdin) 10:33:11.907407 > 28 bytes data, server => client 10:33:11.907515 '226 File transfer complete\r\n' 10:33:11.943563 < 6 bytes data, client => server 10:33:11.943772 'QUIT\r\n' 10:33:11.950458 Received DATA (on stdin) 10:33:11.950838 > 18 bytes data, server => client 10:33:11.951115 '221 bye bye baby\r\n' 10:33:11.959486 ====> Client disconnect 10:33:11.960613 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:12.874742 Running IPv4 version 10:33:12.875411 Listening on port 44615 10:33:12.875883 Wrote pid 134741 to log/1/server/ftp_sockdata.pid 10:33:12.876102 Received PING (on stdin) 10:33:12.878461 Received PORT (on stdin) 10:33:12.884991 ====> Client connect 10:33:12.899230 Received DATA (on stdin) 10:33:12.899470 > 17 bytes data, server => client 10:33:12.899593 'WE ROOLZ: 79585\r\n' 10:33:12.900233 Received DISC (on stdin) 10:33:12.901200 ====> Client forcibly disconnected 10:33:12.902335 Received QUIT (on stdin) 10:33:12.902582 quits 10:33:12.903147 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 "/""hello""" Testnum 1153 === End of file server.cmd === Start of file valgrind1153 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platformCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1155 ../src/curl -q --output log/8/curl1155.out --include --trace-ascii log/8/trace1155 --trace-time http://127.0.0.1:36007/1155 -c log/8/cookies1155.txt > log/8/stdout1155 2> log/8/stderr1155 -tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1153 test 1154...[HTTP GET with 100K (too long) response header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1154 ../src/curl -q --output log/5/curl1154.out --include --trace-ascii log/5/trace1154 --trace-time http://127.0.0.1:41733/1154 > log/5/stdout1154 2> log/5/stderr1154 1154: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1154 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1154 ../src/curl -q --output log/5/curl1154.out --include --trace-ascii log/5/trace1154 --trace-time http://127.0.0.1:41733/1154 > log/5/stdout1154 2> log/5/stderr1154 === End of file commands.log === Start of file http_server.log 10:33:13.032254 ====> Client connect 10:33:13.032708 accept_connection 3 returned 4 10:33:13.033033 accept_connection 3 returned 0 10:33:13.033261 Read 93 bytes 10:33:13.033418 Process 93 bytes request 10:33:13.033561 Got request: GET /verifiedserver HTTP/1.1 10:33:13.033690 Are-we-friendly question received 10:33:13.034147 Wrote request (93 bytes) input to log/5/server.input 10:33:13.034461 Identifying ourselves as friends 10:33:13.035458 Response sent (56 bytes) and written to log/5/server.response 10:33:13.035621 special request received, no persistency 10:33:13.035693 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 38864 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1154 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1154 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1154 test 1155...[HTTP cookie with parameter word as name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1155 ../src/curl -q --output log/8/curl1155.out --include --trace-ascii log/8/trace1155 --trace-time http://127.0.0.1:36007/1155 -c log/8/cookies1155.txt > log/8/stdout1155 2> log/8/stderr1155 1155: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1155 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1155 ../src/curl -q --output log/8/curl1155.out --include --trace-ascii log/8/trace1155 --trace-time http://127.0.0.1:36007/1155 -c log/8/cookies1155.txt > log/8/stdout1155 2> log/8/stderr1155 === End of file commands.log === Start of file http_server.log 10:33:12.298977 ====> Client connect 10:33:12.299296 accept_connection 3 returned 4 10:33:12.299484 accept_connection 3 returned 0 10:33:12.299631 Read 93 bytes 10:33:12.299730 Process 93 bytes request 10:33:12.299833 Got request: GET /verifiedserver HTTP/1.1 10:33:12.299918 Are-we-friendly question received 10:33:12.300201 Wrote request (93 bytes) input to log/8/server.input 10:33:12.300407 Identifying ourselves as friends 10:33:12.301134 Response sent (56 bytes) and written to log/8/server.response 10:33:12.301261 special request received, no persistency 10:33:12.301324 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58736 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1155 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1155 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1156 ./libtest/libtests lib1156 http://127.0.0.1:36933/want/1156 > log/3/stdout1156 2> log/3/stderr1156 rind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1155 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1157 ../src/curl -q --output log/7/curl1157.out --include --trace-ascii log/7/trace1157 --trace-time http://127.0.0.1:40129/1157 -H @log/7/heads1157.txt > log/7/stdout1157 2> log/7/stderr1157 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1159 ../src/curl -q --include --trace-ascii log/6/trace1159 --trace-time http://127.0.0.1:33363/we/want/our/1159 -w '%{redirect_url}\n' > log/6/stdout1159 2> log/6/stderr1159 test 1156...[HTTP resume/range fail range-error content-range combinations] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1156 ./libtest/libtests lib1156 http://127.0.0.1:36933/want/1156 > log/3/stdout1156 2> log/3/stderr1156 1156: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:13.493915570 +0000 +++ log/3/check-generated 2025-09-11 10:33:13.493915570 +0000 @@ -1 +0,0 @@ -0[LF] == Contents of files in the log/3/ dir after test 1156 === Start of file check-expected 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1156 ./libtest/libtests lib1156 http://127.0.0.1:36933/want/1156 > log/3/stdout1156 2> log/3/stderr1156 === End of file commands.log === Start of file http_server.log 10:33:12.305374 ====> Client connect 10:33:12.305735 accept_connection 3 returned 4 10:33:12.306106 accept_connection 3 returned 0 10:33:12.306398 Read 93 bytes 10:33:12.306571 Process 93 bytes request 10:33:12.306711 Got request: GET /verifiedserver HTTP/1.1 10:33:12.306824 Are-we-friendly question received 10:33:12.307177 Wrote request (93 bytes) input to log/3/server.input 10:33:12.307422 Identifying ourselves as friends 10:33:12.308264 Response sent (56 bytes) and written to log/3/server.response 10:33:12.308410 special request received, no persistency 10:33:12.308486 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60792 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1156 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1156 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1156 test 1157...[Get -H headers from empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1157 ../src/curl -q --output log/7/curl1157.out --include --trace-ascii log/7/trace1157 --trace-time http://127.0.0.1:40129/1157 -H @log/7/heads1157.txt > log/7/stdout1157 2> log/7/stderr1157 1157: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1157 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1157 ../src/curl -q --output log/7/curl1157.out --include --trace-ascii log/7/trace1157 --trace-time http://127.0.0.1:40129/1157 -H @log/7/heads1157.txt > log/7/stdout1157 2> log/7/stderr1157 === End of file commands.log === Start of file http_server.log 10:33:12.429613 ====> Client connect 10:33:12.430045 accept_connection 3 returned 4 10:33:12.430272 accept_connection 3 returned 0 10:33:12.430407 Read 93 bytes 10:33:12.430511 Process 93 bytes request 10:33:12.430595 Got request: GET /verifiedserver HTTP/1.1 10:33:12.430667 Are-we-friendly question received 10:33:12.430928 Wrote request (93 bytes) input to log/7/server.input 10:33:12.431140 Identifying ourselves as friends 10:33:12.431853 Response sent (56 bytes) and written to log/7/server.response 10:33:12.431995 special request received, no persistency 10:33:12.432062 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60186 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1157 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1157 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1157 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1158 ../src/curl -q --output log/4/curl1158.out --include --trace-ascii log/4/trace1158 --trace-time http://127.0.0.1:36757/we/want/1158 -F "file=@\"log/4/test1158\\\".txt\";type=mo/foo;filename=\"test1158\\\".txt\"" -F 'file2=@"log/4/test1158\".txt"' -F 'file3=@"log/4/test1158\".txt";type=m/f,"log/4/test1158\".txt"' > log/4/stdout1158 2> log/4/stderr1158 test 1159...[HTTP Location: and 'redirect_url' with non-supported scheme] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1159 ../src/curl -q --include --trace-ascii log/6/trace1159 --trace-time http://127.0.0.1:33363/we/want/our/1159 -w '%{redirect_url}\n' > log/6/stdout1159 2> log/6/stderr1159 1159: stdout FAILED: --- log/6/check-expected 2025-09-11 10:33:13.737920427 +0000 +++ log/6/check-generated 2025-09-11 10:33:13.737920427 +0000 @@ -1,7 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: ht3p://localhost/[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -This server reply is for testing a simple Location: following[LF] -ht3p://localhost/[LF] == Contents of files in the log/6/ dir after test 1159 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: ht3p://localhost/[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] This server reply is for testing a simple Location: following[LF] ht3p://localhost/[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1159 ../src/curl -q --include --trace-ascii log/6/trace1159 --trace-time http://127.0.0.1:33363/we/want/our/1159 -w '%{redirect_url}\n' > log/6/stdout1159 2> log/6/stderr1159 === End of file commands.log === Start of file http_server.log 10:33:12.582317 ====> Client connect 10:33:12.582686 accept_connection 3 returned 4 10:33:12.582938 accept_connection 3 returned 0 10:33:12.583115 Read 93 bytes 10:33:12.583226 Process 93 bytes request 10:33:12.583306 Got request: GET /verifiedserver HTTP/1.1 10:33:12.583377 Are-we-friendly question received 10:33:12.583740 Wrote request (93 bytes) input to log/6/server.input 10:33:12.583989 Identifying ourselves as friends 10:33:12.584885 Response sent (56 bytes) and written to log/6/server.response 10:33:12.585088 special request received, no persistency 10:33:12.585175 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60150 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1159 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1159 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1159 test 1158...[HTTP RFC1867-type formposting with filename containing '"'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1158 ../src/curl -q --output log/4/curl1158.out --include --trace-ascii log/4/trace1158 --trace-time http://127.0.0.1:36757/we/want/1158 -F "file=@\"log/4/test1158\\\".txt\";type=mo/foo;filename=\"test1158\\\".txt\"" -F 'file2=@"log/4/test1158\".txt"' -F 'file3=@"log/4/test1158\".txt";type=m/f,"log/4/test1158\".txt"' > log/4/stdout1158 2> log/4/stderr1158 1158: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1158 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1158 ../src/curl -q --output log/4/curl1158.out --include --trace-ascii log/4/trace1158 --trace-time http://127.0.0.1:36757/we/want/1158 -F "file=@\"log/4/test1158\\\".txt\";type=mo/foo;filename=\"test1158\\\".txt\"" -F 'file2=@"log/4/test1158\".txt"' -F 'file3=@"log/4/test1158\".txt";type=m/f,"log/4/test1158\".txt"' > log/4/stdout1158 2> log/4/stderr1158 === End of file commands.log === Start of file http_server.log 10:33:13.552242 ====> Client connect 10:33:13.552575 accept_connection 3 returned 4 10:33:13.552788 accept_connection 3 returned 0 10:33:13.552967 Read 93 bytes 10:33:13.553068 Process 93 bytes request 10:33:13.553164 Got request: GET /verifiedserver HTTP/1.1 10:33:13.553243 Are-we-friendly question received 10:33:13.553515 Wrote request (93 bytes) input to log/4/server.input 10:33:13.553757 Identifying ourselves as friends 10:33:13.554796 Response sent (56 bytes) and written to log/4/server.response 10:33:13.554986 special request received, no persistency 10:33:13.555065 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52682 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1158 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file test1158".txt foo bar This is a bar foo bar foo === End of file test1158".txt === Start of file valgrind1158 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped lCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1160 ../src/curl -q --output log/2/curl1160.out --include --trace-ascii log/2/trace1160 --trace-time http://127.0.0.1:43789/1160 -c log/2/cookies1160.txt > log/2/stdout1160 2> log/2/stderr1160 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1161 ../src/curl -q --output log/5/curl1161.out --include --trace-ascii log/5/trace1161 --trace-time http://127.0.0.1:41733/1161 -c log/5/cookies1161.txt > log/5/stdout1161 2> log/5/stderr1161 d.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1158 test 1160...[HTTP with long funny format cookie] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1160 ../src/curl -q --output log/2/curl1160.out --include --trace-ascii log/2/trace1160 --trace-time http://127.0.0.1:43789/1160 -c log/2/cookies1160.txt > log/2/stdout1160 2> log/2/stderr1160 1160: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1160 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1160 ../src/curl -q --output log/2/curl1160.out --include --trace-ascii log/2/trace1160 --trace-time http://127.0.0.1:43789/1160 -c log/2/cookies1160.txt > log/2/stdout1160 2> log/2/stderr1160 === End of file commands.log === Start of file http_server.log 10:33:12.947885 ====> Client connect 10:33:12.948520 accept_connection 3 returned 4 10:33:12.948839 accept_connection 3 returned 0 10:33:12.949081 Read 93 bytes 10:33:12.949243 Process 93 bytes request 10:33:12.949369 Got request: GET /verifiedserver HTTP/1.1 10:33:12.949463 Are-we-friendly question received 10:33:12.949803 Wrote request (93 bytes) input to log/2/server.input 10:33:12.950282 Identifying ourselves as friends 10:33:12.951426 Response sent (56 bytes) and written to log/2/server.response 10:33:12.951611 special request received, no persistency 10:33:12.951688 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60960 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1160 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1160 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1160 test 1161...[HTTP cookie with path set twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1161 ../src/curl -q --output log/5/curl1161.out --include --trace-ascii log/5/trace1161 --trace-time http://127.0.0.1:41733/1161 -c log/5/cookies1161.txt > log/5/stdout1161 2> log/5/stderr1161 1161: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1161 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1161 ../src/curl -q --output log/5/curl1161.out --include --trace-ascii log/5/trace1161 --trace-time http://127.0.0.1:41733/1161 -c log/5/cookies1161.txt > log/5/stdout1161 2> log/5/stderr1161 === End of file commands.log === Start of file http_server.log 10:33:14.011617 ====> Client connect 10:33:14.012080 accept_connection 3 returned 4 10:33:14.012362 accept_connection 3 returned 0 10:33:14.012577 Read 93 bytes 10:33:14.012717 Process 93 bytes request 10:33:14.012844 Got request: GET /verifiedserver HTTP/1.1 10:33:14.012925 Are-we-friendly question received 10:33:14.013199 Wrote request (93 bytes) input to log/5/server.input 10:33:14.013428 Identifying ourselves as friends 10:33:14.014585 Response sent (56 bytes) and written to log/5/server.response 10:33:14.014780 special request received, no persistency 10:33:14.014873 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 38872 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1161 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1161 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1165.pl /build/curl/src/curl/tests/.. > log/7/stdout1165 2> log/7/stderr1165 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1162 ./libtest/libtests lib576 "ftp://127.0.0.1:38733/fully_simulated/DOS/[*\\s-'tl" > log/1/stdout1162 2> log/1/stderr1162 valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1161 test 1165...[Verify configure.ac and source code CURL_DISABLE_-sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1165.pl /build/curl/src/curl/tests/.. > log/7/stdout1165 2> log/7/stderr1165 valgrind SKIPPED -------e--- OK (1093 out of 1725, remaining: 01:31, took 0.591s, duration: 02:38) setenv MSYS2_ARG_CONV_EXCL = ftp:// test 1162...[FTP wildcard with crazy pattern] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1162 ./libtest/libtests lib576 "ftp://127.0.0.1:38733/fully_simulated/DOS/[*\\s-'tl" > log/1/stdout1162 2> log/1/stderr1162 1162: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1162 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1162 ./libtest/libtests lib576 "ftp://127.0.0.1:38733/fully_simulated/DOS/[*\\s-'tl" > log/1/stdout1162 2> log/1/stderr1162 === End of file commands.log === Start of file ftp_server.log 10:33:13.487874 ====> Client connect 10:33:13.489242 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:13.495425 < "USER anonymous" 10:33:13.496084 > "331 We are happy you popped in![CR][LF]" 10:33:13.503601 < "PASS ftp@example.com" 10:33:13.506001 > "230 Welcome you silly person[CR][LF]" 10:33:13.508254 < "PWD" 10:33:13.509227 > "257 "/" is current directory[CR][LF]" 10:33:13.515086 < "EPSV" 10:33:13.515677 ====> Passive DATA channel requested by client 10:33:13.516168 DATA sockfilt for passive data channel starting... 10:33:13.529842 DATA sockfilt for passive data channel started (pid 135343) 10:33:13.534154 DATA sockfilt for passive data channel listens on port 46025 10:33:13.534700 > "229 Entering Passive Mode (|||46025|)[LF]" 10:33:13.534975 Client has been notified that DATA conn will be accepted on port 46025 10:33:13.536667 Client connects to port 46025 10:33:13.537141 ====> Client established passive DATA connection on port 46025 10:33:13.538124 < "TYPE I" 10:33:13.538581 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:13.552884 < "SIZE verifiedserver" 10:33:13.553939 > "213 17[CR][LF]" 10:33:13.556659 < "RETR verifiedserver" 10:33:13.557901 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:13.558913 =====> Closing passive DATA connection... 10:33:13.559201 Server disconnects passive DATA connection 10:33:13.560202 Server disconnected passive DATA connection 10:33:13.560599 DATA sockfilt for passive data channel quits (pid 135343) 10:33:13.564802 DATA sockfilt for passive data channel quit (pid 135343) 10:33:13.565265 =====> Closed passive DATA connection 10:33:13.570561 > "226 File transfer complete[CR][LF]" 10:33:13.609833 < "QUIT" 10:33:13.610557 > "221 bye bye baby[CR][LF]" 10:33:13.614720 MAIN sockfilt said DISC 10:33:13.615337 ====> Client disconnected 10:33:13.616108 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:13.153686 ====> Client connect 10:33:13.158339 Received DATA (on stdin) 10:33:13.158610 > 160 bytes data, server => client 10:33:13.158728 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:13.158809 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:13.158880 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:13.162684 < 16 bytes data, client => server 10:33:13.162925 'USER anonymous\r\n' 10:33:13.164552 Received DATA (on stdin) 10:33:13.164790 > 33 bytes data, server => client 10:33:13.164930 '331 We are happy you popped in!\r\n' 10:33:13.170322 < 22 bytes data, client => server 10:33:13.170643 'PASS ftp@example.com\r\n' 10:33:13.172730 Received DATA (on stdin) 10:33:13.173014 > 30 bytes data, server => client 10:33:13.173619 '230 Welcome you silly person\r\n' 10:33:13.174733 < 5 bytes data, client => server 10:33:13.174983 'PWD\r\n' 10:33:13.178603 Received DATA (on stdin) 10:33:13.178963 > 30 bytes data, server => client 10:33:13.179227 '257 "/" is current directory\r\n' 10:33:13.182359 < 6 bytes data, client => server 10:33:13.182663 'EPSV\r\n' 10:33:13.203131 Received DATA (on stdin) 10:33:13.203339 > 38 bytes data, server => client 10:33:13.203446 '229 Entering Passive Mode (|||46025|)\n' 10:33:13.205048 < 8 bytes data, client => server 10:33:13.205254 'TYPE I\r\n' 10:33:13.207064 Received DATA (on stdin) 10:33:13.207273 > 33 bytes data, server => client 10:33:13.207387 '200 I modify TYPE as you wanted\r\n' 10:33:13.216526 < 21 bytes data, client => server 10:33:13.216727 'SIZE verifiedserver\r\n' 10:33:13.222880 Received DATA (on stdin) 10:33:13.223084 > 8 bytes data, server => client 10:33:13.223175 '213 17\r\n' 10:33:13.224025 < 21 bytes data, client => server 10:33:13.224223 'RETR verifiedserver\r\n' 10:33:13.225654 Received DATA (on stdin) 10:33:13.225861 > 29 bytes data, server => client 10:33:13.228002 '150 Binary junk (17 bytes).\r\n' 10:33:13.235218 Received DATA (on stdin) 10:33:13.235471 > 28 bytes data, server => client 10:33:13.238930 '226 File transfer complete\r\n' 10:33:13.273063 < 6 bytes data, client => server 10:33:13.273359 'QUIT\r\n' 10:33:13.279806 Received DATA (on stdin) 10:33:13.280189 > 18 bytes data, server => client 10:33:13.280356 '221 bye bye baby\r\n' 10:33:13.281157 ====> Client disconnect 10:33:13.284293 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:13.194952 Running IPv4 version 10:33:13.195608 Listening on port 46025 10:33:13.195990 Wrote pid 135343 to log/1/server/ftp_sockdata.pid 10:33:13.196821 Received PING (on stdin) 10:33:13.201222 Received PORT (on stdin) 10:33:13.204654 ====> Client connect 10:33:13.226936 Received DATA (on stdin) 10:33:13.227188 > 17 bytes data, server => client 10:33:13.227313 'WE ROOLZ: 79585\r\n' 10:33:13.227939 Received DISC (on stdin) 10:33:13.228140 ====> Client forcibly disconnected 10:33:13.231033 Received QUIT (on stdin) 10:33:13.231304 quits 10:33:13.231800 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1162 === End of file server.cmd === Start of file valgrind1162 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. liCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1164 ../src/curl -q --output log/3/curl1164.out --include --trace-ascii log/3/trace1164 --trace-time http://127.0.0.1:36933/1164 -w '%{size_download}\n' --http0.9 > log/3/stdout1164 2> log/3/stderr1164 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1163 ./libtest/libtests lib576 "ftp://127.0.0.1:42977/fully_simulated/DOS/*[][" > log/8/stdout1163 2> log/8/stderr1163 bc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1162 test 1164...[HTTP/0.9 GET and all zeroes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1164 ../src/curl -q --output log/3/curl1164.out --include --trace-ascii log/3/trace1164 --trace-time http://127.0.0.1:36933/1164 -w '%{size_download}\n' --http0.9 > log/3/stdout1164 2> log/3/stderr1164 1164: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:14.553936671 +0000 +++ log/3/check-generated 2025-09-11 10:33:14.553936671 +0000 @@ -1 +0,0 @@ -208[CR][LF] == Contents of files in the log/3/ dir after test 1164 === Start of file check-expected 208[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1164 ../src/curl -q --output log/3/curl1164.out --include --trace-ascii log/3/trace1164 --trace-time http://127.0.0.1:36933/1164 -w '%{size_download}\n' --http0.9 > log/3/stdout1164 2> log/3/stderr1164 === End of file commands.log === Start of file http_server.log 10:33:13.372268 ====> Client connect 10:33:13.372592 accept_connection 3 returned 4 10:33:13.372803 accept_connection 3 returned 0 10:33:13.372955 Read 93 bytes 10:33:13.373038 Process 93 bytes request 10:33:13.373122 Got request: GET /verifiedserver HTTP/1.1 10:33:13.373202 Are-we-friendly question received 10:33:13.373466 Wrote request (93 bytes) input to log/3/server.input 10:33:13.373695 Identifying ourselves as friends 10:33:13.374565 Response sent (56 bytes) and written to log/3/server.response 10:33:13.374749 special request received, no persistency 10:33:13.374830 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60802 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1164 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1164 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1164 test 1163...[FTP wildcard with pattern ending with an open-bracket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1163 ./libtest/libtests lib576 "ftp://127.0.0.1:42977/fully_simulated/DOS/*[][" > log/8/stdout1163 2> log/8/stderr1163 1163: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1163 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1163 ./libtest/libtests lib576 "ftp://127.0.0.1:42977/fully_simulated/DOS/*[][" > log/8/stdout1163 2> log/8/stderr1163 === End of file commands.log === Start of file ftp_server.log 10:33:13.624217 ====> Client connect 10:33:13.629816 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:13.634997 < "USER anonymous" 10:33:13.635561 > "331 We are happy you popped in![CR][LF]" 10:33:13.640554 < "PASS ftp@example.com" 10:33:13.641147 > "230 Welcome you silly person[CR][LF]" 10:33:13.646586 < "PWD" 10:33:13.647164 > "257 "/" is current directory[CR][LF]" 10:33:13.651283 < "EPSV" 10:33:13.651721 ====> Passive DATA channel requested by client 10:33:13.651951 DATA sockfilt for passive data channel starting... 10:33:13.668422 DATA sockfilt for passive data channel started (pid 135403) 10:33:13.669701 DATA sockfilt for passive data channel listens on port 41073 10:33:13.670244 > "229 Entering Passive Mode (|||41073|)[LF]" 10:33:13.670503 Client has been notified that DATA conn will be accepted on port 41073 10:33:13.672544 Client connects to port 41073 10:33:13.672992 ====> Client established passive DATA connection on port 41073 10:33:13.674192 < "TYPE I" 10:33:13.674748 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:13.679456 < "SIZE verifiedserver" 10:33:13.680007 > "213 17[CR][LF]" 10:33:13.681740 < "RETR verifiedserver" 10:33:13.682326 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:13.685346 =====> Closing passive DATA connection... 10:33:13.685978 Server disconnects passive DATA connection 10:33:13.686329 Fancy that; client wants to DISC, too 10:33:13.687509 Server disconnected passive DATA connection 10:33:13.687925 DATA sockfilt for passive data channel quits (pid 135403) 10:33:13.690059 DATA sockfilt for passive data channel quit (pid 135403) 10:33:13.690572 =====> Closed passive DATA connection 10:33:13.691194 > "226 File transfer complete[CR][LF]" 10:33:13.728307 < "QUIT" 10:33:13.728835 > "221 bye bye baby[CR][LF]" 10:33:13.737769 MAIN sockfilt said DISC 10:33:13.738392 ====> Client disconnected 10:33:13.739134 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:13.290118 ====> Client connect 10:33:13.294950 Received DATA (on stdin) 10:33:13.295238 > 160 bytes data, server => client 10:33:13.298955 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:13.299235 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:13.299371 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:13.301694 < 16 bytes data, client => server 10:33:13.302113 'USER anonymous\r\n' 10:33:13.305589 Received DATA (on stdin) 10:33:13.305950 > 33 bytes data, server => client 10:33:13.306175 '331 We are happy you popped in!\r\n' 10:33:13.307274 < 22 bytes data, client => server 10:33:13.307551 'PASS ftp@example.com\r\n' 10:33:13.309975 Received DATA (on stdin) 10:33:13.310245 > 30 bytes data, server => client 10:33:13.310438 '230 Welcome you silly person\r\n' 10:33:13.311861 < 5 bytes data, client => server 10:33:13.312117 'PWD\r\n' 10:33:13.315620 Received DATA (on stdin) 10:33:13.315849 > 30 bytes data, server => client 10:33:13.316009 '257 "/" is current directory\r\n' 10:33CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1166 ../src/curl -q --output log/6/curl1166.out --include --trace-ascii log/6/trace1166 --trace-time http://127.0.0.1:33363/want/1166 http://127.0.0.1:33363/want/1166 > log/6/stdout1166 2> log/6/stderr1166 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1168 ../src/curl -q --output log/2/curl1168.out --include --trace-ascii log/2/trace1168 --trace-time http://127.0.0.1:43789/want/1168 -L -u "catmai#d:#DZaRJYrixKE*gFY" > log/2/stdout1168 2> log/2/stderr1168 :13.316962 < 6 bytes data, client => server 10:33:13.317166 'EPSV\r\n' 10:33:13.338670 Received DATA (on stdin) 10:33:13.338876 > 38 bytes data, server => client 10:33:13.338981 '229 Entering Passive Mode (|||41073|)\n' 10:33:13.340494 < 8 bytes data, client => server 10:33:13.340763 'TYPE I\r\n' 10:33:13.346018 Received DATA (on stdin) 10:33:13.346266 > 33 bytes data, server => client 10:33:13.346387 '200 I modify TYPE as you wanted\r\n' 10:33:13.347160 < 21 bytes data, client => server 10:33:13.347381 'SIZE verifiedserver\r\n' 10:33:13.348466 Received DATA (on stdin) 10:33:13.348659 > 8 bytes data, server => client 10:33:13.348755 '213 17\r\n' 10:33:13.349400 < 21 bytes data, client => server 10:33:13.349606 'RETR verifiedserver\r\n' 10:33:13.350777 Received DATA (on stdin) 10:33:13.350977 > 29 bytes data, server => client 10:33:13.351087 '150 Binary junk (17 bytes).\r\n' 10:33:13.362172 Received DATA (on stdin) 10:33:13.362442 > 28 bytes data, server => client 10:33:13.362559 '226 File transfer complete\r\n' 10:33:13.395895 < 6 bytes data, client => server 10:33:13.396191 'QUIT\r\n' 10:33:13.397258 Received DATA (on stdin) 10:33:13.397461 > 18 bytes data, server => client 10:33:13.397572 '221 bye bye baby\r\n' 10:33:13.398521 ====> Client disconnect 10:33:13.408716 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:13.332133 Running IPv4 version 10:33:13.332715 Listening on port 41073 10:33:13.333217 Wrote pid 135403 to log/8/server/ftp_sockdata.pid 10:33:13.336327 Received PING (on stdin) 10:33:13.337382 Received PORT (on stdin) 10:33:13.340568 ====> Client connect 10:33:13.351212 Received DATA (on stdin) 10:33:13.351430 > 17 bytes data, server => client 10:33:13.351992 'WE ROOLZ: 86552\r\n' 10:33:13.352962 ====> Client disconnect 10:33:13.355080 Received DISC (on stdin) 10:33:13.355247 Crikey! Client also wants to disconnect 10:33:13.355373 Received ACKD (on stdin) 10:33:13.356770 Received QUIT (on stdin) 10:33:13.356994 quits 10:33:13.357490 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1163 === End of file server.cmd === Start of file valgrind1163 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1163 test 1166...[HTTP response with cookies but not receiving!] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1166 ../src/curl -q --output log/6/curl1166.out --include --trace-ascii log/6/trace1166 --trace-time http://127.0.0.1:33363/want/1166 http://127.0.0.1:33363/want/1166 > log/6/stdout1166 2> log/6/stderr1166 1166: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1166 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1166 ../src/curl -q --output log/6/curl1166.out --include --trace-ascii log/6/trace1166 --trace-time http://127.0.0.1:33363/want/1166 http://127.0.0.1:33363/want/1166 > log/6/stdout1166 2> log/6/stderr1166 === End of file commands.log === Start of file http_server.log 10:33:13.589582 ====> Client connect 10:33:13.589953 accept_connection 3 returned 4 10:33:13.590186 accept_connection 3 returned 0 10:33:13.590344 Read 93 bytes 10:33:13.590442 Process 93 bytes request 10:33:13.590534 Got request: GET /verifiedserver HTTP/1.1 10:33:13.590614 Are-we-friendly question received 10:33:13.590866 Wrote request (93 bytes) input to log/6/server.input 10:33:13.591038 Identifying ourselves as friends 10:33:13.591654 Response sent (56 bytes) and written to log/6/server.response 10:33:13.591775 special request received, no persistency 10:33:13.591841 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60162 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1166 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1166 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1166 test 1168...[HTTP redirect with credentials using # in user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1168 ../src/curl -q --output log/2/curl1168.out --include --trace-ascii log/2/trace1168 --trace-time http://127.0.0.1:43789/want/1168 -L -u "catmai#d:#DZaRJYrixKE*gFY" > log/2/stdout1168 2> log/2/stderr1168 1168: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? ReturneCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1170 ../src/curl -q --output log/7/curl1170.out --include --trace-ascii log/7/trace1170 --trace-time http://127.0.0.1:40129/1170 --tr-encoding -H "Connection:" > log/7/stdout1170 2> log/7/stderr1170 CMD (31488): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/runtests.pl -L /build/curl/src/build-curl/tests/log/5/test1169-library.pl > log/5/stdout1169 2> log/5/stderr1169 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1175.pl /build/curl/src/curl/tests/.. > log/2/stdout1175 2> log/2/stderr1175 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1171 ../src/curl -q --output log/1/curl1171.out --include --trace-ascii log/1/trace1171 --trace-time http://127.0.0.1:36129/1171 --tr-encoding -H "Connection;" > log/1/stdout1171 2> log/1/stderr1171 d: 1 == Contents of files in the log/2/ dir after test 1168 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1168 ../src/curl -q --output log/2/curl1168.out --include --trace-ascii log/2/trace1168 --trace-time http://127.0.0.1:43789/want/1168 -L -u "catmai#d:#DZaRJYrixKE*gFY" > log/2/stdout1168 2> log/2/stderr1168 === End of file commands.log === Start of file http_server.log 10:33:13.971415 ====> Client connect 10:33:13.971912 accept_connection 3 returned 4 10:33:13.972268 accept_connection 3 returned 0 10:33:13.974046 Read 93 bytes 10:33:13.974368 Process 93 bytes request 10:33:13.974617 Got request: GET /verifiedserver HTTP/1.1 10:33:13.974834 Are-we-friendly question received 10:33:13.975329 Wrote request (93 bytes) input to log/2/server.input 10:33:13.975716 Identifying ourselves as friends 10:33:13.977047 Response sent (56 bytes) and written to log/2/server.response 10:33:13.977314 special request received, no persistency 10:33:13.977478 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60972 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1168 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1168 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1168 test 1170...[HTTP GET transfer-encoding with removed Connection:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1170 ../src/curl -q --output log/7/curl1170.out --include --trace-ascii log/7/trace1170 --trace-time http://127.0.0.1:40129/1170 --tr-encoding -H "Connection:" > log/7/stdout1170 2> log/7/stderr1170 1170: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1170 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1170 ../src/curl -q --output log/7/curl1170.out --include --trace-ascii log/7/trace1170 --trace-time http://127.0.0.1:40129/1170 --tr-encoding -H "Connection:" > log/7/stdout1170 2> log/7/stderr1170 === End of file commands.log === Start of file http_server.log 10:33:14.055069 ====> Client connect 10:33:14.055575 accept_connection 3 returned 4 10:33:14.055818 accept_connection 3 returned 0 10:33:14.055971 Read 93 bytes 10:33:14.056095 Process 93 bytes request 10:33:14.056210 Got request: GET /verifiedserver HTTP/1.1 10:33:14.056302 Are-we-friendly question received 10:33:14.056586 Wrote request (93 bytes) input to log/7/server.input 10:33:14.056819 Identifying ourselves as friends 10:33:14.057700 Response sent (56 bytes) and written to log/7/server.response 10:33:14.058358 special request received, no persistency 10:33:14.058562 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60196 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1170 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1170 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1170 test 1169...[Verify that runtests.pl accepts an -L option] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/runtests.pl -L /build/curl/src/build-curl/tests/log/5/test1169-library.pl > log/5/stdout1169 2> log/5/stderr1169 valgrind SKIPPED -------e--- OK (1097 out of 1725, remaining: 01:31, took 1.268s, duration: 02:39) test 1171...[HTTP GET transfer-encoding with blanked Connection:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1171 ../src/curl -q --output log/1/curl1171.out --include --trace-ascii log/1/trace1171 --trace-time http://127.0.0.1:36129/1171 --tr-encoding -H "Connection;" > log/1/stdout1171 2> log/1/stderr1171 1171: protocol FAILED! There was no content at all in the file log/1/server.input. ServCMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1177.pl /build/curl/src/build-curl/tests/../docs/libcurl/curl_version_info.3 /build/curl/src/curl/tests/../include/curl/curl.h /build/curl/src/curl/tests/../lib/version.c > log/5/stdout1177 2> log/5/stderr1177 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1172 ../src/curl -q --output log/3/curl1172.out --include --trace-ascii log/3/trace1172 --trace-time http://127.0.0.1:36933/1172 --no-http0.9 > log/3/stdout1172 2> log/3/stderr1172 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1174 ../src/curl -q --output log/6/curl1174.out --include --trace-ascii log/6/trace1174 --trace-time http://127.0.0.1:33363/1174 > log/6/stdout1174 2> log/6/stderr1174 er glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1171 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1171 ../src/curl -q --output log/1/curl1171.out --include --trace-ascii log/1/trace1171 --trace-time http://127.0.0.1:36129/1171 --tr-encoding -H "Connection;" > log/1/stdout1171 2> log/1/stderr1171 === End of file commands.log === Start of file http_server.log 10:33:14.289730 ====> Client connect 10:33:14.290249 accept_connection 3 returned 4 10:33:14.290473 accept_connection 3 returned 0 10:33:14.290628 Read 93 bytes 10:33:14.290741 Process 93 bytes request 10:33:14.290844 Got request: GET /verifiedserver HTTP/1.1 10:33:14.290925 Are-we-friendly question received 10:33:14.291247 Wrote request (93 bytes) input to log/1/server.input 10:33:14.291506 Identifying ourselves as friends 10:33:14.292332 Response sent (56 bytes) and written to log/1/server.response 10:33:14.292498 special request received, no persistency 10:33:14.292583 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46162 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1171 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1171 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1171 test 1175...[Verify that symbols-in-versions and libcurl-errors.3 are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1175.pl /build/curl/src/curl/tests/.. > log/2/stdout1175 2> log/2/stderr1175 valgrind SKIPPED -------e--- OK (1103 out of 1725, remaining: 01:29, took 0.216s, duration: 02:39) test 1177...[Verify that feature names and CURL_VERSION_* in lib and docs are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1177.pl /build/curl/src/build-curl/tests/../docs/libcurl/curl_version_info.3 /build/curl/src/curl/tests/../include/curl/curl.h /build/curl/src/curl/tests/../lib/version.c > log/5/stdout1177 2> log/5/stderr1177 valgrind SKIPPED -------e--- OK (1105 out of 1725, remaining: 01:29, took 0.158s, duration: 02:39) test 1172...[HTTP/0.9 GET response denied] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1172 ../src/curl -q --output log/3/curl1172.out --include --trace-ascii log/3/trace1172 --trace-time http://127.0.0.1:36933/1172 --no-http0.9 > log/3/stdout1172 2> log/3/stderr1172 1172: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1172 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1172 ../src/curl -q --output log/3/curl1172.out --include --trace-ascii log/3/trace1172 --trace-time http://127.0.0.1:36933/1172 --no-http0.9 > log/3/stdout1172 2> log/3/stderr1172 === End of file commands.log === Start of file http_server.log 10:33:14.433637 ====> Client connect 10:33:14.434691 accept_connection 3 returned 4 10:33:14.434936 accept_connection 3 returned 0 10:33:14.435111 Read 93 bytes 10:33:14.435226 Process 93 bytes request 10:33:14.435328 Got request: GET /verifiedserver HTTP/1.1 10:33:14.435421 Are-we-friendly question received 10:33:14.435715 Wrote request (93 bytes) input to log/3/server.input 10:33:14.435956 Identifying ourselves as friends 10:33:14.436900 Response sent (56 bytes) and written to log/3/server.response 10:33:14.437115 special request received, no persistency 10:33:14.437224 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60808 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1172 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1172 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1172 test 1174...[HTTP/0.9 GET response denied by default] ../libtool --mode=execute /usr/bin/valgrind --tool=mCMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1167.pl /build/curl/src/curl/tests/.. > log/4/stdout1167 2> log/4/stderr1167 CMD (1280): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/checksrc.pl -bmagicbad -balsobad log/6/code1185.c > log/6/stdout1185 2> log/6/stderr1185 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1176 ../src/curl -q --include --trace-ascii log/7/trace1176 --trace-time http://127.0.0.1:40129/1176 -o 'log/7/base-#0' > log/7/stdout1176 2> log/7/stderr1176 emcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1174 ../src/curl -q --output log/6/curl1174.out --include --trace-ascii log/6/trace1174 --trace-time http://127.0.0.1:33363/1174 > log/6/stdout1174 2> log/6/stderr1174 1174: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1174 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1174 ../src/curl -q --output log/6/curl1174.out --include --trace-ascii log/6/trace1174 --trace-time http://127.0.0.1:33363/1174 > log/6/stdout1174 2> log/6/stderr1174 === End of file commands.log === Start of file http_server.log 10:33:14.572390 ====> Client connect 10:33:14.572700 accept_connection 3 returned 4 10:33:14.572896 accept_connection 3 returned 0 10:33:14.573057 Read 93 bytes 10:33:14.573191 Process 93 bytes request 10:33:14.573320 Got request: GET /verifiedserver HTTP/1.1 10:33:14.573415 Are-we-friendly question received 10:33:14.573674 Wrote request (93 bytes) input to log/6/server.input 10:33:14.574008 Identifying ourselves as friends 10:33:14.575002 Response sent (56 bytes) and written to log/6/server.response 10:33:14.575203 special request received, no persistency 10:33:14.575312 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 60168 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1174 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1174 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1174 test 1167...[Verify curl prefix of public symbols in header files] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1167.pl /build/curl/src/curl/tests/.. > log/4/stdout1167 2> log/4/stderr1167 valgrind SKIPPED -------e--- OK (1095 out of 1725, remaining: 01:31, took 1.929s, duration: 02:39) test 1185...[checksrc] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/checksrc.pl -bmagicbad -balsobad log/6/code1185.c > log/6/stdout1185 2> log/6/stderr1185 valgrind SKIPPED s------e--- OK (1110 out of 1725, remaining: 01:28, took 0.619s, duration: 02:40) test 1176...[--output using #0] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1176 ../src/curl -q --include --trace-ascii log/7/trace1176 --trace-time http://127.0.0.1:40129/1176 -o 'log/7/base-#0' > log/7/stdout1176 2> log/7/stderr1176 1176: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1176 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1176 ../src/curl -q --include --trace-ascii log/7/trace1176 --trace-time http://127.0.0.1:40129/1176 -o 'log/7/base-#0' > log/7/stdout1176 2> log/7/stderr1176 === End of file commands.log === Start of file http_server.log 10:33:15.191095 ====> Client connect 10:33:15.191499 accept_connection 3 returned 4 10:33:15.191763 accept_connection 3 returned 0 10:33:15.191936 Read 93 bytes 10:33:15.192049 Process 93 bytes request 10:33:15.192151 Got request: GET /verifiedserver HTTP/1.1 10:33:15.192233 Are-we-friendly question received 10:33:15.192504 Wrote request (93 bytes) input to log/7/server.input 10:33:15.192747 Identifying ourselves as friends 10:33:15.193653 Response sent (56 bytes) and written to log/7/server.response 10:33:15.198339 special request received, no persistency 10:33:15.198477 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60206 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1176 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1176 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1178 ../src/curl -q --output log/2/curl1178.out --include --trace-ascii log/2/trace1178 --trace-time http://127.0.0.1:43789/we/want/that/page/1178 -x http://127.0.0.1:43789 -U AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB > log/2/stdout1178 2> log/2/stderr1178 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1180 ../src/curl -q --output log/1/curl1180.out --include --trace-ascii log/1/trace1180 --trace-time --proxy http://127.0.0.1:36129 -H "Proxy-Connection: Keep-Alive" http://127.0.0.1:36129/1180 > log/1/stdout1180 2> log/1/stderr1180 nd1176 test 1178...[HTTP proxy auth with credentials longer than 256 bytes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1178 ../src/curl -q --output log/2/curl1178.out --include --trace-ascii log/2/trace1178 --trace-time http://127.0.0.1:43789/we/want/that/page/1178 -x http://127.0.0.1:43789 -U AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB > log/2/stdout1178 2> log/2/stderr1178 1178: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1178 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1178 ../src/curl -q --output log/2/curl1178.out --include --trace-ascii log/2/trace1178 --trace-time http://127.0.0.1:43789/we/want/that/page/1178 -x http://127.0.0.1:43789 -U AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB > log/2/stdout1178 2> log/2/stderr1178 === End of file commands.log === Start of file http_server.log 10:33:15.364545 ====> Client connect 10:33:15.364864 accept_connection 3 returned 4 10:33:15.365049 accept_connection 3 returned 0 10:33:15.365182 Read 93 bytes 10:33:15.365273 Process 93 bytes request 10:33:15.365362 Got request: GET /verifiedserver HTTP/1.1 10:33:15.365436 Are-we-friendly question received 10:33:15.365683 Wrote request (93 bytes) input to log/2/server.input 10:33:15.366027 Identifying ourselves as friends 10:33:15.366915 Response sent (56 bytes) and written to log/2/server.response 10:33:15.367058 special request received, no persistency 10:33:15.367127 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60980 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1178 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1178 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1178 test 1180...[HTTP GET request with proxy and -H "Proxy-Connection: keep-alive"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1180 ../src/curl -q --output log/1/curl1180.out --include --trace-ascii log/1/trace1180 --trace-time --proxy http://127.0.0.1:36129 -H "Proxy-Connection: Keep-Alive" http://127.0.0.1:36129/1180 > log/1/stdout1180 2> log/1/stderr1180 1180: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1180 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1180 ../src/curl -q --output log/1/curl1180.out --include --trace-ascii log/1/trace1180 --trace-time --proxy http://127.0.0.1:36129 -H "Proxy-Connection: Keep-Alive" http://127.0.0.1:36129/1180 > log/1/stdout1180 2> log/1/stderr1180 === End of file commands.log === Start of file http_server.log 10:33:15.381336 ====> Client connect 10:33:15.381665 accept_connection 3 returned 4 10:33:15.381961 accept_connection 3 returned 0 10:33:15.382142 Read 93 bytes 10:33:15.382230 Process 93 bytes request 10:33:15.382320 Got request: GET /verifiedserver HTTP/1.1 10:33:15.382394 Are-we-friendly question received 10:33:15.382637 Wrote request (93 bytes) input to log/1/server.input 10:33:15.382817 Identifying ourselves as friends 10:33:15.383585 Response sent (56 bytes) and written to log/1/server.response 10:33:15.383765 special request received, no persistency 10:33:15.383845 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46168 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1183 ../src/curl -q --output log/3/curl1183.out --include --trace-ascii log/3/trace1183 --trace-time http://127.0.0.1:36933/1183 > log/3/stdout1183 2> log/3/stderr1183 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1181 ../src/curl -q --output log/5/curl1181.out --include --trace-ascii log/5/trace1181 --trace-time --proxy http://127.0.0.1:41733 --proxy-header "Proxy-Connection: Keep-Alive" http://127.0.0.1:41733/1181 > log/5/stdout1181 2> log/5/stderr1181 es data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1180 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1180 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1180 test 1183...[1183 used instead of actual test number] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1183 ../src/curl -q --output log/3/curl1183.out --include --trace-ascii log/3/trace1183 --trace-time http://127.0.0.1:36933/1183 > log/3/stdout1183 2> log/3/stderr1183 1183: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1183 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1183 ../src/curl -q --output log/3/curl1183.out --include --trace-ascii log/3/trace1183 --trace-time http://127.0.0.1:36933/1183 > log/3/stdout1183 2> log/3/stderr1183 === End of file commands.log === Start of file http_server.log 10:33:15.507459 ====> Client connect 10:33:15.507750 accept_connection 3 returned 4 10:33:15.507912 accept_connection 3 returned 0 10:33:15.508042 Read 93 bytes 10:33:15.508123 Process 93 bytes request 10:33:15.508208 Got request: GET /verifiedserver HTTP/1.1 10:33:15.508287 Are-we-friendly question received 10:33:15.508502 Wrote request (93 bytes) input to log/3/server.input 10:33:15.508673 Identifying ourselves as friends 10:33:15.509341 Response sent (56 bytes) and written to log/3/server.response 10:33:15.509460 special request received, no persistency 10:33:15.509523 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60818 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1183 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1183 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1183 test 1181...[HTTP GET request with proxy and "Proxy-Connection: Keep-Alive"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1181 ../src/curl -q --output log/5/curl1181.out --include --trace-ascii log/5/trace1181 --trace-time --proxy http://127.0.0.1:41733 --proxy-header "Proxy-Connection: Keep-Alive" http://127.0.0.1:41733/1181 > log/5/stdout1181 2> log/5/stderr1181 1181: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1181 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1181 ../src/curl -q --output log/5/curl1181.out --include --trace-ascii log/5/trace1181 --trace-time --proxy http://127.0.0.1:41733 --proxy-header "Proxy-Connection: Keep-Alive" http://127.0.0.1:41733/1181 > log/5/stdout1181 2> log/5/stderr1181 === End of file commands.log === Start of file http_server.log 10:33:16.451546 ====> Client connect 10:33:16.451890 accept_connection 3 returned 4 10:33:16.452066 accept_connection 3 returned 0 10:33:16.452189 Read 93 bytes 10:33:16.452266 Process 93 bytes request 10:33:16.452346 Got request: GET /verifiedserver HTTP/1.1 10:33:16.452415 Are-we-friendly question received 10:33:16.452629 Wrote request (93 bytes) input to log/5/server.input 10:33:16.452803 Identifying ourselves as friends 10:33:16.453454 Response sent (56 bytes) and written to log/5/server.response 10:33:16.453581 special request received, no persistency 10:33:16.453649 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 38888 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1181 === End of file server.cmd === Start of file server.response HTTP/CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1173.pl /build/curl/src/curl/tests/../docs/libcurl/symbols-in-versions /build/curl/src/build-curl/tests/../docs/*.1 /build/curl/src/build-curl/tests/../docs/cmdline-opts/*.1 /build/curl/src/build-curl/tests/../docs/libcurl/*.3 /build/curl/src/build-curl/tests/../docs/libcurl/opts/*.3 > log/8/stdout1173 2> log/8/stderr1173 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1186 ../src/curl -q --output log/4/curl1186.out --include --trace-ascii log/4/trace1186 --trace-time http://127.0.0.1:36757/we/want/1186 --form-escape -F "file=@\"log/4/test1186\\\".txt\";type=mo/foo;filename=\"test1186\\\".txt\"" -F 'file2=@"log/4/test1186\".txt"' -F 'file3=@"log/4/test1186\".txt";type=m/f,"log/4/test1186\".txt"' > log/4/stdout1186 2> log/4/stderr1186 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1188 ../src/curl -q --output log/7/curl1188.out --include --trace-ascii log/7/trace1188 --trace-time -f -s -w '%{onerror}%{stderr}%{urlnum} says %{exitcode} %{errormsg}\n' http://127.0.0.1:40129/we/want/our/1188 http://127.0.0.1:40129/we/want/our/1188 > log/7/stdout1188 2> log/7/stderr1188 1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1181 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1181 test 1173...[Manpage syntax checks] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1173.pl /build/curl/src/curl/tests/../docs/libcurl/symbols-in-versions /build/curl/src/build-curl/tests/../docs/*.1 /build/curl/src/build-curl/tests/../docs/cmdline-opts/*.1 /build/curl/src/build-curl/tests/../docs/libcurl/*.3 /build/curl/src/build-curl/tests/../docs/libcurl/opts/*.3 > log/8/stdout1173 2> log/8/stderr1173 valgrind SKIPPED -r-----e--- OK (1101 out of 1725, remaining: 01:30, took 1.974s, duration: 02:40) test 1186...[Multipart formposting with backslash-escaping filename containing '"'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1186 ../src/curl -q --output log/4/curl1186.out --include --trace-ascii log/4/trace1186 --trace-time http://127.0.0.1:36757/we/want/1186 --form-escape -F "file=@\"log/4/test1186\\\".txt\";type=mo/foo;filename=\"test1186\\\".txt\"" -F 'file2=@"log/4/test1186\".txt"' -F 'file3=@"log/4/test1186\".txt";type=m/f,"log/4/test1186\".txt"' > log/4/stdout1186 2> log/4/stderr1186 1186: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1186 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1186 ../src/curl -q --output log/4/curl1186.out --include --trace-ascii log/4/trace1186 --trace-time http://127.0.0.1:36757/we/want/1186 --form-escape -F "file=@\"log/4/test1186\\\".txt\";type=mo/foo;filename=\"test1186\\\".txt\"" -F 'file2=@"log/4/test1186\".txt"' -F 'file3=@"log/4/test1186\".txt";type=m/f,"log/4/test1186\".txt"' > log/4/stdout1186 2> log/4/stderr1186 === End of file commands.log === Start of file http_server.log 10:33:16.651499 ====> Client connect 10:33:16.651763 accept_connection 3 returned 4 10:33:16.651930 accept_connection 3 returned 0 10:33:16.652055 Read 93 bytes 10:33:16.652134 Process 93 bytes request 10:33:16.652227 Got request: GET /verifiedserver HTTP/1.1 10:33:16.652306 Are-we-friendly question received 10:33:16.652565 Wrote request (93 bytes) input to log/4/server.input 10:33:16.652768 Identifying ourselves as friends 10:33:16.653488 Response sent (56 bytes) and written to log/4/server.response 10:33:16.653637 special request received, no persistency 10:33:16.653736 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 52692 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1186 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file test1186".txt foo bar This is a bar foo bar foo === End of file test1186".txt === Start of file valgrind1186 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1186 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1187 ../src/curl -q --output log/6/curl1187.out --include --trace-ascii log/6/trace1187 --trace-time smtp://127.0.0.1:42767/1187 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=This is the mail text" -F '=File content;filename="strange\file\"name"' log/6/stdout1187 2> log/6/stderr1187 test 1188...[--write-out with %{onerror} and %{urlnum} to stderr] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1188 ../src/curl -q --output log/7/curl1188.out --include --trace-ascii log/7/trace1188 --trace-time -f -s -w '%{onerror}%{stderr}%{urlnum} says %{exitcode} %{errormsg}\n' http://127.0.0.1:40129/we/want/our/1188 http://127.0.0.1:40129/we/want/our/1188 > log/7/stdout1188 2> log/7/stderr1188 1188: stderr FAILED: --- log/7/check-expected 2025-09-11 10:33:17.165988666 +0000 +++ log/7/check-generated 2025-09-11 10:33:17.165988666 +0000 @@ -1,2 +0,0 @@ -0 says 22 The requested URL returned error: 404[CR][LF] -1 says 22 The requested URL returned error: 404[CR][LF] == Contents of files in the log/7/ dir after test 1188 === Start of file check-expected 0 says 22 The requested URL returned error: 404[CR][LF] 1 says 22 The requested URL returned error: 404[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1188 ../src/curl -q --output log/7/curl1188.out --include --trace-ascii log/7/trace1188 --trace-time -f -s -w '%{onerror}%{stderr}%{urlnum} says %{exitcode} %{errormsg}\n' http://127.0.0.1:40129/we/want/our/1188 http://127.0.0.1:40129/we/want/our/1188 > log/7/stdout1188 2> log/7/stderr1188 === End of file commands.log === Start of file http_server.log 10:33:16.191414 ====> Client connect 10:33:16.191811 accept_connection 3 returned 4 10:33:16.192051 accept_connection 3 returned 0 10:33:16.192228 Read 93 bytes 10:33:16.192319 Process 93 bytes request 10:33:16.192425 Got request: GET /verifiedserver HTTP/1.1 10:33:16.192517 Are-we-friendly question received 10:33:16.194916 Wrote request (93 bytes) input to log/7/server.input 10:33:16.195234 Identifying ourselves as friends 10:33:16.196094 Response sent (56 bytes) and written to log/7/server.response 10:33:16.196241 special request received, no persistency 10:33:16.196319 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60218 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1188 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1188 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1188 test 1187...[SMTP multipart with file name escaping] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1187 ../src/curl -q --output log/6/curl1187.out --include --trace-ascii log/6/trace1187 --trace-time smtp://127.0.0.1:42767/1187 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=This is the mail text" -F '=File content;filename="strange\file\"name"' log/6/stdout1187 2> log/6/stderr1187 1187: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1187 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1187 ../src/curl -q --output log/6/curl1187.out --include --trace-ascii log/6/trace1187 --trace-time smtp://127.0.0.1:42767/1187 --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=This is the mail text" -F '=File content;filename="strange\file\"name"' log/6/stdout1187 2> log/6/stderr1187 === End of file commands.log === Start of file server.cmd Testnum 1187 === End of file server.cmd === Start of file smtp_server.log 10:33:16.505690 ====> Client connect 10:33:16.507042 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:16.512190 < "EHLO verifiedserver" 10:33:16.512803 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:33:16.518415 < "HELP" 10:33:16.518976 > "214 WE ROOLZ: 120427[CR][LF]" 10:33:16.519294 return proof we are we 10:33:16.525015 < "QUIT" 10:33:16.525691 > "221 curl ESMTP server signing off[CR][LF]" 10:33:16.535928 MAIN sockfilt said DISC 10:33:16.536508 ====> Client disconnected 10:33:16.537211 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:33:16.170041 ====> Client connect 10:33:16.178053 Received DATA (on stdin) 10:33:16.178366 > 160 bytes data, server => client 10:33:16.178499 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:16.178623 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:16.178740 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:16.179590 < 21 bytes data, client => server 10:33:16.179800 'EHLO verifiedserver\r\n' 10:33:16.181202 Received DATA (on stdin) 10:33:16.181435 > 53 bytes data, server => client 10:33:16.181555 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:33:16.182765 < 6 bytes data, client => server 10:33:16.183013 'HELP\r\n' 10:33:16.189935 Received DATA (on stdin) 10:33:16.190164 > 22 bytes data, server => client 10:33:16.190282 '214 WE ROOLZ: 120427\r\n' 10:33:16.192600 < 6 bytes data, client => server 10:33:16.192809 'QUIT\r\n' 10:33:16.195163 Received DATA (on stdin) 10:33:16.195362 > 35 bytes data, server => client 10:33:16.195460 '221 curl ESMTP server signing off\r\n' 10:33:16.202053 ====> Client disconnect 10:33:16.205040 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-1187 From: different To: another body === End of file stdin-for-1187 === Start of file valgrind1187 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirectedCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1189 ../src/curl -q --output log/2/curl1189.out --include --trace-ascii log/2/trace1189 --trace-time http://127.0.0.1:43789/we/want/1189 --form-escape -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/2/stdout1189 2> log/2/stderr1189 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1190 ../src/curl -q --output log/1/curl1190.out --include --trace log/1/trace1190 --trace-time mqtt://127.0.0.1:40043/1190 > log/1/stdout1190 2> log/1/stderr1190 function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1187 test 1189...[Multipart formposting with backslash-escaping of name= and filename=] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1189 ../src/curl -q --output log/2/curl1189.out --include --trace-ascii log/2/trace1189 --trace-time http://127.0.0.1:43789/we/want/1189 --form-escape -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/2/stdout1189 2> log/2/stderr1189 1189: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1189 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1189 ../src/curl -q --output log/2/curl1189.out --include --trace-ascii log/2/trace1189 --trace-time http://127.0.0.1:43789/we/want/1189 --form-escape -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2= log/2/stdout1189 2> log/2/stderr1189 === End of file commands.log === Start of file http_server.log 10:33:16.329276 ====> Client connect 10:33:16.329545 accept_connection 3 returned 4 10:33:16.329694 accept_connection 3 returned 0 10:33:16.329942 Read 93 bytes 10:33:16.330078 Process 93 bytes request 10:33:16.330163 Got request: GET /verifiedserver HTTP/1.1 10:33:16.330235 Are-we-friendly question received 10:33:16.330439 Wrote request (93 bytes) input to log/2/server.input 10:33:16.330571 Identifying ourselves as friends 10:33:16.331140 Response sent (56 bytes) and written to log/2/server.response 10:33:16.331270 special request received, no persistency 10:33:16.331332 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60994 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1189 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file test1189.txt foo bar This is a bar foo bar foo === End of file test1189.txt === Start of file valgrind1189 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1189 startnew: ./server/servers mqttd --port 0 --pidfile log/1/server/mqtt_server.pid --portfile log/1/server/mqtt_server.port --config log/1/server.cmd --logfile log/1/mqtt_server.log --logdir log/1 RUN: MQTT server is now running PID 136424 on PORT 40043 * pid mqtt => 136424 136424 test 1190...[MQTT SUBSCRIBE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1190 ../src/curl -q --output log/1/curl1190.out --include --trace log/1/trace1190 --trace-time mqtt://127.0.0.1:40043/1190 > log/1/stdout1190 2> log/1/stderr1190 1190: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1190 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1190 ../src/curl -q --output log/1/curl1190.out --include --trace log/1/trace1190 --trace-time mqtt://127.0.0.1:40043/1190 > log/1/stdout1190 2> log/1/stderr1190 === End of file commands.log === Start of file mqtt_server.log 10:33:16.240665 Running IPv4 version 10:33:16.241204 Listening on port 40043 10:33:16.241543 Wrote pid 136424 to log/1/server/mqtt_server.pid 10:33:16.241882 Wrote port 40043 to log/1/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1190 === End of file server.cmd === Start of file valgrind1190 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer teCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1191 ../src/curl -q --output log/3/curl1191.out --include --trace log/3/trace1191 --trace-time mqtt://127.0.0.1:36001/1191 -d something > log/3/stdout1191 2> log/3/stderr1191 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1192 ../src/curl -q --output log/5/curl1192.out --include --trace log/5/trace1192 --trace-time mqtt://127.0.0.1:35925/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1192 > log/5/stdout1192 2> log/5/stderr1192 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1197 ../src/curl -q --include --trace-ascii log/2/trace1197 --trace-time http://127.0.0.1:43789/1197 -w "%{method}\n" -L -d "twinkle twinkle little star" > log/2/stdout1197 2> log/2/stderr1197 rm): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1190 startnew: ./server/servers mqttd --port 0 --pidfile log/3/server/mqtt_server.pid --portfile log/3/server/mqtt_server.port --config log/3/server.cmd --logfile log/3/mqtt_server.log --logdir log/3 RUN: MQTT server is now running PID 136436 on PORT 36001 * pid mqtt => 136436 136436 test 1191...[MQTT PUBLISH] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1191 ../src/curl -q --output log/3/curl1191.out --include --trace log/3/trace1191 --trace-time mqtt://127.0.0.1:36001/1191 -d something > log/3/stdout1191 2> log/3/stderr1191 1191: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1191 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1191 ../src/curl -q --output log/3/curl1191.out --include --trace log/3/trace1191 --trace-time mqtt://127.0.0.1:36001/1191 -d something > log/3/stdout1191 2> log/3/stderr1191 === End of file commands.log === Start of file mqtt_server.log 10:33:16.284271 Running IPv4 version 10:33:16.284985 Listening on port 36001 10:33:16.285493 Wrote pid 136436 to log/3/server/mqtt_server.pid 10:33:16.285932 Wrote port 36001 to log/3/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1191 === End of file server.cmd === Start of file valgrind1191 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1191 startnew: ./server/servers mqttd --port 0 --pidfile log/5/server/mqtt_server.pid --portfile log/5/server/mqtt_server.port --config log/5/server.cmd --logfile log/5/mqtt_server.log --logdir log/5 RUN: MQTT server is now running PID 136446 on PORT 35925 * pid mqtt => 136446 136446 test 1192...[MQTT SUBSCRIBE 2k topic] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1192 ../src/curl -q --output log/5/curl1192.out --include --trace log/5/trace1192 --trace-time mqtt://127.0.0.1:35925/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1192 > log/5/stdout1192 2> log/5/stderr1192 1192: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1192 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1192 ../src/curl -q --output log/5/curl1192.out --include --trace log/5/trace1192 --trace-time mqtt://127.0.0.1:35925/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/1192 > log/5/stdout1192 2> log/5/stderr1192 === End of file commands.log === Start of file mqtt_server.log 10:33:16.301790 Running IPv4 version 10:33:16.302422 Listening on port 35925 10:33:16.302765 Wrote pid 136446 to log/5/server/mqtt_server.pid 10:33:16.302983 Wrote port 35925 to log/5/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1192 === End of file server.cmd === Start of file valgrind1192 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1192 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1193 ../src/curl -q --output log/8/curl1193.out --include --trace log/8/trace1193 --trace-time mqtt://127.0.0.1:42687/1193 -d @log/8/payload1193 > log/8/stdout1193 2> log/8/stderr1193 test 1197...[HTTP POST redirected to GET and --write-out method] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1197 ../src/curl -q --include --trace-ascii log/2/trace1197 --trace-time http://127.0.0.1:43789/1197 -w "%{method}\n" -L -d "twinkle twinkle little star" > log/2/stdout1197 2> log/2/stderr1197 1197: stdout FAILED: --- log/2/check-expected 2025-09-11 10:33:18.266010563 +0000 +++ log/2/check-generated 2025-09-11 10:33:18.266010563 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 302 OK swsbounce swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 8[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain[CR][LF] -Location: ./11970001[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Content-Length: 15[CR][LF] -Connection: close[CR][LF] -Content-Type: text/plain; charset=us-ascii[CR][LF] -[CR][LF] -bigger monster[LF] -GET[LF] == Contents of files in the log/2/ dir after test 1197 === Start of file check-expected HTTP/1.1 302 OK swsbounce swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 8[CR][LF] Connection: close[CR][LF] Content-Type: text/plain[CR][LF] Location: ./11970001[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Content-Length: 15[CR][LF] Connection: close[CR][LF] Content-Type: text/plain; charset=us-ascii[CR][LF] [CR][LF] bigger monster[LF] GET[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1197 ../src/curl -q --include --trace-ascii log/2/trace1197 --trace-time http://127.0.0.1:43789/1197 -w "%{method}\n" -L -d "twinkle twinkle little star" > log/2/stdout1197 2> log/2/stderr1197 === End of file commands.log === Start of file http_server.log 10:33:17.204968 ====> Client connect 10:33:17.205241 accept_connection 3 returned 4 10:33:17.205387 accept_connection 3 returned 0 10:33:17.205491 Read 93 bytes 10:33:17.205557 Process 93 bytes request 10:33:17.205635 Got request: GET /verifiedserver HTTP/1.1 10:33:17.205699 Are-we-friendly question received 10:33:17.205916 Wrote request (93 bytes) input to log/2/server.input 10:33:17.206057 Identifying ourselves as friends 10:33:17.206547 Response sent (56 bytes) and written to log/2/server.response 10:33:17.206629 special request received, no persistency 10:33:17.206682 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 32768 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1197 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1197 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1197 startnew: ./server/servers mqttd --port 0 --pidfile log/8/server/mqtt_server.pid --portfile log/8/server/mqtt_server.port --config log/8/server.cmd --logfile log/8/mqtt_server.log --logdir log/8 RUN: MQTT server is now running PID 136454 on PORT 42687 * pid mqtt => 136454 136454 test 1193...[MQTT PUBLISH 2k payload] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1193 ../src/curl -q --output log/8/curl1193.out --include --trace log/8/trace1193 --trace-time mqtt://127.0.0.1:42687/1193 -d @log/8/payload1193 > log/8/stdout1193 2> log/8/stderr1193 1193: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1193 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1193 ../src/curl -q --output log/8/curl1193.out --include --trace log/8/trace1193 --trace-time mqtt://127.0.0.1:42687/1193 -d @log/8/payload1193 > log/8/stdout1193 2> log/8/stderr1193 === End of file commands.log === Start of file mqtt_server.log 10:33:16.327442 Running IPv4 version 10:33:16.327899 Listening on port 42687 10:33:16.330356 Wrote pid 136454 to log/8/server/mqtt_server.pid 10:33:16.330627 Wrote port 42687 to log/8/server/mqtt_server.port === End of file mqtt_server.log === Start of file payload1193 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1194 ../src/curl -q --output log/4/curl1194.out --include --trace log/4/trace1194 --trace-time mqtt://127.0.0.1:39119/1194 > log/4/stdout1194 2> log/4/stderr1194 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1198 ../src/curl -q --output log/1/curl1198.out --include --trace log/1/trace1198 --trace-time mqtt://127.0.0.1:40043/%20 -d "" > log/1/stdout1198 2> log/1/stderr1198 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1199 ../src/curl -q --output log/3/curl1199.out --include --trace log/3/trace1199 --trace-time mqtt://127.0.0.1:36001 -d "" > log/3/stdout1199 2> log/3/stderr1199 234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 === End of file payload1193 === Start of file server.cmd Testnum 1193 === End of file server.cmd === Start of file valgrind1193 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1193 startnew: ./server/servers mqttd --port 0 --pidfile log/4/server/mqtt_server.pid --portfile log/4/server/mqtt_server.port --config log/4/server.cmd --logfile log/4/mqtt_server.log --logdir log/4 RUN: MQTT server is now running PID 136552 on PORT 39119 * pid mqtt => 136552 136552 test 1194...[MQTT SUBSCRIBE with PUBLISH before SUBACK] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1194 ../src/curl -q --output log/4/curl1194.out --include --trace log/4/trace1194 --trace-time mqtt://127.0.0.1:39119/1194 > log/4/stdout1194 2> log/4/stderr1194 1194: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1194 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1194 ../src/curl -q --output log/4/curl1194.out --include --trace log/4/trace1194 --trace-time mqtt://127.0.0.1:39119/1194 > log/4/stdout1194 2> log/4/stderr1194 === End of file commands.log === Start of file mqtt_server.log 10:33:16.609580 Running IPv4 version 10:33:16.610133 Listening on port 39119 10:33:16.610439 Wrote pid 136552 to log/4/server/mqtt_server.pid 10:33:16.610673 Wrote port 39119 to log/4/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd PUBLISH-before-SUBACK TRUE Testnum 1194 === End of file server.cmd === Start of file valgrind1194 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1194 test 1198...[MQTT PUBLISH empty payload, single space topic] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1198 ../src/curl -q --output log/1/curl1198.out --include --trace log/1/trace1198 --trace-time mqtt://127.0.0.1:40043/%20 -d "" > log/1/stdout1198 2> log/1/stderr1198 1198: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1198 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1198 ../src/curl -q --output log/1/curl1198.out --include --trace log/1/trace1198 --trace-time mqtt://127.0.0.1:40043/%20 -d "" > log/1/stdout1198 2> log/1/stderr1198 === End of file commands.log === Start of file server.cmd Testnum 1198 === End of file server.cmd === Start of file valgrind1198 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1198 test 1199...[MQTT PUBLISH empty payload, no topic] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1199 ../src/curl -q --output log/3/curl1199.out --include --trace log/3/trace1199 --trace-time mqtt://127.0.0.1:36001 -d "" > log/3/stdout1199 2> log/3/stderr1199 1199: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1199 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1195 ../src/curl -q --output log/7/curl1195.out --include --trace log/7/trace1195 --trace-time mqtt://127.0.0.1:33835/1195 > log/7/stdout1195 2> log/7/stderr1195 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1196 ../src/curl -q --output log/6/curl1196.out --include --trace log/6/trace1196 --trace-time mqtt://127.0.0.1:40257/1196 > log/6/stdout1196 2> log/6/stderr1196 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1205 ../src/curl -q --output log/3/curl1205.out --include --trace-ascii log/3/trace1205 --trace-time http://127.0.0.1:36933/1205 > log/3/stdout1205 2> log/3/stderr1205 yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1199 ../src/curl -q --output log/3/curl1199.out --include --trace log/3/trace1199 --trace-time mqtt://127.0.0.1:36001 -d "" > log/3/stdout1199 2> log/3/stderr1199 === End of file commands.log === Start of file server.cmd Testnum 1199 === End of file server.cmd === Start of file valgrind1199 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1199 startnew: ./server/servers mqttd --port 0 --pidfile log/7/server/mqtt_server.pid --portfile log/7/server/mqtt_server.port --config log/7/server.cmd --logfile log/7/mqtt_server.log --logdir log/7 RUN: MQTT server is now running PID 136619 on PORT 33835 * pid mqtt => 136619 136619 test 1195...[MQTT SUBSCRIBE with short PUBLISH] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1195 ../src/curl -q --output log/7/curl1195.out --include --trace log/7/trace1195 --trace-time mqtt://127.0.0.1:33835/1195 > log/7/stdout1195 2> log/7/stderr1195 1195: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1195 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1195 ../src/curl -q --output log/7/curl1195.out --include --trace log/7/trace1195 --trace-time mqtt://127.0.0.1:33835/1195 > log/7/stdout1195 2> log/7/stderr1195 === End of file commands.log === Start of file mqtt_server.log 10:33:17.895925 Running IPv4 version 10:33:17.896424 Listening on port 33835 10:33:17.896681 Wrote pid 136619 to log/7/server/mqtt_server.pid 10:33:17.896852 Wrote port 33835 to log/7/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd PUBLISH-before-SUBACK TRUE short-PUBLISH TRUE Testnum 1195 === End of file server.cmd === Start of file valgrind1195 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1195 startnew: ./server/servers mqttd --port 0 --pidfile log/6/server/mqtt_server.pid --portfile log/6/server/mqtt_server.port --config log/6/server.cmd --logfile log/6/mqtt_server.log --logdir log/6 RUN: MQTT server is now running PID 136621 on PORT 40257 * pid mqtt => 136621 136621 test 1196...[MQTT with error in CONNACK] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1196 ../src/curl -q --output log/6/curl1196.out --include --trace log/6/trace1196 --trace-time mqtt://127.0.0.1:40257/1196 > log/6/stdout1196 2> log/6/stderr1196 1196: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1196 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1196 ../src/curl -q --output log/6/curl1196.out --include --trace log/6/trace1196 --trace-time mqtt://127.0.0.1:40257/1196 > log/6/stdout1196 2> log/6/stderr1196 === End of file commands.log === Start of file mqtt_server.log 10:33:17.911843 Running IPv4 version 10:33:17.912339 Listening on port 40257 10:33:17.912596 Wrote pid 136621 to log/6/server/mqtt_server.pid 10:33:17.912795 Wrote port 40257 to log/6/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd error-CONNACK 1 Testnum 1196 === End of file server.cmd === Start of file valgrind1196 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1196 test 1205...[HTTP GET with 18K HTTP header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callersCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1204 ../src/curl -q --output log/1/curl1204.out --include --trace-ascii log/1/trace1204 --trace-time http://127.0.0.1:36129/1204 -u testuser:testpass --anyauth > log/1/stdout1204 2> log/1/stderr1204 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1206 ../src/curl -q --output log/7/curl1206.out --include --trace-ascii log/7/trace1206 --trace-time --max-time 8 ftp://127.0.0.1:38253/1206 -P - > log/7/stdout1206 2> log/7/stderr1206 =16 --log-file=log/3/valgrind1205 ../src/curl -q --output log/3/curl1205.out --include --trace-ascii log/3/trace1205 --trace-time http://127.0.0.1:36933/1205 > log/3/stdout1205 2> log/3/stderr1205 1205: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1205 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1205 ../src/curl -q --output log/3/curl1205.out --include --trace-ascii log/3/trace1205 --trace-time http://127.0.0.1:36933/1205 > log/3/stdout1205 2> log/3/stderr1205 === End of file commands.log === Start of file http_server.log 10:33:18.732933 ====> Client connect 10:33:18.733293 accept_connection 3 returned 4 10:33:18.733536 accept_connection 3 returned 0 10:33:18.733700 Read 93 bytes 10:33:18.734014 Process 93 bytes request 10:33:18.734139 Got request: GET /verifiedserver HTTP/1.1 10:33:18.734221 Are-we-friendly question received 10:33:18.734508 Wrote request (93 bytes) input to log/3/server.input 10:33:18.734758 Identifying ourselves as friends 10:33:18.735576 Response sent (56 bytes) and written to log/3/server.response 10:33:18.735720 special request received, no persistency 10:33:18.735791 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 60826 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1205 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1205 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1205 test 1204...[HTTP with WWW-Authenticate and multiple auths in a single line] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1204 ../src/curl -q --output log/1/curl1204.out --include --trace-ascii log/1/trace1204 --trace-time http://127.0.0.1:36129/1204 -u testuser:testpass --anyauth > log/1/stdout1204 2> log/1/stderr1204 1204: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1204 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1204 ../src/curl -q --output log/1/curl1204.out --include --trace-ascii log/1/trace1204 --trace-time http://127.0.0.1:36129/1204 -u testuser:testpass --anyauth > log/1/stdout1204 2> log/1/stderr1204 === End of file commands.log === Start of file http_server.log 10:33:18.706477 ====> Client connect 10:33:18.706872 accept_connection 3 returned 4 10:33:18.707076 accept_connection 3 returned 0 10:33:18.707212 Read 93 bytes 10:33:18.707301 Process 93 bytes request 10:33:18.707393 Got request: GET /verifiedserver HTTP/1.1 10:33:18.707477 Are-we-friendly question received 10:33:18.707762 Wrote request (93 bytes) input to log/1/server.input 10:33:18.708026 Identifying ourselves as friends 10:33:18.708952 Response sent (56 bytes) and written to log/1/server.response 10:33:18.709146 special request received, no persistency 10:33:18.709224 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46182 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1204 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1204 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1204 test 1206...[FTP PORT and 425 on download] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1206 ../src/curl -q --output log/7/curl1206.out --include --trace-ascii log/7/trace1206 --trace-time --max-time 8 ftp://127.0.0.1:38253/1206 -P - > log/7/stdout1206 2> log/7/stderr1206 1206: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir afCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1207 ../src/curl -q --output log/6/curl1207.out --include --trace-ascii log/6/trace1207 --trace-time --max-time 8 ftp://127.0.0.1:33323/1207 -P - > log/6/stdout1207 2> log/6/stderr1207 ter test 1206 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1206 ../src/curl -q --output log/7/curl1206.out --include --trace-ascii log/7/trace1206 --trace-time --max-time 8 ftp://127.0.0.1:38253/1206 -P - > log/7/stdout1206 2> log/7/stderr1206 === End of file commands.log === Start of file ftp_server.log 10:33:19.079643 ====> Client connect 10:33:19.080622 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:19.082944 < "USER anonymous" 10:33:19.083702 > "331 We are happy you popped in![CR][LF]" 10:33:19.085564 < "PASS ftp@example.com" 10:33:19.085972 > "230 Welcome you silly person[CR][LF]" 10:33:19.087639 < "PWD" 10:33:19.088068 > "257 "/" is current directory[CR][LF]" 10:33:19.089980 < "EPSV" 10:33:19.090301 ====> Passive DATA channel requested by client 10:33:19.090432 DATA sockfilt for passive data channel starting... 10:33:19.100431 DATA sockfilt for passive data channel started (pid 137180) 10:33:19.101447 DATA sockfilt for passive data channel listens on port 38309 10:33:19.102002 > "229 Entering Passive Mode (|||38309|)[LF]" 10:33:19.102180 Client has been notified that DATA conn will be accepted on port 38309 10:33:19.103609 Client connects to port 38309 10:33:19.103923 ====> Client established passive DATA connection on port 38309 10:33:19.104536 < "TYPE I" 10:33:19.104823 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:19.106068 < "SIZE verifiedserver" 10:33:19.106450 > "213 17[CR][LF]" 10:33:19.107788 < "RETR verifiedserver" 10:33:19.108188 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:19.108777 =====> Closing passive DATA connection... 10:33:19.108977 Server disconnects passive DATA connection 10:33:19.110263 Server disconnected passive DATA connection 10:33:19.110645 DATA sockfilt for passive data channel quits (pid 137180) 10:33:19.112186 DATA sockfilt for passive data channel quit (pid 137180) 10:33:19.112468 =====> Closed passive DATA connection 10:33:19.112843 > "226 File transfer complete[CR][LF]" 10:33:19.150820 < "QUIT" 10:33:19.151168 > "221 bye bye baby[CR][LF]" 10:33:19.155589 MAIN sockfilt said DISC 10:33:19.156020 ====> Client disconnected 10:33:19.156548 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:19.747316 ====> Client connect 10:33:19.749218 Received DATA (on stdin) 10:33:19.749359 > 160 bytes data, server => client 10:33:19.749437 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:19.749504 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:19.749565 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:19.750207 < 16 bytes data, client => server 10:33:19.750370 'USER anonymous\r\n' 10:33:19.751653 Received DATA (on stdin) 10:33:19.751801 > 33 bytes data, server => client 10:33:19.752277 '331 We are happy you popped in!\r\n' 10:33:19.752881 < 22 bytes data, client => server 10:33:19.753060 'PASS ftp@example.com\r\n' 10:33:19.754525 Received DATA (on stdin) 10:33:19.754642 > 30 bytes data, server => client 10:33:19.754713 '230 Welcome you silly person\r\n' 10:33:19.755197 < 5 bytes data, client => server 10:33:19.755341 'PWD\r\n' 10:33:19.756601 Received DATA (on stdin) 10:33:19.756721 > 30 bytes data, server => client 10:33:19.756791 '257 "/" is current directory\r\n' 10:33:19.757285 < 6 bytes data, client => server 10:33:19.757425 'EPSV\r\n' 10:33:19.770302 Received DATA (on stdin) 10:33:19.770473 > 38 bytes data, server => client 10:33:19.770563 '229 Entering Passive Mode (|||38309|)\n' 10:33:19.771814 < 8 bytes data, client => server 10:33:19.771962 'TYPE I\r\n' 10:33:19.773120 Received DATA (on stdin) 10:33:19.773230 > 33 bytes data, server => client 10:33:19.773300 '200 I modify TYPE as you wanted\r\n' 10:33:19.773852 < 21 bytes data, client => server 10:33:19.774031 'SIZE verifiedserver\r\n' 10:33:19.774747 Received DATA (on stdin) 10:33:19.774859 > 8 bytes data, server => client 10:33:19.774935 '213 17\r\n' 10:33:19.775472 < 21 bytes data, client => server 10:33:19.775617 'RETR verifiedserver\r\n' 10:33:19.776486 Received DATA (on stdin) 10:33:19.776577 > 29 bytes data, server => client 10:33:19.776654 '150 Binary junk (17 bytes).\r\n' 10:33:19.781390 Received DATA (on stdin) 10:33:19.781607 > 28 bytes data, server => client 10:33:19.781698 '226 File transfer complete\r\n' 10:33:19.818538 < 6 bytes data, client => server 10:33:19.818774 'QUIT\r\n' 10:33:19.819465 Received DATA (on stdin) 10:33:19.819564 > 18 bytes data, server => client 10:33:19.819642 '221 bye bye baby\r\n' 10:33:19.820119 ====> Client disconnect 10:33:19.824346 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:19.767523 Running IPv4 version 10:33:19.767988 Listening on port 38309 10:33:19.768272 Wrote pid 137180 to log/7/server/ftp_sockdata.pid 10:33:19.768398 Received PING (on stdin) 10:33:19.769210 Received PORT (on stdin) 10:33:19.771591 ====> Client connect 10:33:19.777488 Received DATA (on stdin) 10:33:19.777621 > 17 bytes data, server => client 10:33:19.777690 'WE ROOLZ: 79543\r\n' 10:33:19.778093 Received DISC (on stdin) 10:33:19.778293 ====> Client forcibly disconnected 10:33:19.779184 Received QUIT (on stdin) 10:33:19.779335 quits 10:33:19.779730 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN425 Testnum 1206 === End of file server.cmd === Start of file valgrind1206 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1206 test 1207...[FTP PORT and 421 on download] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1207 ../src/curl -q --output log/6/curl1207.out --include --trace-ascii log/6/trace1207 --trace-time --max-time 8 ftp://127.0.0.1:33323/1207 -P - > log/6/stdout1207 2> log/6/stderr1207 1207: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1207 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1207 ../src/curl -q --output log/6/curl1207.out --include --trace-ascii log/6/trace1207 --trace-time --max-time 8 ftp://127.0.0.1:33323/1207 -P - > log/6/stdout1207 2> log/6CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1200 ../src/curl -q --output log/5/curl1200.out --include --trace-ascii log/5/trace1200 --trace-time gopher://127.0.0.1:34733/1/1200 > log/5/stdout1200 2> log/5/stderr1200 /stderr1207 === End of file commands.log === Start of file ftp_server.log 10:33:19.098426 ====> Client connect 10:33:19.100477 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:19.101934 < "USER anonymous" 10:33:19.102315 > "331 We are happy you popped in![CR][LF]" 10:33:19.104129 < "PASS ftp@example.com" 10:33:19.104491 > "230 Welcome you silly person[CR][LF]" 10:33:19.106303 < "PWD" 10:33:19.106656 > "257 "/" is current directory[CR][LF]" 10:33:19.109527 < "EPSV" 10:33:19.109854 ====> Passive DATA channel requested by client 10:33:19.110024 DATA sockfilt for passive data channel starting... 10:33:19.119689 DATA sockfilt for passive data channel started (pid 137181) 10:33:19.120550 DATA sockfilt for passive data channel listens on port 45753 10:33:19.120930 > "229 Entering Passive Mode (|||45753|)[LF]" 10:33:19.121097 Client has been notified that DATA conn will be accepted on port 45753 10:33:19.122395 Client connects to port 45753 10:33:19.122749 ====> Client established passive DATA connection on port 45753 10:33:19.123398 < "TYPE I" 10:33:19.123708 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:19.124875 < "SIZE verifiedserver" 10:33:19.125227 > "213 17[CR][LF]" 10:33:19.126593 < "RETR verifiedserver" 10:33:19.126979 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:19.127581 =====> Closing passive DATA connection... 10:33:19.127805 Server disconnects passive DATA connection 10:33:19.128009 Fancy that; client wants to DISC, too 10:33:19.128173 Server disconnected passive DATA connection 10:33:19.128313 DATA sockfilt for passive data channel quits (pid 137181) 10:33:19.129817 DATA sockfilt for passive data channel quit (pid 137181) 10:33:19.130073 =====> Closed passive DATA connection 10:33:19.130326 > "226 File transfer complete[CR][LF]" 10:33:19.178117 < "QUIT" 10:33:19.178498 > "221 bye bye baby[CR][LF]" 10:33:19.180124 MAIN sockfilt said DISC 10:33:19.180541 ====> Client disconnected 10:33:19.181080 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:19.766142 ====> Client connect 10:33:19.767838 Received DATA (on stdin) 10:33:19.767999 > 160 bytes data, server => client 10:33:19.768165 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:19.768259 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:19.768335 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:19.769252 < 16 bytes data, client => server 10:33:19.769378 'USER anonymous\r\n' 10:33:19.770944 Received DATA (on stdin) 10:33:19.771095 > 33 bytes data, server => client 10:33:19.771170 '331 We are happy you popped in!\r\n' 10:33:19.771632 < 22 bytes data, client => server 10:33:19.771783 'PASS ftp@example.com\r\n' 10:33:19.773058 Received DATA (on stdin) 10:33:19.773212 > 30 bytes data, server => client 10:33:19.773291 '230 Welcome you silly person\r\n' 10:33:19.773864 < 5 bytes data, client => server 10:33:19.774028 'PWD\r\n' 10:33:19.775028 Received DATA (on stdin) 10:33:19.775138 > 30 bytes data, server => client 10:33:19.775217 '257 "/" is current directory\r\n' 10:33:19.777276 < 6 bytes data, client => server 10:33:19.777411 'EPSV\r\n' 10:33:19.789234 Received DATA (on stdin) 10:33:19.789363 > 38 bytes data, server => client 10:33:19.789452 '229 Entering Passive Mode (|||45753|)\n' 10:33:19.790582 < 8 bytes data, client => server 10:33:19.790678 'TYPE I\r\n' 10:33:19.791990 Received DATA (on stdin) 10:33:19.792098 > 33 bytes data, server => client 10:33:19.792170 '200 I modify TYPE as you wanted\r\n' 10:33:19.792682 < 21 bytes data, client => server 10:33:19.792790 'SIZE verifiedserver\r\n' 10:33:19.793522 Received DATA (on stdin) 10:33:19.793620 > 8 bytes data, server => client 10:33:19.793687 '213 17\r\n' 10:33:19.794360 < 21 bytes data, client => server 10:33:19.794495 'RETR verifiedserver\r\n' 10:33:19.795262 Received DATA (on stdin) 10:33:19.795359 > 29 bytes data, server => client 10:33:19.795432 '150 Binary junk (17 bytes).\r\n' 10:33:19.798651 Received DATA (on stdin) 10:33:19.798799 > 28 bytes data, server => client 10:33:19.798887 '226 File transfer complete\r\n' 10:33:19.842581 < 6 bytes data, client => server 10:33:19.842821 'QUIT\r\n' 10:33:19.847263 Received DATA (on stdin) 10:33:19.847460 > 18 bytes data, server => client 10:33:19.847544 '221 bye bye baby\r\n' 10:33:19.848095 ====> Client disconnect 10:33:19.849942 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:19.786775 Running IPv4 version 10:33:19.787314 Listening on port 45753 10:33:19.787608 Wrote pid 137181 to log/6/server/ftp_sockdata.pid 10:33:19.787741 Received PING (on stdin) 10:33:19.788402 Received PORT (on stdin) 10:33:19.790395 ====> Client connect 10:33:19.795532 Received DATA (on stdin) 10:33:19.795638 > 17 bytes data, server => client 10:33:19.795715 'WE ROOLZ: 79480\r\n' 10:33:19.796150 ====> Client disconnect 10:33:19.796297 Received DISC (on stdin) 10:33:19.796376 Crikey! Client also wants to disconnect 10:33:19.796445 Received ACKD (on stdin) 10:33:19.796792 Received QUIT (on stdin) 10:33:19.796895 quits 10:33:19.797287 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN421 Testnum 1207 === End of file server.cmd === Start of file valgrind1207 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1207 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --gopher --keepalive 30 --pidfile "log/5/server/gopher_server.pid" --logfile "log/5/gopher_server.log" --logdir "log/5" --portfile log/5/server/gopher_server.port --config log/5/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: GOPHER server is on PID 136898 port 34733 * pid gopher => 136898 136898 test 1200...[Gopher index] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1200 ../src/curl -q --output log/5/curl1200.out --include --trace-ascii log/5/trace1200 --trace-time gopher://127.0.0.1:34733/1/1200 > log/5/stdout1200 2> log/5/stderr1200 1200: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1200 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1200 ../src/curl -q --output log/5/curl1200.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1201 ../src/curl -q --output log/2/curl1201.out --include --trace-ascii log/2/trace1201 --trace-time gopher://127.0.0.1:34803/1/selector/SELECTOR/1201 > log/2/stdout1201 2> log/2/stderr1201 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1202 ../src/curl -q --output log/8/curl1202.out --include --trace-ascii log/8/trace1202 --trace-time "gopher://127.0.0.1:39651/7/the/search/engine%09query%20succeeded/1202" > log/8/stdout1202 2> log/8/stderr1202 out --include --trace-ascii log/5/trace1200 --trace-time gopher://127.0.0.1:34733/1/1200 > log/5/stdout1200 2> log/5/stderr1200 === End of file commands.log === Start of file gopher_server.log 10:33:18.172478 Running GOPHER IPv4 version on port 34733 10:33:18.173467 Wrote pid 136898 to log/5/server/gopher_server.pid 10:33:18.174055 Wrote port 34733 to log/5/server/gopher_server.port === End of file gopher_server.log === Start of file server.cmd Testnum 1200 === End of file server.cmd === Start of file valgrind1200 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1200 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --gopher --keepalive 30 --pidfile "log/2/server/gopher_server.pid" --logfile "log/2/gopher_server.log" --logdir "log/2" --portfile log/2/server/gopher_server.port --config log/2/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: GOPHER server is on PID 136907 port 34803 * pid gopher => 136907 136907 test 1201...[Gopher selector] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1201 ../src/curl -q --output log/2/curl1201.out --include --trace-ascii log/2/trace1201 --trace-time gopher://127.0.0.1:34803/1/selector/SELECTOR/1201 > log/2/stdout1201 2> log/2/stderr1201 1201: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1201 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1201 ../src/curl -q --output log/2/curl1201.out --include --trace-ascii log/2/trace1201 --trace-time gopher://127.0.0.1:34803/1/selector/SELECTOR/1201 > log/2/stdout1201 2> log/2/stderr1201 === End of file commands.log === Start of file gopher_server.log 10:33:18.212241 Running GOPHER IPv4 version on port 34803 10:33:18.213153 Wrote pid 136907 to log/2/server/gopher_server.pid 10:33:18.213566 Wrote port 34803 to log/2/server/gopher_server.port === End of file gopher_server.log === Start of file server.cmd Testnum 1201 === End of file server.cmd === Start of file valgrind1201 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1201 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --gopher --keepalive 30 --pidfile "log/8/server/gopher_server.pid" --logfile "log/8/gopher_server.log" --logdir "log/8" --portfile log/8/server/gopher_server.port --config log/8/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: GOPHER server is on PID 136928 port 39651 * pid gopher => 136928 136928 test 1202...[Gopher query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1202 ../src/curl -q --output log/8/curl1202.out --include --trace-ascii log/8/trace1202 --trace-time "gopher://127.0.0.1:39651/7/the/search/engine%09query%20succeeded/1202" > log/8/stdout1202 2> log/8/stderr1202 1202: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1202 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1202 ../src/curl -q --output log/8/curl1202.out --include --trace-ascii log/8/trace1202 --trace-time "gopher://127.0.0.1:39651/7/the/search/engine%09query%20succeeded/1202" > log/8/stdout1202 2> log/8/stderr1202 === End of file commands.log === Start of file gopher_server.log 10:33:18.294917 Running GOPHER IPv4 version on port 39651 10:33:18.295714 Wrote pid 136928 to log/8/server/gopher_server.pid 10:33:18.296100 Wrote port 39651 to log/8/server/gopher_server.port === End of file gopher_server.log === Start of file server.cmd Testnum 1202 === End of file server.cmd === Start of file valgrind1202 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you areCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1203 ../src/curl -q --output log/4/curl1203.out --include --trace-ascii log/4/trace1203 --trace-time -g gopher://[::1]:34825/1/moo/1203 > log/4/stdout1203 2> log/4/stderr1203 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1210 ../src/curl -q --trace-ascii log/1/trace1210 --trace-time http://127.0.0.1:36129/1210?junk -J -O --output-dir log/1 > log/1/stdout1210 2> log/1/stderr1210 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1208 ../src/curl -q --output log/3/curl1208.out --include --trace-ascii log/3/trace1208 --trace-time --max-time 8 ftp://127.0.0.1:33831/1208 -P - > log/3/stdout1208 2> log/3/stderr1208 debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1202 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --gopher --keepalive 30 --pidfile "log/4/server/gopher_ipv6_server.pid" --logfile "log/4/gopher_ipv6_server.log" --logdir "log/4" --portfile log/4/server/gopher_ipv6_server.port --config log/4/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: GOPHER-IPv6 server is on PID 137093 port 34825 * pid gopher-ipv6 => 137093 137093 test 1203...[Gopher IPv6 index] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1203 ../src/curl -q --output log/4/curl1203.out --include --trace-ascii log/4/trace1203 --trace-time -g gopher://[::1]:34825/1/moo/1203 > log/4/stdout1203 2> log/4/stderr1203 1203: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1203 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1203 ../src/curl -q --output log/4/curl1203.out --include --trace-ascii log/4/trace1203 --trace-time -g gopher://[::1]:34825/1/moo/1203 > log/4/stdout1203 2> log/4/stderr1203 === End of file commands.log === Start of file gopher_ipv6_server.log 10:33:18.597945 Running GOPHER IPv6 version on port 34825 10:33:18.598742 Wrote pid 137093 to log/4/server/gopher_ipv6_server.pid 10:33:18.599043 Wrote port 34825 to log/4/server/gopher_ipv6_server.port === End of file gopher_ipv6_server.log === Start of file server.cmd Testnum 1203 === End of file server.cmd === Start of file valgrind1203 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1203 test 1210...[HTTP GET with -J without Content-Disposition] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1210 ../src/curl -q --trace-ascii log/1/trace1210 --trace-time http://127.0.0.1:36129/1210?junk -J -O --output-dir log/1 > log/1/stdout1210 2> log/1/stderr1210 1210: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1210 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1210 ../src/curl -q --trace-ascii log/1/trace1210 --trace-time http://127.0.0.1:36129/1210?junk -J -O --output-dir log/1 > log/1/stdout1210 2> log/1/stderr1210 === End of file commands.log === Start of file http_server.log 10:33:19.606086 ====> Client connect 10:33:19.606488 accept_connection 3 returned 4 10:33:19.607501 accept_connection 3 returned 0 10:33:19.610425 Read 93 bytes 10:33:19.610651 Process 93 bytes request 10:33:19.610786 Got request: GET /verifiedserver HTTP/1.1 10:33:19.610921 Are-we-friendly question received 10:33:19.611322 Wrote request (93 bytes) input to log/1/server.input 10:33:19.611674 Identifying ourselves as friends 10:33:19.612804 Response sent (56 bytes) and written to log/1/server.response 10:33:19.612989 special request received, no persistency 10:33:19.613073 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46184 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1210 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1210 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1210 test 1208...[FTP PORT download, no data conn and no transient negative reply] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1208 ../src/curl -q --output log/3/curl1208.out --include --trace-ascii log/3/trace1208 --trace-time --max-time 8 ftp://127.0.0.1:33831/1208 -P - > log/3/stdout1208 2> log/3/stderr1208 1208: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1208 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1214 ../src/curl -q --output log/5/curl1214.out --include --trace-ascii log/5/trace1214 --trace-time -x 127.0.0.1:41733 http://we.want.that.site.com.1214?moo=foo > log/5/stdout1214 2> log/5/stderr1214 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1212 ../src/curl -q --output log/7/curl1212.out --include --trace-ascii log/7/trace1212 --trace-time http://user:secret@127.0.0.1:40129/ulion/1212 --socks5 non-existing-host.haxx.se:1080 --noproxy 127.0.0.1 --max-time 5 > log/7/stdout1212 2> log/7/stderr1212 208 ../src/curl -q --output log/3/curl1208.out --include --trace-ascii log/3/trace1208 --trace-time --max-time 8 ftp://127.0.0.1:33831/1208 -P - > log/3/stdout1208 2> log/3/stderr1208 === End of file commands.log === Start of file ftp_server.log 10:33:19.875035 ====> Client connect 10:33:19.876533 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:19.882584 < "USER anonymous" 10:33:19.883120 > "331 We are happy you popped in![CR][LF]" 10:33:19.886667 < "PASS ftp@example.com" 10:33:19.887312 > "230 Welcome you silly person[CR][LF]" 10:33:19.891449 < "PWD" 10:33:19.892888 > "257 "/" is current directory[CR][LF]" 10:33:19.894419 < "EPSV" 10:33:19.894827 ====> Passive DATA channel requested by client 10:33:19.895148 DATA sockfilt for passive data channel starting... 10:33:19.907359 DATA sockfilt for passive data channel started (pid 137550) 10:33:19.908820 DATA sockfilt for passive data channel listens on port 34693 10:33:19.909661 > "229 Entering Passive Mode (|||34693|)[LF]" 10:33:19.910230 Client has been notified that DATA conn will be accepted on port 34693 10:33:19.914367 Client connects to port 34693 10:33:19.914970 ====> Client established passive DATA connection on port 34693 10:33:19.920240 < "TYPE I" 10:33:19.921091 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:19.925240 < "SIZE verifiedserver" 10:33:19.926179 > "213 17[CR][LF]" 10:33:19.929901 < "RETR verifiedserver" 10:33:19.934516 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:19.938500 =====> Closing passive DATA connection... 10:33:19.938983 Server disconnects passive DATA connection 10:33:19.940296 Server disconnected passive DATA connection 10:33:19.940764 DATA sockfilt for passive data channel quits (pid 137550) 10:33:19.943192 DATA sockfilt for passive data channel quit (pid 137550) 10:33:19.943599 =====> Closed passive DATA connection 10:33:19.944128 > "226 File transfer complete[CR][LF]" 10:33:19.980808 < "QUIT" 10:33:19.982014 > "221 bye bye baby[CR][LF]" 10:33:19.985360 MAIN sockfilt said DISC 10:33:19.985961 ====> Client disconnected 10:33:19.986664 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:19.541718 ====> Client connect 10:33:19.545179 Received DATA (on stdin) 10:33:19.545404 > 160 bytes data, server => client 10:33:19.545533 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:19.545627 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:19.545716 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:19.546998 < 16 bytes data, client => server 10:33:19.548692 'USER anonymous\r\n' 10:33:19.552353 Received DATA (on stdin) 10:33:19.552673 > 33 bytes data, server => client 10:33:19.552805 '331 We are happy you popped in!\r\n' 10:33:19.554052 < 22 bytes data, client => server 10:33:19.554344 'PASS ftp@example.com\r\n' 10:33:19.555585 Received DATA (on stdin) 10:33:19.555880 > 30 bytes data, server => client 10:33:19.556004 '230 Welcome you silly person\r\n' 10:33:19.558579 < 5 bytes data, client => server 10:33:19.558849 'PWD\r\n' 10:33:19.560303 Received DATA (on stdin) 10:33:19.560491 > 30 bytes data, server => client 10:33:19.560671 '257 "/" is current directory\r\n' 10:33:19.561546 < 6 bytes data, client => server 10:33:19.561810 'EPSV\r\n' 10:33:19.579920 Received DATA (on stdin) 10:33:19.580286 > 38 bytes data, server => client 10:33:19.580430 '229 Entering Passive Mode (|||34693|)\n' 10:33:19.586680 < 8 bytes data, client => server 10:33:19.587073 'TYPE I\r\n' 10:33:19.590705 Received DATA (on stdin) 10:33:19.591009 > 33 bytes data, server => client 10:33:19.591147 '200 I modify TYPE as you wanted\r\n' 10:33:19.592067 < 21 bytes data, client => server 10:33:19.592359 'SIZE verifiedserver\r\n' 10:33:19.595137 Received DATA (on stdin) 10:33:19.595411 > 8 bytes data, server => client 10:33:19.595536 '213 17\r\n' 10:33:19.596598 < 21 bytes data, client => server 10:33:19.596849 'RETR verifiedserver\r\n' 10:33:19.603926 Received DATA (on stdin) 10:33:19.604171 > 29 bytes data, server => client 10:33:19.604346 '150 Binary junk (17 bytes).\r\n' 10:33:19.612913 Received DATA (on stdin) 10:33:19.613068 > 28 bytes data, server => client 10:33:19.613167 '226 File transfer complete\r\n' 10:33:19.647887 < 6 bytes data, client => server 10:33:19.648153 'QUIT\r\n' 10:33:19.649669 Received DATA (on stdin) 10:33:19.650018 > 18 bytes data, server => client 10:33:19.650686 '221 bye bye baby\r\n' 10:33:19.653089 ====> Client disconnect 10:33:19.654884 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:19.573824 Running IPv4 version 10:33:19.574472 Listening on port 34693 10:33:19.574977 Wrote pid 137550 to log/3/server/ftp_sockdata.pid 10:33:19.575174 Received PING (on stdin) 10:33:19.576302 Received PORT (on stdin) 10:33:19.582097 ====> Client connect 10:33:19.605923 Received DATA (on stdin) 10:33:19.606177 > 17 bytes data, server => client 10:33:19.606321 'WE ROOLZ: 79555\r\n' 10:33:19.607683 Received DISC (on stdin) 10:33:19.607900 ====> Client forcibly disconnected 10:33:19.609582 Received QUIT (on stdin) 10:33:19.609970 quits 10:33:19.610558 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd NODATACONN150 Testnum 1208 === End of file server.cmd === Start of file valgrind1208 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1208 test 1214...[HTTP with proxy and URL with ? and no slash separator] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1214 ../src/curl -q --output log/5/curl1214.out --include --trace-ascii log/5/trace1214 --trace-time -x 127.0.0.1:41733 http://we.want.that.site.com.1214?moo=foo > log/5/stdout1214 2> log/5/stderr1214 1214: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1214 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1214 ../src/curl -q --output log/5/curl1214.out --include --trace-ascii log/5/trace1214 --trace-time -x 127.0.0.1:41733 http://we.want.that.site.com.1214?moo=foo > log/5/stdout1214 2> log/5/stderr1214 === End of file commands.log === Start of file http_server.log 10:33:20.781290 ====> Client connect 10:33:20.781704 accept_connection 3 returned 4 10:33:20.78CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1213 ../src/curl -q --output log/6/curl1213.out --include --trace-ascii log/6/trace1213 --trace-time -x 127.0.0.1:33363 we.want.that.site.com.1213 > log/6/stdout1213 2> log/6/stderr1213 2028 accept_connection 3 returned 0 10:33:20.782188 Read 93 bytes 10:33:20.782287 Process 93 bytes request 10:33:20.782381 Got request: GET /verifiedserver HTTP/1.1 10:33:20.782455 Are-we-friendly question received 10:33:20.782709 Wrote request (93 bytes) input to log/5/server.input 10:33:20.782908 Identifying ourselves as friends 10:33:20.783580 Response sent (56 bytes) and written to log/5/server.response 10:33:20.783691 special request received, no persistency 10:33:20.783752 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 55338 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1214 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1214 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1214 test 1212...[noproxy setting together with socks proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1212 ../src/curl -q --output log/7/curl1212.out --include --trace-ascii log/7/trace1212 --trace-time http://user:secret@127.0.0.1:40129/ulion/1212 --socks5 non-existing-host.haxx.se:1080 --noproxy 127.0.0.1 --max-time 5 > log/7/stdout1212 2> log/7/stderr1212 1212: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1212 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1212 ../src/curl -q --output log/7/curl1212.out --include --trace-ascii log/7/trace1212 --trace-time http://user:secret@127.0.0.1:40129/ulion/1212 --socks5 non-existing-host.haxx.se:1080 --noproxy 127.0.0.1 --max-time 5 > log/7/stdout1212 2> log/7/stderr1212 === End of file commands.log === Start of file http_server.log 10:33:19.753277 ====> Client connect 10:33:19.753652 accept_connection 3 returned 4 10:33:19.753984 accept_connection 3 returned 0 10:33:19.754224 Read 93 bytes 10:33:19.754373 Process 93 bytes request 10:33:19.754470 Got request: GET /verifiedserver HTTP/1.1 10:33:19.754552 Are-we-friendly question received 10:33:19.754802 Wrote request (93 bytes) input to log/7/server.input 10:33:19.755038 Identifying ourselves as friends 10:33:19.755846 Response sent (56 bytes) and written to log/7/server.response 10:33:19.756012 special request received, no persistency 10:33:19.756084 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37414 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1212 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1212 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1212 test 1213...[HTTP with proxy and host-only URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1213 ../src/curl -q --output log/6/curl1213.out --include --trace-ascii log/6/trace1213 --trace-time -x 127.0.0.1:33363 we.want.that.site.com.1213 > log/6/stdout1213 2> log/6/stderr1213 1213: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1213 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1213 ../src/curl -q --output log/6/curl1213.out --include --trace-ascii log/6/trace1213 --trace-time -x 127.0.0.1:33363 we.want.that.site.com.1213 > log/6/stdout1213 2> log/6/stderr1213 === End of file commands.log === Start of file http_server.log 10:33:19.773484 ====> Client connect 10:33:19.773906 accept_connection 3 returned 4 10:33:19.774140 accept_connection 3 returned 0 10:33:19.774280 Read 93 bytes 10:33:19.774368 Process 93 bytes request 10:33:19.774457 Got request: GET /verifiedserver HTTP/1.1 10:33:19.774535 Are-we-friendly question received 10:33:19.774806 Wrote request (CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1216 ../src/curl -q --output log/8/curl1216.out --include --trace-ascii log/8/trace1216 --trace-time http://example.fake/c/1216 http://bexample.fake/c/1216 -b log/8/injar1216 -x 127.0.0.1:36007 > log/8/stdout1216 2> log/8/stderr1216 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1215 ../src/curl -q --output log/2/curl1215.out --include --trace-ascii log/2/trace1215 --trace-time http://127.0.0.1:43789/1215 -u testuser:testpass --ntlm --proxy http://127.0.0.1:43789 > log/2/stdout1215 2> log/2/stderr1215 93 bytes) input to log/6/server.input 10:33:19.775034 Identifying ourselves as friends 10:33:19.775820 Response sent (56 bytes) and written to log/6/server.response 10:33:19.775999 special request received, no persistency 10:33:19.776082 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 42454 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1213 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1213 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1213 test 1215...[HTTP with server NTLM authorization using a proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1215 ../src/curl -q --output log/2/curl1215.out --include --trace-ascii log/2/trace1215 --trace-time http://127.0.0.1:43789/1215 -u testuser:testpass --ntlm --proxy http://127.0.0.1:43789 > log/2/stdout1215 2> log/2/stderr1215 1215: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1215 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1215 ../src/curl -q --output log/2/curl1215.out --include --trace-ascii log/2/trace1215 --trace-time http://127.0.0.1:43789/1215 -u testuser:testpass --ntlm --proxy http://127.0.0.1:43789 > log/2/stdout1215 2> log/2/stderr1215 === End of file commands.log === Start of file http_server.log 10:33:19.915140 ====> Client connect 10:33:19.915464 accept_connection 3 returned 4 10:33:19.915656 accept_connection 3 returned 0 10:33:19.915798 Read 93 bytes 10:33:19.915869 Process 93 bytes request 10:33:19.915946 Got request: GET /verifiedserver HTTP/1.1 10:33:19.916007 Are-we-friendly question received 10:33:19.916244 Wrote request (93 bytes) input to log/2/server.input 10:33:19.916437 Identifying ourselves as friends 10:33:19.917151 Response sent (56 bytes) and written to log/2/server.response 10:33:19.917312 special request received, no persistency 10:33:19.917381 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 43810 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1215 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1215 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1215 test 1216...[HTTP cookie domains tailmatching the host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1216 ../src/curl -q --output log/8/curl1216.out --include --trace-ascii log/8/trace1216 --trace-time http://example.fake/c/1216 http://bexample.fake/c/1216 -b log/8/injar1216 -x 127.0.0.1:36007 > log/8/stdout1216 2> log/8/stderr1216 1216: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1216 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1216 ../src/curl -q --output log/8/curl1216.out --include --trace-ascii log/8/trace1216 --trace-time http://example.fake/c/1216 http://bexample.fake/c/1216 -b log/8/injar1216 -x 127.0.0.1:36007 > log/8/stdout1216 2> log/8/stderr1216 === End of file commands.log === Start of file http_server.log 10:33:19.967913 ====> Client connect 10:33:19.968298 accept_connection 3 returned 4 10:33:19.968520 accept_connection 3 returned 0 10:33:19.969530 Read 93 bytes 10:33:19.969829 Process 93 bytes request 10:33:19.969983 Got request: GET /verifiedserver HTTP/1.1 10:33:19.970062 Are-we-friendly question received 10:33:19.970327 Wrote request (93 bytes) input to log/8/server.input 10:33:19.970522 Identifying ourselves as friends 10:33:19.971134 Response sent (56 bytes) and written to log/8/server.response 10:33:19.971320 special requestCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1217 ../src/curl -q --output log/4/curl1217.out --include --trace-ascii log/4/trace1217 --trace-time ftp://127.0.0.1:42635/get/file/1217 ftp://127.0.0.1:42635/get/file/again/1217 --ftp-method singlecwd > log/4/stdout1217 2> log/4/stderr1217 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1220 ../src/curl -q --trace-ascii log/5/trace1220 --trace-time file://localhost/build/curl/src/build-curl/tests/log/5/test1220.txt?a_query=foobar#afragment > log/5/stdout1220 2> log/5/stderr1220 received, no persistency 10:33:19.971410 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58184 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file injar1216 example.fake FALSE /a FALSE 22139150993 mooo indeed example.fake FALSE /b FALSE 0 moo1 indeed example.fake FALSE /c FALSE 22139150993 moo2 indeed example.fake TRUE /c FALSE 22139150993 moo3 indeed === End of file injar1216 === Start of file server.cmd Testnum 1216 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1216 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1216 test 1217...[FTP with rubbish before name in 257-response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1217 ../src/curl -q --output log/4/curl1217.out --include --trace-ascii log/4/trace1217 --trace-time ftp://127.0.0.1:42635/get/file/1217 ftp://127.0.0.1:42635/get/file/again/1217 --ftp-method singlecwd > log/4/stdout1217 2> log/4/stderr1217 1217: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1217 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1217 ../src/curl -q --output log/4/curl1217.out --include --trace-ascii log/4/trace1217 --trace-time ftp://127.0.0.1:42635/get/file/1217 ftp://127.0.0.1:42635/get/file/again/1217 --ftp-method singlecwd > log/4/stdout1217 2> log/4/stderr1217 === End of file commands.log === Start of file ftp_server.log 10:33:20.653758 ====> Client connect 10:33:20.655893 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:20.661013 < "USER anonymous" 10:33:20.662021 > "331 We are happy you popped in![CR][LF]" 10:33:20.665591 < "PASS ftp@example.com" 10:33:20.666366 > "230 Welcome you silly person[CR][LF]" 10:33:20.670123 < "PWD" 10:33:20.670979 > "257 "/" is current directory[CR][LF]" 10:33:20.674980 < "EPSV" 10:33:20.675559 ====> Passive DATA channel requested by client 10:33:20.675979 DATA sockfilt for passive data channel starting... 10:33:20.693234 DATA sockfilt for passive data channel started (pid 137955) 10:33:20.694803 DATA sockfilt for passive data channel listens on port 35441 10:33:20.695450 > "229 Entering Passive Mode (|||35441|)[LF]" 10:33:20.695831 Client has been notified that DATA conn will be accepted on port 35441 10:33:20.698507 Client connects to port 35441 10:33:20.699025 ====> Client established passive DATA connection on port 35441 10:33:20.700206 < "TYPE I" 10:33:20.700841 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:20.705281 < "SIZE verifiedserver" 10:33:20.706047 > "213 17[CR][LF]" 10:33:20.709035 < "RETR verifiedserver" 10:33:20.709681 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:20.710513 =====> Closing passive DATA connection... 10:33:20.710796 Server disconnects passive DATA connection 10:33:20.713564 Server disconnected passive DATA connection 10:33:20.714004 DATA sockfilt for passive data channel quits (pid 137955) 10:33:20.715814 DATA sockfilt for passive data channel quit (pid 137955) 10:33:20.716259 =====> Closed passive DATA connection 10:33:20.717381 > "226 File transfer complete[CR][LF]" 10:33:20.756292 < "QUIT" 10:33:20.756968 > "221 bye bye baby[CR][LF]" 10:33:20.767256 MAIN sockfilt said DISC 10:33:20.769091 ====> Client disconnected 10:33:20.770389 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:21.320579 ====> Client connect 10:33:21.325043 Received DATA (on stdin) 10:33:21.325403 > 160 bytes data, server => client 10:33:21.325620 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:21.325863 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:21.326000 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:21.327259 < 16 bytes data, client => server 10:33:21.327565 'USER anonymous\r\n' 10:33:21.330985 Received DATA (on stdin) 10:33:21.331220 > 33 bytes data, server => client 10:33:21.331315 '331 We are happy you popped in!\r\n' 10:33:21.332269 < 22 bytes data, client => server 10:33:21.332499 'PASS ftp@example.com\r\n' 10:33:21.335231 Received DATA (on stdin) 10:33:21.335459 > 30 bytes data, server => client 10:33:21.335570 '230 Welcome you silly person\r\n' 10:33:21.336763 < 5 bytes data, client => server 10:33:21.337068 'PWD\r\n' 10:33:21.339971 Received DATA (on stdin) 10:33:21.340219 > 30 bytes data, server => client 10:33:21.340338 '257 "/" is current directory\r\n' 10:33:21.341404 < 6 bytes data, client => server 10:33:21.341661 'EPSV\r\n' 10:33:21.363745 Received DATA (on stdin) 10:33:21.364027 > 38 bytes data, server => client 10:33:21.364157 '229 Entering Passive Mode (|||35441|)\n' 10:33:21.366294 < 8 bytes data, client => server 10:33:21.366534 'TYPE I\r\n' 10:33:21.371609 Received DATA (on stdin) 10:33:21.371854 > 33 bytes data, server => client 10:33:21.371957 '200 I modify TYPE as you wanted\r\n' 10:33:21.372715 < 21 bytes data, client => server 10:33:21.372966 'SIZE verifiedserver\r\n' 10:33:21.374323 Received DATA (on stdin) 10:33:21.374537 > 8 bytes data, server => client 10:33:21.374667 '213 17\r\n' 10:33:21.376131 < 21 bytes data, client => server 10:33:21.376322 'RETR verifiedserver\r\n' 10:33:21.379347 Received DATA (on stdin) 10:33:21.379515 > 29 bytes data, server => client 10:33:21.379599 '150 Binary junk (17 bytes).\r\n' 10:33:21.384906 Received DATA (on stdin) 10:33:21.385095 > 28 bytes data, server => client 10:33:21.385333 '226 File transfer complete\r\n' 10:33:21.423029 < 6 bytes data, client => server 10:33:21.423399 'QUIT\r\n' 10:33:21.425998 Received DATA (on stdin) 10:33:21.426322 > 18 bytes data, server => client 10:33:21.426454 '221 bye bye baby\r\n' 10:33:21.432996 ====> Client disconnect 10:33:21.436288 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:20.356629 Running IPv4 version 10:33:20.357312 Listening on port 35441 10:33:20.357985 Wrote pid 137955 to log/4/server/ftp_sockdata.pid 10:33:20.358192 Received PING (on stdin) 10:33:20.362250 Received PORT (on stdin) 10:33:20.365857 ====> Client connect 10:33:20.380225 Received DATA (on stdin) 10:33:20.380425 > 17 bytes data, server => client 10:33:20.380512 'WE ROOLZ: 79516\r\n' 10:33:20.380828 Received DISC (on stdin) 10:33:20.380986 ====> Client forcibly disconnected 10:33:20.382606 Received QUIT (on stdin) 10:33:20.382786 quits 10:33:20.383238 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PWD 257 there is rubbish all over "/this/is/the/path" Testnum 1217 === End of file server.cmd === Start of file valgrind1217 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1217 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1218 ../src/curl -q --output log/1/curl1218.out --include --trace-ascii log/1/trace1218 --trace-time http://example.fake/c/1218 http://example.fake/c/1218 http://bexample.fake/c/1218 -b nonexisting -x 127.0.0.1:36129 > log/1/stdout1218 2> log/1/stderr1218 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1219 ../src/curl -q --output log/3/curl1219.out --include --trace-ascii log/3/trace1219 --trace-time ftp://127.0.0.1:33831/1219 > log/3/stdout1219 2> log/3/stderr1219 test 1220...[file:// URLs with query string] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1220 ../src/curl -q --trace-ascii log/5/trace1220 --trace-time file://localhost/build/curl/src/build-curl/tests/log/5/test1220.txt?a_query=foobar#afragment > log/5/stdout1220 2> log/5/stderr1220 1220: stdout FAILED: --- log/5/check-expected 2025-09-11 10:33:21.614077209 +0000 +++ log/5/check-generated 2025-09-11 10:33:21.610077129 +0000 @@ -1 +0,0 @@ -contents in a single file[LF] == Contents of files in the log/5/ dir after test 1220 === Start of file check-expected contents in a single file[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1220 ../src/curl -q --trace-ascii log/5/trace1220 --trace-time file://localhost/build/curl/src/build-curl/tests/log/5/test1220.txt?a_query=foobar#afragment > log/5/stdout1220 2> log/5/stderr1220 === End of file commands.log === Start of file server.cmd Testnum 1220 === End of file server.cmd === Start of file test1220.txt contents in a single file === End of file test1220.txt === Start of file valgrind1220 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1220 test 1218...[HTTP cookies and domains with same prefix] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1218 ../src/curl -q --output log/1/curl1218.out --include --trace-ascii log/1/trace1218 --trace-time http://example.fake/c/1218 http://example.fake/c/1218 http://bexample.fake/c/1218 -b nonexisting -x 127.0.0.1:36129 > log/1/stdout1218 2> log/1/stderr1218 1218: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1218 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1218 ../src/curl -q --output log/1/curl1218.out --include --trace-ascii log/1/trace1218 --trace-time http://example.fake/c/1218 http://example.fake/c/1218 http://bexample.fake/c/1218 -b nonexisting -x 127.0.0.1:36129 > log/1/stdout1218 2> log/1/stderr1218 === End of file commands.log === Start of file http_server.log 10:33:20.599387 ====> Client connect 10:33:20.599713 accept_connection 3 returned 4 10:33:20.599946 accept_connection 3 returned 0 10:33:20.600092 Read 93 bytes 10:33:20.600191 Process 93 bytes request 10:33:20.600296 Got request: GET /verifiedserver HTTP/1.1 10:33:20.600384 Are-we-friendly question received 10:33:20.600634 Wrote request (93 bytes) input to log/1/server.input 10:33:20.600840 Identifying ourselves as friends 10:33:20.601624 Response sent (56 bytes) and written to log/1/server.response 10:33:20.601966 special request received, no persistency 10:33:20.602082 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46744 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1218 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1218 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1218 test 1219...[FTP with no user+password required (230 response)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1219 ../src/curl -q --output log/3/curl1219.out --include --trace-ascii log/3/trace1219 --trace-time ftp://127.0.0.1:33831/1219 > log/3/stdout1219 2> log/3/stderr1219 1219: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1219 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1219 ../src/curl -q --output log/3/curl1219.out --include --trace-ascii log/3/trace1219 --trace-time ftp://127.0.0.1:33831/1219 > log/3/stdout1219 2> log/3/stderr1219 === End of file commands.log === Start of file ftp_server.log 10:33:20.968366 ====> Client connect 10:33:20.969756 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:20.972042 < "USER anonymous" 10:33:20.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1221 ../src/curl -q --output log/7/curl1221.out --include --trace-ascii log/7/trace1221 --trace-time http://127.0.0.1:40129/1221 --url-query "my name is moo[]" --url-query "yes=s i r" --url-query "v_alue@log/7/1221.txt" --url-query @log/7/1221.txt --url-query "+%3d%3d" --data-urlencode "start=once upon the time" > log/7/stdout1221 2> log/7/stderr1221 972540 > "331 We are happy you popped in![CR][LF]" 10:33:20.976839 < "PASS ftp@example.com" 10:33:20.977337 > "230 Welcome you silly person[CR][LF]" 10:33:20.979971 < "PWD" 10:33:20.980411 > "257 "/" is current directory[CR][LF]" 10:33:20.982865 < "EPSV" 10:33:20.983292 ====> Passive DATA channel requested by client 10:33:20.983585 DATA sockfilt for passive data channel starting... 10:33:21.009675 DATA sockfilt for passive data channel started (pid 138067) 10:33:21.011080 DATA sockfilt for passive data channel listens on port 33647 10:33:21.011705 > "229 Entering Passive Mode (|||33647|)[LF]" 10:33:21.012098 Client has been notified that DATA conn will be accepted on port 33647 10:33:21.023134 Client connects to port 33647 10:33:21.023642 ====> Client established passive DATA connection on port 33647 10:33:21.024796 < "TYPE I" 10:33:21.025347 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:21.028290 < "SIZE verifiedserver" 10:33:21.029251 > "213 17[CR][LF]" 10:33:21.034121 < "RETR verifiedserver" 10:33:21.034758 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:21.035537 =====> Closing passive DATA connection... 10:33:21.035887 Server disconnects passive DATA connection 10:33:21.037733 Server disconnected passive DATA connection 10:33:21.038227 DATA sockfilt for passive data channel quits (pid 138067) 10:33:21.042435 DATA sockfilt for passive data channel quit (pid 138067) 10:33:21.042820 =====> Closed passive DATA connection 10:33:21.043187 > "226 File transfer complete[CR][LF]" 10:33:21.079290 < "QUIT" 10:33:21.079801 > "221 bye bye baby[CR][LF]" 10:33:21.082562 MAIN sockfilt said DISC 10:33:21.083171 ====> Client disconnected 10:33:21.084056 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:20.635727 ====> Client connect 10:33:20.637988 Received DATA (on stdin) 10:33:20.638255 > 160 bytes data, server => client 10:33:20.638390 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:20.638478 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:20.638546 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:20.639405 < 16 bytes data, client => server 10:33:20.639616 'USER anonymous\r\n' 10:33:20.640911 Received DATA (on stdin) 10:33:20.641096 > 33 bytes data, server => client 10:33:20.641204 '331 We are happy you popped in!\r\n' 10:33:20.642004 < 22 bytes data, client => server 10:33:20.642247 'PASS ftp@example.com\r\n' 10:33:20.645694 Received DATA (on stdin) 10:33:20.645959 > 30 bytes data, server => client 10:33:20.646094 '230 Welcome you silly person\r\n' 10:33:20.647568 < 5 bytes data, client => server 10:33:20.647805 'PWD\r\n' 10:33:20.648690 Received DATA (on stdin) 10:33:20.648884 > 30 bytes data, server => client 10:33:20.648987 '257 "/" is current directory\r\n' 10:33:20.649991 < 6 bytes data, client => server 10:33:20.650257 'EPSV\r\n' 10:33:20.683373 Received DATA (on stdin) 10:33:20.683647 > 38 bytes data, server => client 10:33:20.683769 '229 Entering Passive Mode (|||33647|)\n' 10:33:20.689977 < 8 bytes data, client => server 10:33:20.690226 'TYPE I\r\n' 10:33:20.694128 Received DATA (on stdin) 10:33:20.694336 > 33 bytes data, server => client 10:33:20.694436 '200 I modify TYPE as you wanted\r\n' 10:33:20.695219 < 21 bytes data, client => server 10:33:20.695466 'SIZE verifiedserver\r\n' 10:33:20.697123 Received DATA (on stdin) 10:33:20.697298 > 8 bytes data, server => client 10:33:20.698051 '213 17\r\n' 10:33:20.700258 < 21 bytes data, client => server 10:33:20.700467 'RETR verifiedserver\r\n' 10:33:20.704081 Received DATA (on stdin) 10:33:20.704256 > 29 bytes data, server => client 10:33:20.704346 '150 Binary junk (17 bytes).\r\n' 10:33:20.713843 Received DATA (on stdin) 10:33:20.714067 > 28 bytes data, server => client 10:33:20.714163 '226 File transfer complete\r\n' 10:33:20.746763 < 6 bytes data, client => server 10:33:20.747036 'QUIT\r\n' 10:33:20.748089 Received DATA (on stdin) 10:33:20.748289 > 18 bytes data, server => client 10:33:20.748394 '221 bye bye baby\r\n' 10:33:20.750211 ====> Client disconnect 10:33:20.752107 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:20.663180 Running IPv4 version 10:33:20.663799 Listening on port 33647 10:33:20.664369 Wrote pid 138067 to log/3/server/ftp_sockdata.pid 10:33:20.667320 Received PING (on stdin) 10:33:20.678601 Received PORT (on stdin) 10:33:20.690982 ====> Client connect 10:33:20.704861 Received DATA (on stdin) 10:33:20.705065 > 17 bytes data, server => client 10:33:20.705143 'WE ROOLZ: 79555\r\n' 10:33:20.705408 Received DISC (on stdin) 10:33:20.705539 ====> Client forcibly disconnected 10:33:20.708980 Received QUIT (on stdin) 10:33:20.709241 quits 10:33:20.709760 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY welcome 230 welcome without password Testnum 1219 === End of file server.cmd === Start of file valgrind1219 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1219 test 1221...[--url-query with --data-urlencode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1221 ../src/curl -q --output log/7/curl1221.out --include --trace-ascii log/7/trace1221 --trace-time http://127.0.0.1:40129/1221 --url-query "my name is moo[]" --url-query "yes=s i r" --url-query "v_alue@log/7/1221.txt" --url-query @log/7/1221.txt --url-query "+%3d%3d" --data-urlencode "start=once upon the time" > log/7/stdout1221 2> log/7/stderr1221 1221: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1221 === Start of file 1221.txt content to _?!#$'|<> === End of file 1221.txt === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1221 ../src/curl -q --output log/7/curl1221.out --include --trace-ascii log/7/trace1221 --trace-time http://127.0.0.1:40129/1221 --url-query "my name is moo[]" --url-query "yes=s i r" --url-query "v_alue@log/7/1221.txt" --url-query @log/7/1221.txt --url-query "+%3d%3d" --data-urlencode "start=once upon the time" > log/7/stdout1221 2> log/7/stderr1221 === End of file commands.log === Start of file http_server.log 10:33:20.741625 ====> Client connect 10:33:20.742049 accept_connection 3 returned 4 10:33:20.742258 accept_connection 3 returned 0 10:33:20.742404 Read 93 bytes 10:33:20.742492 Process 93 bytes request 10:33:20.742577 Got request: GET /verifiedservCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1223 ../src/curl -q --include --trace-ascii log/8/trace1223 --trace-time http://127.0.0.1:36007/1223 -w 'IP %{remote_ip} and PORT %{remote_port}\n' > log/8/stdout1223 2> log/8/stderr1223 er HTTP/1.1 10:33:20.742646 Are-we-friendly question received 10:33:20.742896 Wrote request (93 bytes) input to log/7/server.input 10:33:20.743091 Identifying ourselves as friends 10:33:20.743850 Response sent (56 bytes) and written to log/7/server.response 10:33:20.743991 special request received, no persistency 10:33:20.744056 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37428 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1221 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1221 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1221 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1224 ../src/curl -q --output log/2/curl1224.out --include --trace-ascii log/2/trace1224 --trace-time ftp://127.0.0.1:37959//1224 > log/2/stdout1224 2> log/2/stderr1224 test 1223...[HTTP GET -w remote_ip and -w remote_port] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1223 ../src/curl -q --include --trace-ascii log/8/trace1223 --trace-time http://127.0.0.1:36007/1223 -w 'IP %{remote_ip} and PORT %{remote_port}\n' > log/8/stdout1223 2> log/8/stderr1223 1223: stdout FAILED: --- log/8/check-expected 2025-09-11 10:33:22.214089153 +0000 +++ log/8/check-generated 2025-09-11 10:33:22.210089073 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 4[LF] -Connection: close[LF] -Content-Type: text/html[LF] -[LF] -hej[LF] -IP 127.0.0.1 and PORT 36007[LF] == Contents of files in the log/8/ dir after test 1223 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 4[LF] Connection: close[LF] Content-Type: text/html[LF] [LF] hej[LF] IP 127.0.0.1 and PORT 36007[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1223 ../src/curl -q --include --trace-ascii log/8/trace1223 --trace-time http://127.0.0.1:36007/1223 -w 'IP %{remote_ip} and PORT %{remote_port}\n' > log/8/stdout1223 2> log/8/stderr1223 === End of file commands.log === Start of file http_server.log 10:33:21.070469 ====> Client connect 10:33:21.070817 accept_connection 3 returned 4 10:33:21.071011 accept_connection 3 returned 0 10:33:21.071166 Read 93 bytes 10:33:21.071287 Process 93 bytes request 10:33:21.071390 Got request: GET /verifiedserver HTTP/1.1 10:33:21.071470 Are-we-friendly question received 10:33:21.071816 Wrote request (93 bytes) input to log/8/server.input 10:33:21.072118 Identifying ourselves as friends 10:33:21.073014 Response sent (56 bytes) and written to log/8/server.response 10:33:21.073215 special request received, no persistency 10:33:21.073295 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58196 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1223 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1223 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1223 test 1224...[FTP fetch a file from the root directory] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1224 ../src/curl -q --output log/2/curl1224.out --include --trace-ascii log/2/trace1224 --trace-time ftp://127.0.0.1:37959//1224 > log/2/stdout1224 2> log/2/stderr1224 1224: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1224 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1224 ../src/curl -q --output log/2/curl1224.out --include --trace-ascii log/2/trace1224 --trace-time ftp://127.0.0.1:37959//1224 > log/2/stdout1224 2> log/2/stderr1224 === End of file commands.log === Start of file ftp_server.log 10:33:21.390085 ====> Client connect 10:33:21.391565 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:21.395631 < "USER anonymous" 10:33:21.396184 > "331 We are happy you popped in![CR][LF]" 10:33:21.402487 < "PASS ftp@example.com" 10:33:21.402982 > "230 Welcome you silly person[CR][LF]" 10:33:21.410430 < "PWD" 10:33:21.410991 > "257 "/" is current directory[CR][LF]" 10:33:21.414733 < "EPSV" 10:33:21.415212 ====> Passive DATA channel requested by client 10:33:21.415481 DATA sockfilt for passive data channel starting... 10:33:21.429453 DATA sockfilt for passive data channel started (pid 138271) 10:33:21.432242 DATA sockfilt for passive data channel listens on port 40805 10:33:21.432862 > "229 Entering Passive Mode (|||40805|)[LF]" 10:33:21.433901 Client has been notified that DATA conn will be accepted on port 40805 10:33:21.438143 Client connects to port 40805 10:33:21.438839 ====> Client established passive DATA connection on port 40805 10:33:21.440419 < "TYPE I" 10:33:21.441223 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:21.452774 < "SIZE verifiedserver" 10:33:21.453594 > "213 17[CR][LF]" 10:33:21.460244 < "RETR verifiedserver" 10:33:21.461586 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:21.463088 =====> Closing passive DATA connection... 10:33:21.463507 Server disconnects passive DATA connection 10:33:21.466753 Server disconnected passive DATA connection 10:33:21.467536 DATA sockfilt for passive data channel quits (pid 138271) 10:33:21.471746 DATA sockfilt for passive data channel quit (pid 138271) 10:33:21.472288 =====> Closed passive DATA connection 10:33:21.474198 > "226 File transfer complete[CR][LF]" 10:33:21.511790 < "QUIT" 10:33:21.517949 > "221 bye bye baby[CR][LF]" 10:33:21.522133 MAIN sockfilt said DISC 10:33:21.522585 ====> Client disconnected 10:33:21.523291 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:21.053887 ====> Client connect 10:33:21.059811 Received DATA (on stdin) 10:33:21.060151 > 160 bytes data, server => client 10:33:21.060312 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:21.060409 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:21.060498 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:21.062855 < 16 bytes data, client => server 10:33:21.063134 'USER anonymous\r\n' 10:33:21.064461 Received DATA (on stdin) 10:33:21.064656 > 33 bytes data, server => client 10:33:21.064775 '331 We are happy you popped in!\r\n' 10:33:21.066705 < 22 bytes data, client => server 10:33:21.066957 'PASS ftp@example.com\r\n' 10:33:21.0712CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1225 ../src/curl -q --output log/4/curl1225.out --include --trace-ascii log/4/trace1225 --trace-time ftp://127.0.0.1:42635//foo/1225 ftp://127.0.0.1:42635//foo/bar/1225 > log/4/stdout1225 2> log/4/stderr1225 70 Received DATA (on stdin) 10:33:21.071398 > 30 bytes data, server => client 10:33:21.071483 '230 Welcome you silly person\r\n' 10:33:21.077914 < 5 bytes data, client => server 10:33:21.078184 'PWD\r\n' 10:33:21.079278 Received DATA (on stdin) 10:33:21.079524 > 30 bytes data, server => client 10:33:21.079629 '257 "/" is current directory\r\n' 10:33:21.080450 < 6 bytes data, client => server 10:33:21.080690 'EPSV\r\n' 10:33:21.101178 Received DATA (on stdin) 10:33:21.101440 > 38 bytes data, server => client 10:33:21.101585 '229 Entering Passive Mode (|||40805|)\n' 10:33:21.104377 < 8 bytes data, client => server 10:33:21.104654 'TYPE I\r\n' 10:33:21.112969 Received DATA (on stdin) 10:33:21.113214 > 33 bytes data, server => client 10:33:21.113316 '200 I modify TYPE as you wanted\r\n' 10:33:21.116226 < 21 bytes data, client => server 10:33:21.116495 'SIZE verifiedserver\r\n' 10:33:21.123040 Received DATA (on stdin) 10:33:21.123349 > 8 bytes data, server => client 10:33:21.123482 '213 17\r\n' 10:33:21.126389 < 21 bytes data, client => server 10:33:21.126760 'RETR verifiedserver\r\n' 10:33:21.132428 Received DATA (on stdin) 10:33:21.132675 > 29 bytes data, server => client 10:33:21.132894 '150 Binary junk (17 bytes).\r\n' 10:33:21.141195 Received DATA (on stdin) 10:33:21.141442 > 28 bytes data, server => client 10:33:21.141776 '226 File transfer complete\r\n' 10:33:21.178733 < 6 bytes data, client => server 10:33:21.178971 'QUIT\r\n' 10:33:21.180768 Received DATA (on stdin) 10:33:21.180998 > 18 bytes data, server => client 10:33:21.186727 '221 bye bye baby\r\n' 10:33:21.189934 ====> Client disconnect 10:33:21.190873 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:21.095848 Running IPv4 version 10:33:21.096498 Listening on port 40805 10:33:21.096932 Wrote pid 138271 to log/2/server/ftp_sockdata.pid 10:33:21.097117 Received PING (on stdin) 10:33:21.099493 Received PORT (on stdin) 10:33:21.105863 ====> Client connect 10:33:21.130856 Received DATA (on stdin) 10:33:21.131181 > 17 bytes data, server => client 10:33:21.131373 'WE ROOLZ: 79558\r\n' 10:33:21.132383 Received DISC (on stdin) 10:33:21.132707 ====> Client forcibly disconnected 10:33:21.137700 Received QUIT (on stdin) 10:33:21.138056 quits 10:33:21.138697 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1224 === End of file server.cmd === Start of file valgrind1224 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1224 test 1225...[FTP fetch two files using absolute paths] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1225 ../src/curl -q --output log/4/curl1225.out --include --trace-ascii log/4/trace1225 --trace-time ftp://127.0.0.1:42635//foo/1225 ftp://127.0.0.1:42635//foo/bar/1225 > log/4/stdout1225 2> log/4/stderr1225 1225: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1225 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1225 ../src/curl -q --output log/4/curl1225.out --include --trace-ascii log/4/trace1225 --trace-time ftp://127.0.0.1:42635//foo/1225 ftp://127.0.0.1:42635//foo/bar/1225 > log/4/stdout1225 2> log/4/stderr1225 === End of file commands.log === Start of file ftp_server.log 10:33:21.737971 ====> Client connect 10:33:21.743402 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:21.749218 < "USER anonymous" 10:33:21.749973 > "331 We are happy you popped in![CR][LF]" 10:33:21.758004 < "PASS ftp@example.com" 10:33:21.758882 > "230 Welcome you silly person[CR][LF]" 10:33:21.763382 < "PWD" 10:33:21.764252 > "257 "/" is current directory[CR][LF]" 10:33:21.774016 < "EPSV" 10:33:21.774559 ====> Passive DATA channel requested by client 10:33:21.774872 DATA sockfilt for passive data channel starting... 10:33:21.790945 DATA sockfilt for passive data channel started (pid 138415) 10:33:21.791968 DATA sockfilt for passive data channel listens on port 42227 10:33:21.792441 > "229 Entering Passive Mode (|||42227|)[LF]" 10:33:21.792635 Client has been notified that DATA conn will be accepted on port 42227 10:33:21.794844 Client connects to port 42227 10:33:21.795322 ====> Client established passive DATA connection on port 42227 10:33:21.796370 < "TYPE I" 10:33:21.796942 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:21.798910 < "SIZE verifiedserver" 10:33:21.799506 > "213 17[CR][LF]" 10:33:21.806642 < "RETR verifiedserver" 10:33:21.807492 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:21.808400 =====> Closing passive DATA connection... 10:33:21.808803 Server disconnects passive DATA connection 10:33:21.811051 Server disconnected passive DATA connection 10:33:21.811538 DATA sockfilt for passive data channel quits (pid 138415) 10:33:21.813613 DATA sockfilt for passive data channel quit (pid 138415) 10:33:21.814086 =====> Closed passive DATA connection 10:33:21.814671 > "226 File transfer complete[CR][LF]" 10:33:21.854296 < "QUIT" 10:33:21.854910 > "221 bye bye baby[CR][LF]" 10:33:21.863702 MAIN sockfilt said DISC 10:33:21.864259 ====> Client disconnected 10:33:21.864875 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:22.405418 ====> Client connect 10:33:22.407875 Received DATA (on stdin) 10:33:22.408150 > 160 bytes data, server => client 10:33:22.412217 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:22.412593 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:22.412979 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:22.416219 < 16 bytes data, client => server 10:33:22.416527 'USER anonymous\r\n' 10:33:22.418744 Received DATA (on stdin) 10:33:22.419154 > 33 bytes data, server => client 10:33:22.419592 '331 We are happy you popped in!\r\n' 10:33:22.424013 < 22 bytes data, client => server 10:33:22.424429 'PASS ftp@example.com\r\n' 10:33:22.427909 Received DATA (on stdin) 10:33:22.428232 > 30 bytes data, server => client 10:33:22.428447 '230 Welcome you silly person\r\n' 10:33:22.430019 < 5 bytes data, client => server 10:33:22.430329 'PWD\r\n' 10:33:22.434547 Received DATA (on stdin) 10:33:22.434840 > 30 bytes data, server => client 10:33:22.434995 '257 "/" is current directory\r\n' 10:33:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1226 ../src/curl -q --output log/5/curl1226.out --include --trace-ascii log/5/trace1226 --trace-time ftp://127.0.0.1:40501//1226 --ftp-method singlecwd > log/5/stdout1226 2> log/5/stderr1226 22.435975 < 6 bytes data, client => server 10:33:22.436221 'EPSV\r\n' 10:33:22.461124 Received DATA (on stdin) 10:33:22.461267 > 38 bytes data, server => client 10:33:22.461345 '229 Entering Passive Mode (|||42227|)\n' 10:33:22.462694 < 8 bytes data, client => server 10:33:22.462893 'TYPE I\r\n' 10:33:22.465203 Received DATA (on stdin) 10:33:22.465426 > 33 bytes data, server => client 10:33:22.465546 '200 I modify TYPE as you wanted\r\n' 10:33:22.466334 < 21 bytes data, client => server 10:33:22.466612 'SIZE verifiedserver\r\n' 10:33:22.467774 Received DATA (on stdin) 10:33:22.467947 > 8 bytes data, server => client 10:33:22.468045 '213 17\r\n' 10:33:22.473915 < 21 bytes data, client => server 10:33:22.474195 'RETR verifiedserver\r\n' 10:33:22.475759 Received DATA (on stdin) 10:33:22.475981 > 29 bytes data, server => client 10:33:22.476079 '150 Binary junk (17 bytes).\r\n' 10:33:22.482915 Received DATA (on stdin) 10:33:22.483167 > 28 bytes data, server => client 10:33:22.483296 '226 File transfer complete\r\n' 10:33:22.518664 < 6 bytes data, client => server 10:33:22.518926 'QUIT\r\n' 10:33:22.523180 Received DATA (on stdin) 10:33:22.523368 > 18 bytes data, server => client 10:33:22.523509 '221 bye bye baby\r\n' 10:33:22.530135 ====> Client disconnect 10:33:22.532557 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:21.452909 Running IPv4 version 10:33:21.453448 Listening on port 42227 10:33:21.453916 Wrote pid 138415 to log/4/server/ftp_sockdata.pid 10:33:21.458686 Received PING (on stdin) 10:33:21.459668 Received PORT (on stdin) 10:33:21.462712 ====> Client connect 10:33:21.477372 Received DATA (on stdin) 10:33:21.477563 > 17 bytes data, server => client 10:33:21.477658 'WE ROOLZ: 79516\r\n' 10:33:21.478032 Received DISC (on stdin) 10:33:21.478261 ====> Client forcibly disconnected 10:33:21.480244 Received QUIT (on stdin) 10:33:21.480442 quits 10:33:21.480882 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1225 === End of file server.cmd === Start of file valgrind1225 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1225 test 1226...[FTP fetch a file from the root directory with singlecwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1226 ../src/curl -q --output log/5/curl1226.out --include --trace-ascii log/5/trace1226 --trace-time ftp://127.0.0.1:40501//1226 --ftp-method singlecwd > log/5/stdout1226 2> log/5/stderr1226 1226: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1226 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1226 ../src/curl -q --output log/5/curl1226.out --include --trace-ascii log/5/trace1226 --trace-time ftp://127.0.0.1:40501//1226 --ftp-method singlecwd > log/5/stdout1226 2> log/5/stderr1226 === End of file commands.log === Start of file ftp_server.log 10:33:21.817677 ====> Client connect 10:33:21.819159 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:21.821585 < "USER anonymous" 10:33:21.822128 > "331 We are happy you popped in![CR][LF]" 10:33:21.826421 < "PASS ftp@example.com" 10:33:21.826988 > "230 Welcome you silly person[CR][LF]" 10:33:21.834315 < "PWD" 10:33:21.834761 > "257 "/" is current directory[CR][LF]" 10:33:21.836563 < "EPSV" 10:33:21.836913 ====> Passive DATA channel requested by client 10:33:21.837100 DATA sockfilt for passive data channel starting... 10:33:21.854724 DATA sockfilt for passive data channel started (pid 138430) 10:33:21.862116 DATA sockfilt for passive data channel listens on port 40735 10:33:21.862617 > "229 Entering Passive Mode (|||40735|)[LF]" 10:33:21.862893 Client has been notified that DATA conn will be accepted on port 40735 10:33:21.865818 Client connects to port 40735 10:33:21.866308 ====> Client established passive DATA connection on port 40735 10:33:21.867499 < "TYPE I" 10:33:21.868042 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:21.874405 < "SIZE verifiedserver" 10:33:21.875231 > "213 18[CR][LF]" 10:33:21.882320 < "RETR verifiedserver" 10:33:21.883140 > "150 Binary junk (18 bytes).[CR][LF]" 10:33:21.884351 =====> Closing passive DATA connection... 10:33:21.884837 Server disconnects passive DATA connection 10:33:21.889627 Server disconnected passive DATA connection 10:33:21.893701 DATA sockfilt for passive data channel quits (pid 138430) 10:33:21.906798 DATA sockfilt for passive data channel quit (pid 138430) 10:33:21.907218 =====> Closed passive DATA connection 10:33:21.907654 > "226 File transfer complete[CR][LF]" 10:33:21.932331 < "QUIT" 10:33:21.932975 > "221 bye bye baby[CR][LF]" 10:33:21.941632 MAIN sockfilt said DISC 10:33:21.942137 ====> Client disconnected 10:33:21.942869 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:22.481864 ====> Client connect 10:33:22.487414 Received DATA (on stdin) 10:33:22.487703 > 160 bytes data, server => client 10:33:22.487827 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:22.487909 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:22.487983 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:22.488667 < 16 bytes data, client => server 10:33:22.488886 'USER anonymous\r\n' 10:33:22.491200 Received DATA (on stdin) 10:33:22.491439 > 33 bytes data, server => client 10:33:22.491548 '331 We are happy you popped in!\r\n' 10:33:22.492416 < 22 bytes data, client => server 10:33:22.492646 'PASS ftp@example.com\r\n' 10:33:22.495278 Received DATA (on stdin) 10:33:22.495551 > 30 bytes data, server => client 10:33:22.495701 '230 Welcome you silly person\r\n' 10:33:22.496876 < 5 bytes data, client => server 10:33:22.497065 'PWD\r\n' 10:33:22.503054 Received DATA (on stdin) 10:33:22.503243 > 30 bytes data, server => client 10:33:22.503340 '257 "/" is current directory\r\n' 10:33:22.504050 < 6 bytes data, client => server 10:33:22.504260 'EPSV\r\n' 10:33:22.530875 Received DATA (on stdin) 10:33:22.531081 > 38 bytes data, server => client 10:33:22.531188 '229 Entering Passive Mode (|||40735|)\n' 10:33:22.532668 < 8 bytes data, client => server 10:33:22.532796 'TYPE I\r\n' 10:33:22.537076 Received DATA (on stdin) 10:33:22.537386 > 33 bytes data, CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1228 ../src/curl -q --output log/3/curl1228.out --include --trace-ascii log/3/trace1228 --trace-time http://example.fake/hoge/1228 http://example.fake/hogege/ -b nonexisting -x 127.0.0.1:36933 > log/3/stdout1228 2> log/3/stderr1228 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1227 ../src/curl -q --output log/1/curl1227.out --include --trace-ascii log/1/trace1227 --trace-time ftp://127.0.0.1:38733//1227 --ftp-method nocwd > log/1/stdout1227 2> log/1/stderr1227 server => client 10:33:22.537513 '200 I modify TYPE as you wanted\r\n' 10:33:22.538543 < 21 bytes data, client => server 10:33:22.538805 'SIZE verifiedserver\r\n' 10:33:22.545458 Received DATA (on stdin) 10:33:22.545849 > 8 bytes data, server => client 10:33:22.545996 '213 18\r\n' 10:33:22.546704 < 21 bytes data, client => server 10:33:22.546911 'RETR verifiedserver\r\n' 10:33:22.551813 Received DATA (on stdin) 10:33:22.552121 > 29 bytes data, server => client 10:33:22.552242 '150 Binary junk (18 bytes).\r\n' 10:33:22.581373 Received DATA (on stdin) 10:33:22.581631 > 28 bytes data, server => client 10:33:22.581829 '226 File transfer complete\r\n' 10:33:22.599740 < 6 bytes data, client => server 10:33:22.600026 'QUIT\r\n' 10:33:22.601258 Received DATA (on stdin) 10:33:22.601478 > 18 bytes data, server => client 10:33:22.601586 '221 bye bye baby\r\n' 10:33:22.604525 ====> Client disconnect 10:33:22.610439 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:21.516746 Running IPv4 version 10:33:21.517445 Listening on port 40735 10:33:21.521564 Wrote pid 138430 to log/5/server/ftp_sockdata.pid 10:33:21.521907 Received PING (on stdin) 10:33:21.523484 Received PORT (on stdin) 10:33:21.533549 ====> Client connect 10:33:21.553306 Received DATA (on stdin) 10:33:21.553540 > 18 bytes data, server => client 10:33:21.553650 'WE ROOLZ: 131615\r\n' 10:33:21.554208 Received DISC (on stdin) 10:33:21.554460 ====> Client forcibly disconnected 10:33:21.566659 Received QUIT (on stdin) 10:33:21.566919 quits 10:33:21.574029 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1226 === End of file server.cmd === Start of file valgrind1226 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1226 test 1228...[HTTP cookie path match] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1228 ../src/curl -q --output log/3/curl1228.out --include --trace-ascii log/3/trace1228 --trace-time http://example.fake/hoge/1228 http://example.fake/hogege/ -b nonexisting -x 127.0.0.1:36933 > log/3/stdout1228 2> log/3/stderr1228 1228: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1228 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1228 ../src/curl -q --output log/3/curl1228.out --include --trace-ascii log/3/trace1228 --trace-time http://example.fake/hoge/1228 http://example.fake/hogege/ -b nonexisting -x 127.0.0.1:36933 > log/3/stdout1228 2> log/3/stderr1228 === End of file commands.log === Start of file http_server.log 10:33:21.716899 ====> Client connect 10:33:21.717255 accept_connection 3 returned 4 10:33:21.717465 accept_connection 3 returned 0 10:33:21.717608 Read 93 bytes 10:33:21.717689 Process 93 bytes request 10:33:21.718448 Got request: GET /verifiedserver HTTP/1.1 10:33:21.718526 Are-we-friendly question received 10:33:21.718798 Wrote request (93 bytes) input to log/3/server.input 10:33:21.719020 Identifying ourselves as friends 10:33:21.719902 Response sent (56 bytes) and written to log/3/server.response 10:33:21.720070 special request received, no persistency 10:33:21.720148 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 51364 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1228 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1228 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1228 test 1227...[FTP fetch a file from the root directory with nocwd] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1227 ../src/curl -q --output log/1/curl1227.out --include --trace-ascii log/1/trace1227 --trace-time ftp://127.0.0.1:38733//1227 --ftp-method nocwd > log/1/stdout1227 2> log/1/stderr1227 1227: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1227 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1227 ../src/curl -q --output log/1/curl1227.out --include --trace-ascii log/1/trace1227 --trace-time ftp://127.0.0.1:38733//1227 --ftp-method nocwd > log/1/stdout1227 2> log/1/stderr1227 ===CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1229 ../src/curl -q --output log/7/curl1229.out --include --trace-ascii log/7/trace1229 --trace-time http://%5cuser%22:password@127.0.0.1:40129/1229 --digest > log/7/stdout1229 2> log/7/stderr1229 End of file commands.log === Start of file ftp_server.log 10:33:22.024043 ====> Client connect 10:33:22.025327 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:22.031951 < "USER anonymous" 10:33:22.032404 > "331 We are happy you popped in![CR][LF]" 10:33:22.035727 < "PASS ftp@example.com" 10:33:22.036210 > "230 Welcome you silly person[CR][LF]" 10:33:22.038683 < "PWD" 10:33:22.039657 > "257 "/" is current directory[CR][LF]" 10:33:22.047372 < "EPSV" 10:33:22.047757 ====> Passive DATA channel requested by client 10:33:22.048015 DATA sockfilt for passive data channel starting... 10:33:22.058947 DATA sockfilt for passive data channel started (pid 138508) 10:33:22.060395 DATA sockfilt for passive data channel listens on port 45947 10:33:22.060956 > "229 Entering Passive Mode (|||45947|)[LF]" 10:33:22.061359 Client has been notified that DATA conn will be accepted on port 45947 10:33:22.065312 Client connects to port 45947 10:33:22.065854 ====> Client established passive DATA connection on port 45947 10:33:22.066824 < "TYPE I" 10:33:22.067324 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:22.068987 < "SIZE verifiedserver" 10:33:22.069653 > "213 17[CR][LF]" 10:33:22.075625 < "RETR verifiedserver" 10:33:22.076270 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:22.077190 =====> Closing passive DATA connection... 10:33:22.077683 Server disconnects passive DATA connection 10:33:22.079738 Server disconnected passive DATA connection 10:33:22.080232 DATA sockfilt for passive data channel quits (pid 138508) 10:33:22.082272 DATA sockfilt for passive data channel quit (pid 138508) 10:33:22.082676 =====> Closed passive DATA connection 10:33:22.083095 > "226 File transfer complete[CR][LF]" 10:33:22.123422 < "QUIT" 10:33:22.124071 > "221 bye bye baby[CR][LF]" 10:33:22.130025 MAIN sockfilt said DISC 10:33:22.130469 ====> Client disconnected 10:33:22.131110 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:21.691553 ====> Client connect 10:33:21.697882 Received DATA (on stdin) 10:33:21.698172 > 160 bytes data, server => client 10:33:21.698309 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:21.698402 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:21.698488 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:21.699221 < 16 bytes data, client => server 10:33:21.699433 'USER anonymous\r\n' 10:33:21.700769 Received DATA (on stdin) 10:33:21.700957 > 33 bytes data, server => client 10:33:21.701059 '331 We are happy you popped in!\r\n' 10:33:21.702807 < 22 bytes data, client => server 10:33:21.703071 'PASS ftp@example.com\r\n' 10:33:21.704883 Received DATA (on stdin) 10:33:21.705057 > 30 bytes data, server => client 10:33:21.705147 '230 Welcome you silly person\r\n' 10:33:21.705925 < 5 bytes data, client => server 10:33:21.706158 'PWD\r\n' 10:33:21.707394 Received DATA (on stdin) 10:33:21.707603 > 30 bytes data, server => client 10:33:21.708415 '257 "/" is current directory\r\n' 10:33:21.714671 < 6 bytes data, client => server 10:33:21.714958 'EPSV\r\n' 10:33:21.731732 Received DATA (on stdin) 10:33:21.731927 > 38 bytes data, server => client 10:33:21.732022 '229 Entering Passive Mode (|||45947|)\n' 10:33:21.733417 < 8 bytes data, client => server 10:33:21.733578 'TYPE I\r\n' 10:33:21.735618 Received DATA (on stdin) 10:33:21.735818 > 33 bytes data, server => client 10:33:21.735917 '200 I modify TYPE as you wanted\r\n' 10:33:21.736649 < 21 bytes data, client => server 10:33:21.736886 'SIZE verifiedserver\r\n' 10:33:21.741850 Received DATA (on stdin) 10:33:21.742114 > 8 bytes data, server => client 10:33:21.742247 '213 17\r\n' 10:33:21.743002 < 21 bytes data, client => server 10:33:21.743263 'RETR verifiedserver\r\n' 10:33:21.744489 Received DATA (on stdin) 10:33:21.744720 > 29 bytes data, server => client 10:33:21.744831 '150 Binary junk (17 bytes).\r\n' 10:33:21.751384 Received DATA (on stdin) 10:33:21.751609 > 28 bytes data, server => client 10:33:21.751729 '226 File transfer complete\r\n' 10:33:21.790881 < 6 bytes data, client => server 10:33:21.791110 'QUIT\r\n' 10:33:21.792366 Received DATA (on stdin) 10:33:21.792613 > 18 bytes data, server => client 10:33:21.792739 '221 bye bye baby\r\n' 10:33:21.797818 ====> Client disconnect 10:33:21.798747 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:22.725472 Running IPv4 version 10:33:22.726097 Listening on port 45947 10:33:22.726577 Wrote pid 138508 to log/1/server/ftp_sockdata.pid 10:33:22.726765 Received PING (on stdin) 10:33:22.727855 Received PORT (on stdin) 10:33:22.733147 ====> Client connect 10:33:22.746393 Received DATA (on stdin) 10:33:22.746619 > 17 bytes data, server => client 10:33:22.746720 'WE ROOLZ: 79585\r\n' 10:33:22.747140 Received DISC (on stdin) 10:33:22.747444 ====> Client forcibly disconnected 10:33:22.748850 Received QUIT (on stdin) 10:33:22.749051 quits 10:33:22.749532 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1227 === End of file server.cmd === Start of file valgrind1227 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1227 test 1229...[HTTP with Digest authorization with user name needing escape] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1229 ../src/curl -q --output log/7/curl1229.out --include --trace-ascii log/7/trace1229 --trace-time http://%5cuser%22:password@127.0.0.1:40129/1229 --digest > log/7/stdout1229 2> log/7/stderr1229 1229: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1229 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1229 ../src/curl -q --output log/7/curl1229.out --include --trace-ascii log/7/trace1229 --trace-time http://%5cuser%22:password@127.0.0.1:40129/1229 --digest > log/7/stdout1229 2> log/7/stderr1229 === End of file commands.log === Start of file http_server.log 10:33:21.832600 ====> Client connect 10:33:21.832994 accept_connection 3 returned 4 10:33:21.833206 accept_connection 3 returned 0 10:33:21.833378 Read 93 bytes 10:33:21.833485 Process 93 bytes request 10:33:21.833572 Got request: GET /verifiedserver HTTP/1.1 10:33:21.833643 Are-we-friendly queCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1231 ../src/curl -q --output log/2/curl1231.out --include --trace-ascii log/2/trace1231 --trace-time http://127.0.0.1:43789/../../hej/but/who/../1231?stupid=me/../1231#soo/../1231 http://127.0.0.1:43789/../../hej/but/who/../12310001#/../12310001 > log/2/stdout1231 2> log/2/stderr1231 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1234 ../src/curl -q --output log/3/curl1234.out --include --trace-ascii log/3/trace1234 --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/{}{}{}{" > log/3/stdout1234 2> log/3/stderr1234 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1230 ../src/curl -q --output log/8/curl1230.out --include --trace-ascii log/8/trace1230 --trace-time http://[1234:1234:1234::4ce]:36007/wanted/page/1230 -p -x 127.0.0.1:36007 > log/8/stdout1230 2> log/8/stderr1230 stion received 10:33:21.834003 Wrote request (93 bytes) input to log/7/server.input 10:33:21.834238 Identifying ourselves as friends 10:33:21.835038 Response sent (56 bytes) and written to log/7/server.response 10:33:21.835214 special request received, no persistency 10:33:21.835294 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37442 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1229 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1229 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1229 test 1231...[HTTP URL with dotdot removal from path] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1231 ../src/curl -q --output log/2/curl1231.out --include --trace-ascii log/2/trace1231 --trace-time http://127.0.0.1:43789/../../hej/but/who/../1231?stupid=me/../1231#soo/../1231 http://127.0.0.1:43789/../../hej/but/who/../12310001#/../12310001 > log/2/stdout1231 2> log/2/stderr1231 1231: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1231 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1231 ../src/curl -q --output log/2/curl1231.out --include --trace-ascii log/2/trace1231 --trace-time http://127.0.0.1:43789/../../hej/but/who/../1231?stupid=me/../1231#soo/../1231 http://127.0.0.1:43789/../../hej/but/who/../12310001#/../12310001 > log/2/stdout1231 2> log/2/stderr1231 === End of file commands.log === Start of file http_server.log 10:33:22.138185 ====> Client connect 10:33:22.138511 accept_connection 3 returned 4 10:33:22.138692 accept_connection 3 returned 0 10:33:22.138818 Read 93 bytes 10:33:22.138897 Process 93 bytes request 10:33:22.138983 Got request: GET /verifiedserver HTTP/1.1 10:33:22.139050 Are-we-friendly question received 10:33:22.139290 Wrote request (93 bytes) input to log/2/server.input 10:33:22.139493 Identifying ourselves as friends 10:33:22.140330 Response sent (56 bytes) and written to log/2/server.response 10:33:22.140493 special request received, no persistency 10:33:22.140576 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 43814 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1231 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1231 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1231 test 1234...[abusing {}-globbing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1234 ../src/curl -q --output log/3/curl1234.out --include --trace-ascii log/3/trace1234 --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/{}{}{}{" > log/3/stdout1234 2> log/3/stderr1234 curl returned 1, when expecting 3 1234: exit FAILED == Contents of files in the log/3/ dir after test 1234 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1234 ../src/curl -q --output log/3/curl1234.out --include --trace-ascii log/3/trace1234 --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/{}{}{}{" > log/3/stdout1234 2> log/3/stderr1234 === End of file commands.log === Start of file server.cmd Testnum 1234 === End of file server.cmd === Start of file valgrind1234 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: PoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1236 ../src/curl -q --output log/7/curl1236.out --include --trace-ascii log/7/trace1236 --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/[1-4611686018427387904][1-4611686018427387904]" > log/7/stdout1236 2> log/7/stderr1236 ssible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1234 test 1230...[HTTP CONNECT to IPv6 numerical address] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1230 ../src/curl -q --output log/8/curl1230.out --include --trace-ascii log/8/trace1230 --trace-time http://[1234:1234:1234::4ce]:36007/wanted/page/1230 -p -x 127.0.0.1:36007 > log/8/stdout1230 2> log/8/stderr1230 1230: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1230 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1230 ../src/curl -q --output log/8/curl1230.out --include --trace-ascii log/8/trace1230 --trace-time http://[1234:1234:1234::4ce]:36007/wanted/page/1230 -p -x 127.0.0.1:36007 > log/8/stdout1230 2> log/8/stderr1230 === End of file commands.log === Start of file http2_server.log 10:33:23.089628 ====> Client connect 10:33:23.090025 accept_connection 3 returned 4 10:33:23.090241 accept_connection 3 returned 0 10:33:23.090422 Read 93 bytes 10:33:23.090562 Process 93 bytes request 10:33:23.090687 Got request: GET /verifiedserver HTTP/1.1 10:33:23.090777 Are-we-friendly question received 10:33:23.091043 Wrote request (93 bytes) input to log/8/proxy.input 10:33:23.091281 Identifying ourselves as friends 10:33:23.092047 Response sent (57 bytes) and written to log/8/proxy.response 10:33:23.092225 special request received, no persistency 10:33:23.092305 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:33375... * Established connection to 127.0.0.1 (127.0.0.1 port 33375) from 127.0.0.1 port 47004 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33375 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33375 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 101334 === End of file http2_verify.out === Start of file http_ipv6_server.log 10:33:22.297346 ====> Client connect 10:33:22.298014 accept_connection 3 returned 4 10:33:22.298411 accept_connection 3 returned 0 10:33:22.300200 Read 89 bytes 10:33:22.300501 Process 89 bytes request 10:33:22.300738 Got request: GET /verifiedserver HTTP/1.1 10:33:22.300949 Are-we-friendly question received 10:33:22.301508 Wrote request (89 bytes) input to log/8/server.input 10:33:22.302018 Identifying ourselves as friends 10:33:22.303287 Response sent (57 bytes) and written to log/8/server.response 10:33:22.303475 special request received, no persistency 10:33:22.303563 ====> Client disconnect 0 === End of file http_ipv6_server.log === Start of file http_ipv6_verify.log * Trying [::1]:42259... * Established connection to ::1 (::1 port 42259) from ::1 port 59412 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: [::1]:42259 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host ::1:42259 left intact === End of file http_ipv6_verify.log === Start of file http_ipv6_verify.out WE ROOLZ: 128457 === End of file http_ipv6_verify.out === Start of file http_server.log 10:33:22.456688 ====> Client connect 10:33:22.457119 accept_connection 3 returned 4 10:33:22.457331 accept_connection 3 returned 0 10:33:22.457476 Read 93 bytes 10:33:22.457562 Process 93 bytes request 10:33:22.457648 Got request: GET /verifiedserver HTTP/1.1 10:33:22.457795 Are-we-friendly question received 10:33:22.457899 Wrote request (93 bytes) input to log/8/server.input 10:33:22.458053 Identifying ourselves as friends 10:33:22.458707 Response sent (56 bytes) and written to log/8/server.response 10:33:22.458829 special request received, no persistency 10:33:22.458895 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58206 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 101334 === End of file proxy.response === Start of file server.cmd Testnum 1230 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 128457 HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1230 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1230 test 1236...[[] globbing overflowing the range counter] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1236 ../src/curl -q --output log/7/curl1236.out --include --trace-ascii log/7/trace1236 --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/[1-4611686018427387904][1-4611686018427387904]" > log/7/stdout1236 2> log/7/stderr1236 curl returned 1, when expecting 3 1236: exit FAILED == Contents of files in the log/7/ dir after test 1236 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/cuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1232 ../src/curl -q --output log/4/curl1232.out --include --trace-ascii log/4/trace1232 --trace-time --proxy http://127.0.0.1:36757 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../1232?stupid=me/../1232#soo/../1232 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../12320001#/../12320001 > log/4/stdout1232 2> log/4/stderr1232 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1233 ../src/curl -q --output log/5/curl1233.out --include --trace-ascii log/5/trace1233 --trace-time ftp://127.0.0.1:40501/1233 > log/5/stdout1233 2> log/5/stderr1233 rl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1236 ../src/curl -q --output log/7/curl1236.out --include --trace-ascii log/7/trace1236 --trace-time "127.0.0.1:47/1234[0-1]{" "127.0.0.1:47/[1-4611686018427387904][1-4611686018427387904]" > log/7/stdout1236 2> log/7/stderr1236 === End of file commands.log === Start of file server.cmd Testnum 1236 === End of file server.cmd === Start of file valgrind1236 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1236 test 1232...[HTTP URL with dotdot removal from path using an HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1232 ../src/curl -q --output log/4/curl1232.out --include --trace-ascii log/4/trace1232 --trace-time --proxy http://127.0.0.1:36757 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../1232?stupid=me/../1232#soo/../1232 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../12320001#/../12320001 > log/4/stdout1232 2> log/4/stderr1232 1232: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1232 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1232 ../src/curl -q --output log/4/curl1232.out --include --trace-ascii log/4/trace1232 --trace-time --proxy http://127.0.0.1:36757 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../1232?stupid=me/../1232#soo/../1232 http://test.remote.haxx.se.1232:8990/../../hej/but/who/../12320001#/../12320001 > log/4/stdout1232 2> log/4/stderr1232 === End of file commands.log === Start of file http_server.log 10:33:23.486510 ====> Client connect 10:33:23.486875 accept_connection 3 returned 4 10:33:23.487138 accept_connection 3 returned 0 10:33:23.487351 Read 93 bytes 10:33:23.487459 Process 93 bytes request 10:33:23.487555 Got request: GET /verifiedserver HTTP/1.1 10:33:23.487630 Are-we-friendly question received 10:33:23.487910 Wrote request (93 bytes) input to log/4/server.input 10:33:23.488126 Identifying ourselves as friends 10:33:23.489057 Response sent (56 bytes) and written to log/4/server.response 10:33:23.489216 special request received, no persistency 10:33:23.489297 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 46550 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1232 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1232 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1232 test 1233...[FTP failing to connect to EPSV port, switching to PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1233 ../src/curl -q --output log/5/curl1233.out --include --trace-ascii log/5/trace1233 --trace-time ftp://127.0.0.1:40501/1233 > log/5/stdout1233 2> log/5/stderr1233 1233: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1233 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1233 ../src/curl -q --output log/5/curl1233.out --include --trace-ascii log/5/trace1233 --trace-time ftp://127.0.0.1:40501/1233 > log/5/stdout1233 2> log/5/stderr1233 === End of file commands.log === Start of file ftp_server.log 10:33:22.922181 ====> Client connect 10:33:22.923465 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:22.926280 < "USER anonymous" 10:33:22.926769 > "331 We are happy you popped in![CR][LF]" 10:33:22.928330 < "PASS ftp@example.com" 10:33:22.928686 > "230 Welcome you silly person[CR][LF]" 10:33:22.930805 < "PWD" 10:33:22.931335 > "257 "/" is current directory[CR][LF]" 10:33:22.934469 < "EPSV" 10:33:22.934891 ====> Passive DATA channel requested by client 10:33:22.935136 DATA sockfilt for passive data channel starting... 10:33:22.945668 DATA sockfilt for passive data channel started (pid 138890) 10:33:22.946820 DATA sockfilt for passive data channel listens on port 37723 10:33:22.947465 > "229 Entering Passive Mode (|||37723|)[LF]" 10:33:22.948463 Client has been notified that DATA conn will be accepted on port 37723 10:33:22.952473 Client connects to port 37723 10:33:22.952950 ====> CCMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1222.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/6/stdout1222 2> log/6/stderr1222 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1235 ../src/curl -q --include --trace-ascii log/1/trace1235 --trace-time "127.0.0.1:36129/{1235,1235}{0001,0002}" > log/1/stdout1235 2> log/1/stderr1235 lient established passive DATA connection on port 37723 10:33:22.954371 < "TYPE I" 10:33:22.955029 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:22.958200 < "SIZE verifiedserver" 10:33:22.958752 > "213 18[CR][LF]" 10:33:22.965582 < "RETR verifiedserver" 10:33:22.966281 > "150 Binary junk (18 bytes).[CR][LF]" 10:33:22.967069 =====> Closing passive DATA connection... 10:33:22.967344 Server disconnects passive DATA connection 10:33:22.969641 Server disconnected passive DATA connection 10:33:22.969997 DATA sockfilt for passive data channel quits (pid 138890) 10:33:22.971835 DATA sockfilt for passive data channel quit (pid 138890) 10:33:22.972210 =====> Closed passive DATA connection 10:33:22.972545 > "226 File transfer complete[CR][LF]" 10:33:23.020680 < "QUIT" 10:33:23.021272 > "221 bye bye baby[CR][LF]" 10:33:23.027830 MAIN sockfilt said DISC 10:33:23.028344 ====> Client disconnected 10:33:23.029032 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:23.589609 ====> Client connect 10:33:23.591972 Received DATA (on stdin) 10:33:23.592193 > 160 bytes data, server => client 10:33:23.592323 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:23.592401 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:23.592473 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:23.593420 < 16 bytes data, client => server 10:33:23.593639 'USER anonymous\r\n' 10:33:23.595019 Received DATA (on stdin) 10:33:23.595225 > 33 bytes data, server => client 10:33:23.595348 '331 We are happy you popped in!\r\n' 10:33:23.595977 < 22 bytes data, client => server 10:33:23.596173 'PASS ftp@example.com\r\n' 10:33:23.596914 Received DATA (on stdin) 10:33:23.597038 > 30 bytes data, server => client 10:33:23.597122 '230 Welcome you silly person\r\n' 10:33:23.597805 < 5 bytes data, client => server 10:33:23.598028 'PWD\r\n' 10:33:23.599939 Received DATA (on stdin) 10:33:23.600123 > 30 bytes data, server => client 10:33:23.600220 '257 "/" is current directory\r\n' 10:33:23.601111 < 6 bytes data, client => server 10:33:23.601403 'EPSV\r\n' 10:33:23.615791 Received DATA (on stdin) 10:33:23.616013 > 38 bytes data, server => client 10:33:23.616119 '229 Entering Passive Mode (|||37723|)\n' 10:33:23.620203 < 8 bytes data, client => server 10:33:23.620447 'TYPE I\r\n' 10:33:23.623284 Received DATA (on stdin) 10:33:23.623510 > 33 bytes data, server => client 10:33:23.623665 '200 I modify TYPE as you wanted\r\n' 10:33:23.625782 < 21 bytes data, client => server 10:33:23.626030 'SIZE verifiedserver\r\n' 10:33:23.628347 Received DATA (on stdin) 10:33:23.628634 > 8 bytes data, server => client 10:33:23.628738 '213 18\r\n' 10:33:23.632385 < 21 bytes data, client => server 10:33:23.632613 'RETR verifiedserver\r\n' 10:33:23.636397 Received DATA (on stdin) 10:33:23.636588 > 29 bytes data, server => client 10:33:23.636688 '150 Binary junk (18 bytes).\r\n' 10:33:23.641107 Received DATA (on stdin) 10:33:23.641313 > 28 bytes data, server => client 10:33:23.641406 '226 File transfer complete\r\n' 10:33:23.686025 < 6 bytes data, client => server 10:33:23.686277 'QUIT\r\n' 10:33:23.690503 Received DATA (on stdin) 10:33:23.690805 > 18 bytes data, server => client 10:33:23.690923 '221 bye bye baby\r\n' 10:33:23.693873 ====> Client disconnect 10:33:23.696873 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:22.612470 Running IPv4 version 10:33:22.613055 Listening on port 37723 10:33:22.613396 Wrote pid 138890 to log/5/server/ftp_sockdata.pid 10:33:22.613550 Received PING (on stdin) 10:33:22.614446 Received PORT (on stdin) 10:33:22.620250 ====> Client connect 10:33:22.635944 Received DATA (on stdin) 10:33:22.636144 > 18 bytes data, server => client 10:33:22.636246 'WE ROOLZ: 131615\r\n' 10:33:22.636568 Received DISC (on stdin) 10:33:22.636747 ====> Client forcibly disconnected 10:33:22.638522 Received QUIT (on stdin) 10:33:22.638673 quits 10:33:22.639137 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd # Assuming there's nothing listening on port 1 REPLY EPSV 229 Entering Passive Mode (|||1|) Testnum 1233 === End of file server.cmd === Start of file valgrind1233 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1233 test 1222...[Verify deprecation statuses and versions] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1222.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/6/stdout1222 2> log/6/stderr1222 valgrind SKIPPED -------e--- OK (1145 out of 1725, remaining: 01:24, took 2.989s, duration: 02:47) CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1237 ../src/curl -q --output log/2/curl1237.out --include --trace-ascii log/2/trace1237 --trace-time "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB@127.0.0.1:43789/1237" > log/2/stdout1237 2> log/2/stderr1237 test 1235...[multiple requests using {}{} in the URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1235 ../src/curl -q --include --trace-ascii log/1/trace1235 --trace-time "127.0.0.1:36129/{1235,1235}{0001,0002}" > log/1/stdout1235 2> log/1/stderr1235 1235: stdout FAILED: --- log/1/check-expected 2025-09-11 10:33:23.994124586 +0000 +++ log/1/check-generated 2025-09-11 10:33:23.994124586 +0000 @@ -1,20 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 15[CR][LF] -[CR][LF] -the number one[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 16[CR][LF] -[CR][LF] -two is nice too[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 15[CR][LF] -[CR][LF] -the number one[LF] -HTTP/1.1 200 OK[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 16[CR][LF] -[CR][LF] -two is nice too[LF] == Contents of files in the log/1/ dir after test 1235 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 15[CR][LF] [CR][LF] the number one[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 16[CR][LF] [CR][LF] two is nice too[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 15[CR][LF] [CR][LF] the number one[LF] HTTP/1.1 200 OK[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 16[CR][LF] [CR][LF] two is nice too[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1235 ../src/curl -q --include --trace-ascii log/1/trace1235 --trace-time "127.0.0.1:36129/{1235,1235}{0001,0002}" > log/1/stdout1235 2> log/1/stderr1235 === End of file commands.log === Start of file http_server.log 10:33:22.775094 ====> Client connect 10:33:22.775501 accept_connection 3 returned 4 10:33:22.775724 accept_connection 3 returned 0 10:33:22.775868 Read 93 bytes 10:33:22.775974 Process 93 bytes request 10:33:22.776078 Got request: GET /verifiedserver HTTP/1.1 10:33:22.776166 Are-we-friendly question received 10:33:22.776473 Wrote request (93 bytes) input to log/1/server.input 10:33:22.776748 Identifying ourselves as friends 10:33:22.777640 Response sent (56 bytes) and written to log/1/server.response 10:33:22.777967 special request received, no persistency 10:33:22.778061 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46752 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1235 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1235 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1235 test 1237...[URL with 1000+ letter user name + password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1237 ../src/curl -q --output log/2/curl1237.out --include --trace-ascii log/2/trace1237 --trace-time "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB@127.0.0.1:43789/1237" > log/2/stdout1237 2> log/2/stderr1237 1237: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1237 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1237 ../src/curl -q --output log/2/curl1237.out --include --trace-ascii log/2/trace1237 --trace-time "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1238 ../src/curl -q --output log/3/curl1238.out --include --trace-ascii log/3/trace1238 --trace-time tftp://127.0.0.1:51485//1238 -Y1000 -y2 > log/3/stdout1238 2> log/3/stderr1238 RUN: Process with pid 128618 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1240 ../src/curl -q --output log/7/curl1240.out --include --trace-ascii log/7/trace1240 --trace-time "127.0.0.1:40129/0[0-1]/1240" > log/7/stdout1240 2> log/7/stderr1240 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB@127.0.0.1:43789/1237" > log/2/stdout1237 2> log/2/stderr1237 === End of file commands.log === Start of file http_server.log 10:33:23.088054 ====> Client connect 10:33:23.088386 accept_connection 3 returned 4 10:33:23.088592 accept_connection 3 returned 0 10:33:23.088739 Read 93 bytes 10:33:23.088856 Process 93 bytes request 10:33:23.088995 Got request: GET /verifiedserver HTTP/1.1 10:33:23.089140 Are-we-friendly question received 10:33:23.089419 Wrote request (93 bytes) input to log/2/server.input 10:33:23.089616 Identifying ourselves as friends 10:33:23.091060 Response sent (56 bytes) and written to log/2/server.response 10:33:23.091241 special request received, no persistency 10:33:23.091318 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 43816 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1237 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1237 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1237 test 1240...[glob [0-1] with stuff after range (7.33.0 regression)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1240 ../src/curl -q --output log/7/curl1240.out --include --trace-ascii log/7/trace1240 --trace-time "127.0.0.1:40129/0[0-1]/1240" > log/7/stdout1240 2> log/7/stderr1240 1240: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1240 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1240 ../src/curl -q --output log/7/curl1240.out --include --trace-ascii log/7/trace1240 --trace-time "127.0.0.1:40129/0[0-1]/1240" > log/7/stdout1240 2> log/7/stderr1240 === End of file commands.log === Start of file http_server.log 10:33:23.575811 ====> Client connect 10:33:23.576255 accept_connection 3 returned 4 10:33:23.576535 accept_connection 3 returned 0 10:33:23.576766 Read 93 bytes 10:33:23.576967 Process 93 bytes request 10:33:23.577141 Got request: GET /verifiedserver HTTP/1.1 10:33:23.577292 Are-we-friendly question received 10:33:23.577637 Wrote request (93 bytes) input to log/7/server.input 10:33:23.578175 Identifying ourselves as friends 10:33:23.579479 Response sent (56 bytes) and written to log/7/server.response 10:33:23.579649 special request received, no persistency 10:33:23.579730 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37456 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1240 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1240 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1239 ../src/curl -q --include --trace-ascii log/8/trace1239 --trace-time http://127.0.0.1:36007/1239 -z "-dec 12 12:00:00 1999 GMT" -w '%{response_code}' > log/8/stdout1239 2> log/8/stderr1239 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1242 ../src/curl -q --output log/5/curl1242.out --include --trace-ascii log/5/trace1242 --trace-time tftp://127.0.0.1:44106//1242 --tftp-no-options > log/5/stdout1242 2> log/5/stderr1242 will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1240 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1241 ../src/curl -q --output log/4/curl1241.out --include --trace-ascii log/4/trace1241 --trace-time --path-as-is --proxy http://127.0.0.1:36757 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../1241?stupid=me/../1241#soo/../1241 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../12410001#/../12410001 > log/4/stdout1241 2> log/4/stderr1241 test 1239...[HTTP with -z + -w response_code and simulated 304] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1239 ../src/curl -q --include --trace-ascii log/8/trace1239 --trace-time http://127.0.0.1:36007/1239 -z "-dec 12 12:00:00 1999 GMT" -w '%{response_code}' > log/8/stdout1239 2> log/8/stderr1239 1239: stdout FAILED: --- log/8/check-expected 2025-09-11 10:33:24.762139874 +0000 +++ log/8/check-generated 2025-09-11 10:33:24.762139874 +0000 @@ -1,11 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Server: test-server/fake[LF] -Last-Modified: Tue, 13 Jun 2010 12:10:00 GMT[LF] -ETag: "21025-dc7-39462498"[LF] -Accept-Ranges: bytes[LF] -Content-Length: 6[LF] -Connection: close[LF] -Content-Type: text/html[LF] -[LF] -304 == Contents of files in the log/8/ dir after test 1239 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Server: test-server/fake[LF] Last-Modified: Tue, 13 Jun 2010 12:10:00 GMT[LF] ETag: "21025-dc7-39462498"[LF] Accept-Ranges: bytes[LF] Content-Length: 6[LF] Connection: close[LF] Content-Type: text/html[LF] [LF] 304 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1239 ../src/curl -q --include --trace-ascii log/8/trace1239 --trace-time http://127.0.0.1:36007/1239 -z "-dec 12 12:00:00 1999 GMT" -w '%{response_code}' > log/8/stdout1239 2> log/8/stderr1239 === End of file commands.log === Start of file http_server.log 10:33:23.500453 ====> Client connect 10:33:23.500788 accept_connection 3 returned 4 10:33:23.500992 accept_connection 3 returned 0 10:33:23.501161 Read 93 bytes 10:33:23.501281 Process 93 bytes request 10:33:23.501385 Got request: GET /verifiedserver HTTP/1.1 10:33:23.501467 Are-we-friendly question received 10:33:23.501825 Wrote request (93 bytes) input to log/8/server.input 10:33:23.502064 Identifying ourselves as friends 10:33:23.502952 Response sent (56 bytes) and written to log/8/server.response 10:33:23.503142 special request received, no persistency 10:33:23.503223 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58208 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1239 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1239 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1239 test 1241...[HTTP _without_ dotdot removal] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1241 ../src/curl -q --output log/4/curl1241.out --include --trace-ascii log/4/trace1241 --trace-time --path-as-is --proxy http://127.0.0.1:36757 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../1241?stupid=me/../1241#soo/../1241 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../12410001#/../12410001 > log/4/stdout1241 2> log/4/stderr1241 1241: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1241 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1241 ../src/curl -q --output log/4/curl1241.out --include --trace-ascii log/4/trace1241 --trace-time --path-as-is --proxy http://127.0.0.1:36757 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../1241?stupid=me/../1241#soo/../1241 http://test.remote.haxx.se.1241:8990/../../hej/but/who/../12410001#/../12410001 > log/4/stdout1241 2> log/4/stderr1241 === End of file commands.log === Start of file http_server.log 10:33:24.629817 ====> Client connect 10:33:24.630160 accept_connection 3 returned 4 10:33:24.630354 accept_connection 3 returned 0 10:33:24.630492 Read 93 bytes 10:33:24.630604 Process 93 bytes request 10:33:24.630697 Got request: GET /verifiedserver HTTP/1.1 10:33:24.630773 Are-we-friendly question received 10:33:24.630991 Wrote request (93 bytes) input to log/4/server.input 10:33:24.631146 Identifying ourselves as friends 10:33:24.631824 Response sent (56 bytes) and written to log/4/server.response 10:33:24.631966 special request received, no persistency 10:33:24.632035 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 46552 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1241 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1241 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1243 ../src/curl -q --output log/6/curl1243.out --include --trace-ascii log/6/trace1243 --trace-time -T log/6/test1243.txt tftp://127.0.0.1:47713// --tftp-no-options > log/6/stdout1243 2> log/6/stderr1243 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1246 ../src/curl -q --output log/1/curl1246.out --include --trace-ascii log/1/trace1246 --trace-time --proxy http://127.0.0.1:36129 http://test.remote.haxx.se.1246:36129#@127.0.0.1/tricked.html no-scheme-url.com.1246:36129#@127.127.127.127/again.html > log/1/stdout1246 2> log/1/stderr1246 so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1241 test 1242...[TFTP retrieve without TFTP options requests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1242 ../src/curl -q --output log/5/curl1242.out --include --trace-ascii log/5/trace1242 --trace-time tftp://127.0.0.1:44106//1242 --tftp-no-options > log/5/stdout1242 2> log/5/stderr1242 1242: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1242 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1242 ../src/curl -q --output log/5/curl1242.out --include --trace-ascii log/5/trace1242 --trace-time tftp://127.0.0.1:44106//1242 --tftp-no-options > log/5/stdout1242 2> log/5/stderr1242 === End of file commands.log === Start of file server.cmd Testnum 1242 === End of file server.cmd === Start of file tftp_server.log 10:33:24.656191 trying to get file: verifiedserver mode 1 10:33:24.656543 Are-we-friendly question received 10:33:24.656698 write 10:33:24.656954 read 10:33:24.657890 read: 4 10:33:24.658416 end of one transfer === End of file tftp_server.log === Start of file valgrind1242 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1242 test 1243...[TFTP send without TFTP options requests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1243 ../src/curl -q --output log/6/curl1243.out --include --trace-ascii log/6/trace1243 --trace-time -T log/6/test1243.txt tftp://127.0.0.1:47713// --tftp-no-options > log/6/stdout1243 2> log/6/stderr1243 1243: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1243 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1243 ../src/curl -q --output log/6/curl1243.out --include --trace-ascii log/6/trace1243 --trace-time -T log/6/test1243.txt tftp://127.0.0.1:47713// --tftp-no-options > log/6/stdout1243 2> log/6/stderr1243 === End of file commands.log === Start of file server.cmd Testnum 1243 === End of file server.cmd === Start of file test1243.txt a chunk of data sent to server === End of file test1243.txt === Start of file tftp_server.log 10:33:24.756560 trying to get file: verifiedserver mode 1 10:33:24.756878 Are-we-friendly question received 10:33:24.757050 write 10:33:24.757323 read 10:33:24.761001 read: 4 10:33:24.761560 end of one transfer === End of file tftp_server.log === Start of file valgrind1243 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1243 test 1246...[URL with '#' at end of host name instead of '/'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1246 ../src/curl -q --output log/1/curl1246.out --include --trace-ascii log/1/trace1246 --trace-time --proxy http://127.0.0.1:36129 http://test.remote.haxx.se.1246:36129#@127.0.0.1/tricked.html no-scheme-url.com.1246:36129#@127.127.127.127/again.html > log/1/stdout1246 2> log/1/stderr1246 1246: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1246 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1246 ../src/curl -q --output log/1/curl1246.out --include --trace-ascii log/1/trace1246 --trace-time --proxy http://127.0.0.1:36129 http://test.remote.haxx.se.1246:36129#@127.0.0.1/tricked.html no-scheme-url.com.1246:36129#@127.127.127.127/again.html > log/1/stdout1246 2> log/1/stderr1246 === End of file commands.log === Start of file http_server.log 10:33:24.054181 ====> Client connect 10:33:24.054657 accept_connection 3 returned 4 10:33:24.054919 accept_connection 3 returned 0 10:33:24.055108 Read 93 bytes 10:33:24.055226 Process 93 bytes request 10:33:24.055363 Got request: GET /verifiedserver HTTP/1.1 10:33:24.055474 Are-we-friendly question received 10:33:24.055770 Wrote request (93 bytes) input to log/1/server.input 10:33:24.056052 Identifying ourselves as friends 10:33:24.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1245 ../src/curl -q --output log/2/curl1245.out --include --trace-ascii log/2/trace1245 --trace-time --location --proto +all,-ftp --proto-redir -all,+ftp http://127.0.0.1:43789/1245 > log/2/stdout1245 2> log/2/stderr1245 056962 Response sent (56 bytes) and written to log/1/server.response 10:33:24.057157 special request received, no persistency 10:33:24.057245 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46782 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1246 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1246 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1246 test 1245...[--proto deny must override --proto-redir allow] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1245 ../src/curl -q --output log/2/curl1245.out --include --trace-ascii log/2/trace1245 --trace-time --location --proto +all,-ftp --proto-redir -all,+ftp http://127.0.0.1:43789/1245 > log/2/stdout1245 2> log/2/stderr1245 1245: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1245 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1245 ../src/curl -q --output log/2/curl1245.out --include --trace-ascii log/2/trace1245 --trace-time --location --proto +all,-ftp --proto-redir -all,+ftp http://127.0.0.1:43789/1245 > log/2/stdout1245 2> log/2/stderr1245 === End of file commands.log === Start of file ftp_server.log 10:33:24.594672 ====> Client connect 10:33:24.595982 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:24.602489 < "USER anonymous" 10:33:24.603032 > "331 We are happy you popped in![CR][LF]" 10:33:24.605967 < "PASS ftp@example.com" 10:33:24.606504 > "230 Welcome you silly person[CR][LF]" 10:33:24.609396 < "PWD" 10:33:24.610259 > "257 "/" is current directory[CR][LF]" 10:33:24.618817 < "EPSV" 10:33:24.619282 ====> Passive DATA channel requested by client 10:33:24.619562 DATA sockfilt for passive data channel starting... 10:33:24.632716 DATA sockfilt for passive data channel started (pid 139701) 10:33:24.634252 DATA sockfilt for passive data channel listens on port 42169 10:33:24.635172 > "229 Entering Passive Mode (|||42169|)[LF]" 10:33:24.635573 Client has been notified that DATA conn will be accepted on port 42169 10:33:24.638500 Client connects to port 42169 10:33:24.639200 ====> Client established passive DATA connection on port 42169 10:33:24.640341 < "TYPE I" 10:33:24.640971 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:24.649758 < "SIZE verifiedserver" 10:33:24.650835 > "213 17[CR][LF]" 10:33:24.657224 < "RETR verifiedserver" 10:33:24.658205 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:24.659450 =====> Closing passive DATA connection... 10:33:24.659838 Server disconnects passive DATA connection 10:33:24.661606 Fancy that; client wants to DISC, too 10:33:24.662005 Server disconnected passive DATA connection 10:33:24.662268 DATA sockfilt for passive data channel quits (pid 139701) 10:33:24.665652 DATA sockfilt for passive data channel quit (pid 139701) 10:33:24.666308 =====> Closed passive DATA connection 10:33:24.667032 > "226 File transfer complete[CR][LF]" 10:33:24.710612 < "QUIT" 10:33:24.711176 > "221 bye bye baby[CR][LF]" 10:33:24.715050 MAIN sockfilt said DISC 10:33:24.715500 ====> Client disconnected 10:33:24.716173 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:24.262256 ====> Client connect 10:33:24.264150 Received DATA (on stdin) 10:33:24.264424 > 160 bytes data, server => client 10:33:24.264546 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:24.264636 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:24.264705 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:24.266464 < 16 bytes data, client => server 10:33:24.266700 'USER anonymous\r\n' 10:33:24.271891 Received DATA (on stdin) 10:33:24.272109 > 33 bytes data, server => client 10:33:24.272203 '331 We are happy you popped in!\r\n' 10:33:24.272957 < 22 bytes data, client => server 10:33:24.273174 'PASS ftp@example.com\r\n' 10:33:24.275147 Received DATA (on stdin) 10:33:24.275389 > 30 bytes data, server => client 10:33:24.275517 '230 Welcome you silly person\r\n' 10:33:24.276259 < 5 bytes data, client => server 10:33:24.276489 'PWD\r\n' 10:33:24.284200 Received DATA (on stdin) 10:33:24.284533 > 30 bytes data, server => client 10:33:24.284665 '257 "/" is current directory\r\n' 10:33:24.285709 < 6 bytes data, client => server 10:33:24.286013 'EPSV\r\n' 10:33:24.303429 Received DATA (on stdin) 10:33:24.303714 > 38 bytes data, server => client 10:33:24.303863 '229 Entering Passive Mode (|||42169|)\n' 10:33:24.305931 < 8 bytes data, client => server 10:33:24.306134 'TYPE I\r\n' 10:33:24.309492 Received DATA (on stdin) 10:33:24.309969 > 33 bytes data, server => client 10:33:24.310241 '200 I modify TYPE as you wanted\r\n' 10:33:24.316304 < 21 bytes data, client => server 10:33:24.316617 'SIZE verifiedserver\r\n' 10:33:24.321401 Received DATA (on stdin) 10:33:24.321825 > 8 bytes data, server => client 10:33:24.321992 '213 17\r\n' 10:33:24.322883 < 21 bytes data, client => server 10:33:24.323150 'RETR verifiedserver\r\n' 10:33:24.327205 Received DATA (on stdin) 10:33:24.327510 > 29 bytes data, server => client 10:33:24.327678 '150 Binary junk (17 bytes).\r\n' 10:33:24.335196 Received DATA (on stdin) 10:33:24.335562 > 28 bytes data, server => client 10:33:24.335737 '226 File transfer complete\r\n' 10:33:24.374900 < 6 bytes data, client => server 10:33:24.375214 'QUIT\r\n' 10:33:24.381830 Received DATA (on stdin) 10:33:24.382156 > 18 bytes data, server => client 10:33:24.382294 '221 bye bye baby\r\n' 10:33:24.382863 ====> Client disconnect 10:33:24.383716 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:24.298108 Running IPv4 version 10:33:24.298CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1247 ../src/curl -q --output log/7/curl1247.out --include --trace-ascii log/7/trace1247 --trace-time --fail-early h1234://127.0.0.1:40129/1247 http://127.0.0.1:40129/1247 > log/7/stdout1247 2> log/7/stderr1247 682 Listening on port 42169 10:33:24.299436 Wrote pid 139701 to log/2/server/ftp_sockdata.pid 10:33:24.300421 Received PING (on stdin) 10:33:24.301516 Received PORT (on stdin) 10:33:24.305867 ====> Client connect 10:33:24.327944 Received DATA (on stdin) 10:33:24.328153 > 17 bytes data, server => client 10:33:24.328301 'WE ROOLZ: 79558\r\n' 10:33:24.329128 ====> Client disconnect 10:33:24.329713 Received DISC (on stdin) 10:33:24.329939 Crikey! Client also wants to disconnect 10:33:24.330168 Received ACKD (on stdin) 10:33:24.330927 Received QUIT (on stdin) 10:33:24.331170 quits 10:33:24.331709 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:33:24.069540 ====> Client connect 10:33:24.072202 accept_connection 3 returned 4 10:33:24.072460 accept_connection 3 returned 0 10:33:24.072652 Read 93 bytes 10:33:24.072752 Process 93 bytes request 10:33:24.072846 Got request: GET /verifiedserver HTTP/1.1 10:33:24.072926 Are-we-friendly question received 10:33:24.073190 Wrote request (93 bytes) input to log/2/server.input 10:33:24.073367 Identifying ourselves as friends 10:33:24.074360 Response sent (56 bytes) and written to log/2/server.response 10:33:24.074539 special request received, no persistency 10:33:24.074628 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 43828 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1245 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1245 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1245 test 1247...[--fail-early] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1247 ../src/curl -q --output log/7/curl1247.out --include --trace-ascii log/7/trace1247 --trace-time --fail-early h1234://127.0.0.1:40129/1247 http://127.0.0.1:40129/1247 > log/7/stdout1247 2> log/7/stderr1247 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/7/ dir after test 1247 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1247 ../src/curl -q --output log/7/curl1247.out --include --trace-ascii log/7/trace1247 --trace-time --fail-early h1234://127.0.0.1:40129/1247 http://127.0.0.1:40129/1247 > log/7/stdout1247 2> log/7/stderr1247 === End of file commands.log === Start of file http_server.log 10:33:24.463109 ====> Client connect 10:33:24.463563 accept_connection 3 returned 4 10:33:24.463881 accept_connection 3 returned 0 10:33:24.464019 Read 93 bytes 10:33:24.464119 Process 93 bytes request 10:33:24.464215 Got request: GET /verifiedserver HTTP/1.1 10:33:24.464285 Are-we-friendly question received 10:33:24.464535 Wrote request (93 bytes) input to log/7/server.input 10:33:24.464715 Identifying ourselves as friends 10:33:24.465394 Response sent (56 bytes) and written to log/7/server.response 10:33:24.465511 special request received, no persistency 10:33:24.465578 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37458 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1247 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1247 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1248 ../src/curl -q --output log/8/curl1248.out --include --trace-ascii log/8/trace1248 --trace-time http://user:secret@127.0.0.1:36007/1248 --proxy http://dummy:47/ --noproxy 127.0.0.1 --max-time 5 > log/8/stdout1248 2> log/8/stderr1248 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1250 ../src/curl -q --output log/4/curl1250.out --include --trace-ascii log/4/trace1250 --trace-time http://user:secret@127.0.0.1:36757/1250 --noproxy 127.0.0.1 --max-time 5 > log/4/stdout1250 2> log/4/stderr1250 platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1247 test 1248...[Non-proxied host plus --proxy option and --noproxy option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1248 ../src/curl -q --output log/8/curl1248.out --include --trace-ascii log/8/trace1248 --trace-time http://user:secret@127.0.0.1:36007/1248 --proxy http://dummy:47/ --noproxy 127.0.0.1 --max-time 5 > log/8/stdout1248 2> log/8/stderr1248 1248: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1248 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1248 ../src/curl -q --output log/8/curl1248.out --include --trace-ascii log/8/trace1248 --trace-time http://user:secret@127.0.0.1:36007/1248 --proxy http://dummy:47/ --noproxy 127.0.0.1 --max-time 5 > log/8/stdout1248 2> log/8/stderr1248 === End of file commands.log === Start of file http_server.log 10:33:24.618592 ====> Client connect 10:33:24.618961 accept_connection 3 returned 4 10:33:24.619164 accept_connection 3 returned 0 10:33:24.619353 Read 93 bytes 10:33:24.619471 Process 93 bytes request 10:33:24.619566 Got request: GET /verifiedserver HTTP/1.1 10:33:24.619643 Are-we-friendly question received 10:33:24.619965 Wrote request (93 bytes) input to log/8/server.input 10:33:24.620208 Identifying ourselves as friends 10:33:24.621125 Response sent (56 bytes) and written to log/8/server.response 10:33:24.621355 special request received, no persistency 10:33:24.621442 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58224 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1248 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1248 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1248 setenv http_proxy = http://dummy:[not running]/ test 1250...[Non-proxied host plus http_proxy env var and --noproxy option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1250 ../src/curl -q --output log/4/curl1250.out --include --trace-ascii log/4/trace1250 --trace-time http://user:secret@127.0.0.1:36757/1250 --noproxy 127.0.0.1 --max-time 5 > log/4/stdout1250 2> log/4/stderr1250 1250: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1250 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1250 ../src/curl -q --output log/4/curl1250.out --include --trace-ascii log/4/trace1250 --trace-time http://user:secret@127.0.0.1:36757/1250 --noproxy 127.0.0.1 --max-time 5 > log/4/stdout1250 2> log/4/stderr1250 === End of file commands.log === Start of file http_server.log 10:33:25.670950 ====> Client connect 10:33:25.671319 accept_connection 3 returned 4 10:33:25.671560 accept_connection 3 returned 0 10:33:25.671726 Read 93 bytes 10:33:25.671824 Process 93 bytes request 10:33:25.671920 Got request: GET /verifiedserver HTTP/1.1 10:33:25.671994 Are-we-friendly question received 10:33:25.672242 Wrote request (93 bytes) input to log/4/server.input 10:33:25.672438 Identifying ourselves as friends 10:33:25.673343 Response sent (56 bytes) and written to log/4/server.response 10:33:25.673470 special request received, no persistency 10:33:25.673544 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 46558 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1250 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1250 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1249 ../src/curl -q --output log/5/curl1249.out --include --trace-ascii log/5/trace1249 --trace-time http://user:secret@127.0.0.1:41733/1249 --proxy http://dummy:47/ --max-time 5 > log/5/stdout1249 2> log/5/stderr1249 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1251 ../src/curl -q --output log/6/curl1251.out --include --trace-ascii log/6/trace1251 --trace-time http://user:secret@127.0.0.1:33363/1251 --max-time 5 > log/6/stdout1251 2> log/6/stderr1251 bg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1250 setenv http_proxy = http://dummy:33453/ setenv NO_PROXY = 127.0.0.1 test 1251...[Non-proxied host plus http_proxy env var and NO_PROXY env var] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1251 ../src/curl -q --output log/6/curl1251.out --include --trace-ascii log/6/trace1251 --trace-time http://user:secret@127.0.0.1:33363/1251 --max-time 5 > log/6/stdout1251 2> log/6/stderr1251 1251: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1251 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1251 ../src/curl -q --output log/6/curl1251.out --include --trace-ascii log/6/trace1251 --trace-time http://user:secret@127.0.0.1:33363/1251 --max-time 5 > log/6/stdout1251 2> log/6/stderr1251 === End of file commands.log === Start of file http_server.log 10:33:24.712292 ====> Client connect 10:33:24.712609 accept_connection 3 returned 4 10:33:24.712837 accept_connection 3 returned 0 10:33:24.713010 Read 93 bytes 10:33:24.713112 Process 93 bytes request 10:33:24.713201 Got request: GET /verifiedserver HTTP/1.1 10:33:24.713280 Are-we-friendly question received 10:33:24.713523 Wrote request (93 bytes) input to log/6/server.input 10:33:24.713839 Identifying ourselves as friends 10:33:24.714678 Response sent (56 bytes) and written to log/6/server.response 10:33:24.714828 special request received, no persistency 10:33:24.714897 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 42458 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1251 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1251 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1251 setenv NO_PROXY = 127.0.0.1 test 1249...[Non-proxied plus --proxy option and NO_PROXY env var] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1249 ../src/curl -q --output log/5/curl1249.out --include --trace-ascii log/5/trace1249 --trace-time http://user:secret@127.0.0.1:41733/1249 --proxy http://dummy:47/ --max-time 5 > log/5/stdout1249 2> log/5/stderr1249 1249: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1249 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1249 ../src/curl -q --output log/5/curl1249.out --include --trace-ascii log/5/trace1249 --trace-time http://user:secret@127.0.0.1:41733/1249 --proxy http://dummy:47/ --max-time 5 > log/5/stdout1249 2> log/5/stderr1249 === End of file commands.log === Start of file http_server.log 10:33:25.661485 ====> Client connect 10:33:25.662031 accept_connection 3 returned 4 10:33:25.662288 accept_connection 3 returned 0 10:33:25.662505 Read 93 bytes 10:33:25.662644 Process 93 bytes request 10:33:25.662751 Got request: GET /verifiedserver HTTP/1.1 10:33:25.662848 Are-we-friendly question received 10:33:25.663177 Wrote request (93 bytes) input to log/5/server.input 10:33:25.663412 Identifying ourselves as friends 10:33:25.664260 Response sent (56 bytes) and written to log/5/server.response 10:33:25.664493 special request received, no persistency 10:33:25.664603 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 55354 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1249 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1249 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will nCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1252 ../src/curl -q --output log/1/curl1252.out --include --trace-ascii log/1/trace1252 --trace-time http://127.0.0.1:36129/1252 --proxy http://127.0.0.1:36129 --noproxy 127.0.0.1 > log/1/stdout1252 2> log/1/stderr1252 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1253 ../src/curl -q --output log/2/curl1253.out --include --trace-ascii log/2/trace1253 --trace-time http://somewhere.example.com/1253 --proxy http://127.0.0.1:43789 --noproxy 127.0.0.1 > log/2/stdout1253 2> log/2/stderr1253 eed a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1249 setenv NO_PROXY = example.com test 1252...[--proxy, override NO_PROXY by --noproxy and access target URL directly] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1252 ../src/curl -q --output log/1/curl1252.out --include --trace-ascii log/1/trace1252 --trace-time http://127.0.0.1:36129/1252 --proxy http://127.0.0.1:36129 --noproxy 127.0.0.1 > log/1/stdout1252 2> log/1/stderr1252 1252: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1252 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1252 ../src/curl -q --output log/1/curl1252.out --include --trace-ascii log/1/trace1252 --trace-time http://127.0.0.1:36129/1252 --proxy http://127.0.0.1:36129 --noproxy 127.0.0.1 > log/1/stdout1252 2> log/1/stderr1252 === End of file commands.log === Start of file http_server.log 10:33:25.022833 ====> Client connect 10:33:25.023305 accept_connection 3 returned 4 10:33:25.023614 accept_connection 3 returned 0 10:33:25.023859 Read 93 bytes 10:33:25.024000 Process 93 bytes request 10:33:25.024103 Got request: GET /verifiedserver HTTP/1.1 10:33:25.024197 Are-we-friendly question received 10:33:25.024541 Wrote request (93 bytes) input to log/1/server.input 10:33:25.024807 Identifying ourselves as friends 10:33:25.025895 Response sent (56 bytes) and written to log/1/server.response 10:33:25.026071 special request received, no persistency 10:33:25.026156 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46790 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1252 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1252 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1252 setenv NO_PROXY = example.com test 1253...[--proxy, override NO_PROXY by --noproxy and access target URL through proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1253 ../src/curl -q --output log/2/curl1253.out --include --trace-ascii log/2/trace1253 --trace-time http://somewhere.example.com/1253 --proxy http://127.0.0.1:43789 --noproxy 127.0.0.1 > log/2/stdout1253 2> log/2/stderr1253 1253: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1253 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1253 ../src/curl -q --output log/2/curl1253.out --include --trace-ascii log/2/trace1253 --trace-time http://somewhere.example.com/1253 --proxy http://127.0.0.1:43789 --noproxy 127.0.0.1 > log/2/stdout1253 2> log/2/stderr1253 === End of file commands.log === Start of file http_server.log 10:33:25.301425 ====> Client connect 10:33:25.301901 accept_connection 3 returned 4 10:33:25.302133 accept_connection 3 returned 0 10:33:25.302270 Read 93 bytes 10:33:25.302364 Process 93 bytes request 10:33:25.302465 Got request: GET /verifiedserver HTTP/1.1 10:33:25.302538 Are-we-friendly question received 10:33:25.302769 Wrote request (93 bytes) input to log/2/server.input 10:33:25.302947 Identifying ourselves as friends 10:33:25.303724 Response sent (56 bytes) and written to log/2/server.response 10:33:25.303888 special request received, no persistency 10:33:25.303970 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 43840 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1253 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1253 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1254 ../src/curl -q --output log/7/curl1254.out --include --trace-ascii log/7/trace1254 --trace-time http://somewhere.example.com/1254 --proxy http://127.0.0.1:40129 --noproxy "" > log/7/stdout1254 2> log/7/stderr1254 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1255 ../src/curl -q --output log/8/curl1255.out --include --trace-ascii log/8/trace1255 --trace-time http://127.0.0.1:36007/1255 --noproxy 127.0.0.1 > log/8/stdout1255 2> log/8/stderr1255 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1256 ../src/curl -q --output log/4/curl1256.out --include --trace-ascii log/4/trace1256 --trace-time http://somewhere.example.com/1256 --noproxy 127.0.0.1 > log/4/stdout1256 2> log/4/stderr1256 -- exiting now. Sorry. === End of file valgrind1253 setenv NO_PROXY = example.com test 1254...[override NO_PROXY by --noproxy and access target URL through proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1254 ../src/curl -q --output log/7/curl1254.out --include --trace-ascii log/7/trace1254 --trace-time http://somewhere.example.com/1254 --proxy http://127.0.0.1:40129 --noproxy "" > log/7/stdout1254 2> log/7/stderr1254 1254: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1254 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1254 ../src/curl -q --output log/7/curl1254.out --include --trace-ascii log/7/trace1254 --trace-time http://somewhere.example.com/1254 --proxy http://127.0.0.1:40129 --noproxy "" > log/7/stdout1254 2> log/7/stderr1254 === End of file commands.log === Start of file http_server.log 10:33:25.387085 ====> Client connect 10:33:25.387429 accept_connection 3 returned 4 10:33:25.387627 accept_connection 3 returned 0 10:33:25.387783 Read 93 bytes 10:33:25.387893 Process 93 bytes request 10:33:25.388000 Got request: GET /verifiedserver HTTP/1.1 10:33:25.388095 Are-we-friendly question received 10:33:25.388380 Wrote request (93 bytes) input to log/7/server.input 10:33:25.388672 Identifying ourselves as friends 10:33:25.389598 Response sent (56 bytes) and written to log/7/server.response 10:33:25.389854 special request received, no persistency 10:33:25.389949 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37470 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1254 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1254 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1254 setenv http_proxy = http://127.0.0.1:36007 setenv NO_PROXY = example.com test 1255...[http_proxy, override NO_PROXY by --noproxy and access target URL directly] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1255 ../src/curl -q --output log/8/curl1255.out --include --trace-ascii log/8/trace1255 --trace-time http://127.0.0.1:36007/1255 --noproxy 127.0.0.1 > log/8/stdout1255 2> log/8/stderr1255 1255: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1255 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1255 ../src/curl -q --output log/8/curl1255.out --include --trace-ascii log/8/trace1255 --trace-time http://127.0.0.1:36007/1255 --noproxy 127.0.0.1 > log/8/stdout1255 2> log/8/stderr1255 === End of file commands.log === Start of file http_server.log 10:33:25.530255 ====> Client connect 10:33:25.530570 accept_connection 3 returned 4 10:33:25.530805 accept_connection 3 returned 0 10:33:25.531003 Read 93 bytes 10:33:25.531122 Process 93 bytes request 10:33:25.531225 Got request: GET /verifiedserver HTTP/1.1 10:33:25.531319 Are-we-friendly question received 10:33:25.531591 Wrote request (93 bytes) input to log/8/server.input 10:33:25.531781 Identifying ourselves as friends 10:33:25.532553 Response sent (56 bytes) and written to log/8/server.response 10:33:25.532678 special request received, no persistency 10:33:25.532746 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58240 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1255 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1255 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1255 setenv http_proxy = http://127.0.0.1:36757 setenv NO_PROXY = example.com test 1256...[http_proxy, override CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1257 ../src/curl -q --output log/6/curl1257.out --include --trace-ascii log/6/trace1257 --trace-time http://somewhere.example.com/1257 --noproxy "" > log/6/stdout1257 2> log/6/stderr1257 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1258 ../src/curl -q --output log/5/curl1258.out --include --trace-ascii log/5/trace1258 --trace-time http://127.0.0.1:41733/we/want/1258 http://127.0.0.1:41733/we/want?hoge=fuga -b non-existing -H "Host: localhost" > log/5/stdout1258 2> log/5/stderr1258 NO_PROXY by --noproxy and target URL through proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1256 ../src/curl -q --output log/4/curl1256.out --include --trace-ascii log/4/trace1256 --trace-time http://somewhere.example.com/1256 --noproxy 127.0.0.1 > log/4/stdout1256 2> log/4/stderr1256 1256: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1256 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1256 ../src/curl -q --output log/4/curl1256.out --include --trace-ascii log/4/trace1256 --trace-time http://somewhere.example.com/1256 --noproxy 127.0.0.1 > log/4/stdout1256 2> log/4/stderr1256 === End of file commands.log === Start of file http_server.log 10:33:26.575551 ====> Client connect 10:33:26.575920 accept_connection 3 returned 4 10:33:26.576154 accept_connection 3 returned 0 10:33:26.576326 Read 93 bytes 10:33:26.576444 Process 93 bytes request 10:33:26.576554 Got request: GET /verifiedserver HTTP/1.1 10:33:26.576651 Are-we-friendly question received 10:33:26.576950 Wrote request (93 bytes) input to log/4/server.input 10:33:26.577197 Identifying ourselves as friends 10:33:26.578162 Response sent (56 bytes) and written to log/4/server.response 10:33:26.578346 special request received, no persistency 10:33:26.578445 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 46574 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1256 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1256 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1256 setenv http_proxy = http://127.0.0.1:33363 setenv NO_PROXY = example.com test 1257...[http_proxy, override NO_PROXY by --noproxy and target URL through proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1257 ../src/curl -q --output log/6/curl1257.out --include --trace-ascii log/6/trace1257 --trace-time http://somewhere.example.com/1257 --noproxy "" > log/6/stdout1257 2> log/6/stderr1257 1257: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1257 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1257 ../src/curl -q --output log/6/curl1257.out --include --trace-ascii log/6/trace1257 --trace-time http://somewhere.example.com/1257 --noproxy "" > log/6/stdout1257 2> log/6/stderr1257 === End of file commands.log === Start of file http_server.log 10:33:25.608540 ====> Client connect 10:33:25.608996 accept_connection 3 returned 4 10:33:25.609281 accept_connection 3 returned 0 10:33:25.609438 Read 93 bytes 10:33:25.609534 Process 93 bytes request 10:33:25.609720 Got request: GET /verifiedserver HTTP/1.1 10:33:25.609866 Are-we-friendly question received 10:33:25.610239 Wrote request (93 bytes) input to log/6/server.input 10:33:25.610550 Identifying ourselves as friends 10:33:25.611388 Response sent (56 bytes) and written to log/6/server.response 10:33:25.611548 special request received, no persistency 10:33:25.611627 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 42470 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1257 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1257 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1257 test 1258...[HTTP, use cookies with localhost] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1258 ../src/curl -q --output log/5/curl12CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1259 ../src/curl -q --output log/1/curl1259.out --include --trace-ascii log/1/trace1259 --trace-time "http://user:pass;word@127.0.0.1:36129/we/want/1259" > log/1/stdout1259 2> log/1/stderr1259 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1260 ../src/curl -q --output log/2/curl1260.out --include --trace-ascii log/2/trace1260 --trace-time -g "http://[127.0.0.1]:47:80/we/want/1260" "http://127.0.0.1:47:80/we/want/1260" "http://user@example.com:80@localhost" > log/2/stdout1260 2> log/2/stderr1260 58.out --include --trace-ascii log/5/trace1258 --trace-time http://127.0.0.1:41733/we/want/1258 http://127.0.0.1:41733/we/want?hoge=fuga -b non-existing -H "Host: localhost" > log/5/stdout1258 2> log/5/stderr1258 1258: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1258 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1258 ../src/curl -q --output log/5/curl1258.out --include --trace-ascii log/5/trace1258 --trace-time http://127.0.0.1:41733/we/want/1258 http://127.0.0.1:41733/we/want?hoge=fuga -b non-existing -H "Host: localhost" > log/5/stdout1258 2> log/5/stderr1258 === End of file commands.log === Start of file http_server.log 10:33:26.623909 ====> Client connect 10:33:26.624236 accept_connection 3 returned 4 10:33:26.624420 accept_connection 3 returned 0 10:33:26.624542 Read 93 bytes 10:33:26.624613 Process 93 bytes request 10:33:26.624690 Got request: GET /verifiedserver HTTP/1.1 10:33:26.624750 Are-we-friendly question received 10:33:26.624930 Wrote request (93 bytes) input to log/5/server.input 10:33:26.625069 Identifying ourselves as friends 10:33:26.625785 Response sent (56 bytes) and written to log/5/server.response 10:33:26.625952 special request received, no persistency 10:33:26.626020 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 55358 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1258 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1258 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1258 test 1259...[HTTP URL with semicolon in password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1259 ../src/curl -q --output log/1/curl1259.out --include --trace-ascii log/1/trace1259 --trace-time "http://user:pass;word@127.0.0.1:36129/we/want/1259" > log/1/stdout1259 2> log/1/stderr1259 1259: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1259 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1259 ../src/curl -q --output log/1/curl1259.out --include --trace-ascii log/1/trace1259 --trace-time "http://user:pass;word@127.0.0.1:36129/we/want/1259" > log/1/stdout1259 2> log/1/stderr1259 === End of file commands.log === Start of file http_server.log 10:33:25.930153 ====> Client connect 10:33:25.930554 accept_connection 3 returned 4 10:33:25.930763 accept_connection 3 returned 0 10:33:25.930916 Read 93 bytes 10:33:25.931010 Process 93 bytes request 10:33:25.931097 Got request: GET /verifiedserver HTTP/1.1 10:33:25.931165 Are-we-friendly question received 10:33:25.931412 Wrote request (93 bytes) input to log/1/server.input 10:33:25.931635 Identifying ourselves as friends 10:33:25.932471 Response sent (56 bytes) and written to log/1/server.response 10:33:25.932656 special request received, no persistency 10:33:25.932744 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46794 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1259 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1259 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1259 test 1260...[HTTP URL with rubbish after port number] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1260 ../src/curl -q --output log/2/curl1260.out --include --trace-ascii log/2/trace1260 --trace-time -g "http://[127.0.0.1]:47:80/we/want/1260" "http://127.0.0.1:47:80/we/want/1260" "http://user@example.com:80@localhost" > log/2/stdout1260 2> log/2/stderr1260 curl returned 1, when expCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1263 ../src/curl -q --output log/4/curl1263.out --include --trace-ascii log/4/trace1263 --trace-time -g "http://[127.0.0.1]test:47/we/want/1263" "http://[127.0.0.1][127.0.0.1]:47/we/want/1263" "http://user@[::1]@localhost" > log/4/stdout1263 2> log/4/stderr1263 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1264 ../src/curl -q --output log/6/curl1264.out --include --trace-ascii log/6/trace1264 --trace-time -g "http://127.0.0.1 www.example.com/we/want/1264" > log/6/stdout1264 2> log/6/stderr1264 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1261 ../src/curl -q --include --trace-ascii log/7/trace1261 --trace-time http://127.0.0.1:40129/we/want/our/1261 -w '%{redirect_url}\n' --location --max-redirs 0 > log/7/stdout1261 2> log/7/stderr1261 ecting 3 1260: exit FAILED == Contents of files in the log/2/ dir after test 1260 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1260 ../src/curl -q --output log/2/curl1260.out --include --trace-ascii log/2/trace1260 --trace-time -g "http://[127.0.0.1]:47:80/we/want/1260" "http://127.0.0.1:47:80/we/want/1260" "http://user@example.com:80@localhost" > log/2/stdout1260 2> log/2/stderr1260 === End of file commands.log === Start of file server.cmd Testnum 1260 === End of file server.cmd === Start of file valgrind1260 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1260 test 1263...[HTTP URL with rubbish after IPv6 bracket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1263 ../src/curl -q --output log/4/curl1263.out --include --trace-ascii log/4/trace1263 --trace-time -g "http://[127.0.0.1]test:47/we/want/1263" "http://[127.0.0.1][127.0.0.1]:47/we/want/1263" "http://user@[::1]@localhost" > log/4/stdout1263 2> log/4/stderr1263 curl returned 1, when expecting 3 1263: exit FAILED == Contents of files in the log/4/ dir after test 1263 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1263 ../src/curl -q --output log/4/curl1263.out --include --trace-ascii log/4/trace1263 --trace-time -g "http://[127.0.0.1]test:47/we/want/1263" "http://[127.0.0.1][127.0.0.1]:47/we/want/1263" "http://user@[::1]@localhost" > log/4/stdout1263 2> log/4/stderr1263 === End of file commands.log === Start of file server.cmd Testnum 1263 === End of file server.cmd === Start of file valgrind1263 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1263 test 1264...[HTTP URL with space in host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1264 ../src/curl -q --output log/6/curl1264.out --include --trace-ascii log/6/trace1264 --trace-time -g "http://127.0.0.1 www.example.com/we/want/1264" > log/6/stdout1264 2> log/6/stderr1264 curl returned 1, when expecting 3 1264: exit FAILED == Contents of files in the log/6/ dir after test 1264 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1264 ../src/curl -q --output log/6/curl1264.out --include --trace-ascii log/6/trace1264 --trace-time -g "http://127.0.0.1 www.example.com/we/want/1264" > log/6/stdout1264 2> log/6/stderr1264 === End of file commands.log === Start of file server.cmd Testnum 1264 === End of file server.cmd === Start of file valgrind1264 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1264 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1262 ../src/curl -q --output log/8/curl1262.out --include --trace-ascii log/8/trace1262 --trace-time ftp://127.0.0.1:42977/blalbla/1262 -z "-1 jan 2001" > log/8/stdout1262 2> log/8/stderr1262 test 1261...['redirect_url' with --location and --max-redirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1261 ../src/curl -q --include --trace-ascii log/7/trace1261 --trace-time http://127.0.0.1:40129/we/want/our/1261 -w '%{redirect_url}\n' --location --max-redirs 0 > log/7/stdout1261 2> log/7/stderr1261 1261: stdout FAILED: --- log/7/check-expected 2025-09-11 10:33:27.410192586 +0000 +++ log/7/check-generated 2025-09-11 10:33:27.410192586 +0000 @@ -1,6 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/10290002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -http://127.0.0.1:40129/we/want/our/data/10290002.txt?coolsite=yes[LF] == Contents of files in the log/7/ dir after test 1261 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/10290002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] http://127.0.0.1:40129/we/want/our/data/10290002.txt?coolsite=yes[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1261 ../src/curl -q --include --trace-ascii log/7/trace1261 --trace-time http://127.0.0.1:40129/we/want/our/1261 -w '%{redirect_url}\n' --location --max-redirs 0 > log/7/stdout1261 2> log/7/stderr1261 === End of file commands.log === Start of file http_server.log 10:33:26.353348 ====> Client connect 10:33:26.353848 accept_connection 3 returned 4 10:33:26.354108 accept_connection 3 returned 0 10:33:26.354283 Read 93 bytes 10:33:26.354389 Process 93 bytes request 10:33:26.354493 Got request: GET /verifiedserver HTTP/1.1 10:33:26.354584 Are-we-friendly question received 10:33:26.354939 Wrote request (93 bytes) input to log/7/server.input 10:33:26.358186 Identifying ourselves as friends 10:33:26.359062 Response sent (56 bytes) and written to log/7/server.response 10:33:26.359238 special request received, no persistency 10:33:26.359321 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37476 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1261 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1261 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1261 test 1262...[FTP request and denied to download an older file with -z] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1262 ../src/curl -q --output log/8/curl1262.out --include --trace-ascii log/8/trace1262 --trace-time ftp://127.0.0.1:42977/blalbla/1262 -z "-1 jan 2001" > log/8/stdout1262 2> log/8/stderr1262 1262: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1262 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1262 ../src/curl -q --output log/8/curl1262.out --include --trace-ascii log/8/trace1262 --trace-time ftp://127.0.0.1:42977/blalbla/1262 -z "-1 jan 2001" > log/8/stdout1262 2> log/8/stderr1262 === End of file commands.log === Start of file ftp_server.log 10:33:26.757292 ====> Client connect 10:33:26.758711 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:26.761951 < "USER anonymous" 10:33:26.763113 > "331 We are happy you popped in![CR][LF]" 10:33:26.765852 < "PASS ftp@example.com" 10:33:26.766433 > "230 Welcome you silly person[CR][LF]" 10:33:26.771093 < "PWD" 10:33:26.771700 > "257 "/" is current directory[CR][LF]" 10:33:26.776674 < "EPSV" 10:33:26.777146 ====> Passive DATA channel requested by client 10:33:26.777399 DATA sockfilt for passive data channel starting... 10:33:26.789683 DATA sockfilt for passive data channel started (pid 140698) 10:33:26.790894 DATA sockfilt for passive data channel listens on port 38629 10:33:26.791432 > "229 Entering Passive Mode (|||38629|)[LF]" 10:33:26.791688 Client has been notified that DATA conn will be accepted on port 38629 10:33:26.798555 Client connects to port 38629 10:33:26.799019 ====> Client established passive DATA connection on port 38629 10:33:26.800133 < "TYPE I" 10:33:26.801824 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:26.803950 < "SIZE verifiedserver" 10:33:26.804460 > "213 17[CR][LF]" 10:33:26.807297 < "RETR verifiedserver" 10:33:26.809292 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:26.810330 =====> Closing passive DATA connection... 10:33:26.810644 Server disconnects passive DATA connection 10:33:26.815778 Server disconnected passive DATA connection 10:33:26.816196 DATA sockfilt for passive data channel quits (pid 140698) 10:33:26.817904 DATA sockfilt for passive data channel quit (pid 140698) 10:33:26.818275 =====> Closed passive DATA connection 10:33:26.818623 > "226 File transfer complete[CR][LF]" 10:33:26.853221 < "QUIT" 10:33:26.855186 > "221 bye bye baby[CR][LF]" 10:33:26.860897 MAIN sockfilt said DISC 10:33:26.861420 ====> Client disconnected 10:33:26.862199 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:26.424440 ====> Client connect 10:33:26.427444 Received DATA (on stdin) 10:33:26.427671 > 160 bytes data, server => client 10:33:26.427803 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:26.427897 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:26.427976 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:26.428782 < 16 bytes data, client => server 10:33:26.428982 'USER anonymous\r\n' 10:33:26.431686 Received DATA (onCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1266 ../src/curl -q --output log/1/curl1266.out --include --trace-ascii log/1/trace1266 --trace-time http://127.0.0.1:36129/1266 --http0.9 > log/1/stdout1266 2> log/1/stderr1266 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1267 ../src/curl -q --output log/2/curl1267.out --include --trace-ascii log/2/trace1267 --trace-time http://127.0.0.1:43789/1267 --http0.9 > log/2/stdout1267 2> log/2/stderr1267 stdin) 10:33:26.431923 > 33 bytes data, server => client 10:33:26.432058 '331 We are happy you popped in!\r\n' 10:33:26.432789 < 22 bytes data, client => server 10:33:26.432988 'PASS ftp@example.com\r\n' 10:33:26.435134 Received DATA (on stdin) 10:33:26.435367 > 30 bytes data, server => client 10:33:26.435476 '230 Welcome you silly person\r\n' 10:33:26.438197 < 5 bytes data, client => server 10:33:26.438414 'PWD\r\n' 10:33:26.440368 Received DATA (on stdin) 10:33:26.440609 > 30 bytes data, server => client 10:33:26.440743 '257 "/" is current directory\r\n' 10:33:26.443613 < 6 bytes data, client => server 10:33:26.443856 'EPSV\r\n' 10:33:26.464587 Received DATA (on stdin) 10:33:26.464811 > 38 bytes data, server => client 10:33:26.464903 '229 Entering Passive Mode (|||38629|)\n' 10:33:26.466342 < 8 bytes data, client => server 10:33:26.466480 'TYPE I\r\n' 10:33:26.468819 Received DATA (on stdin) 10:33:26.469061 > 33 bytes data, server => client 10:33:26.469265 '200 I modify TYPE as you wanted\r\n' 10:33:26.470963 < 21 bytes data, client => server 10:33:26.471176 'SIZE verifiedserver\r\n' 10:33:26.473125 Received DATA (on stdin) 10:33:26.473309 > 8 bytes data, server => client 10:33:26.473393 '213 17\r\n' 10:33:26.474254 < 21 bytes data, client => server 10:33:26.474511 'RETR verifiedserver\r\n' 10:33:26.476115 Received DATA (on stdin) 10:33:26.476342 > 29 bytes data, server => client 10:33:26.476567 '150 Binary junk (17 bytes).\r\n' 10:33:26.487061 Received DATA (on stdin) 10:33:26.487259 > 28 bytes data, server => client 10:33:26.487359 '226 File transfer complete\r\n' 10:33:26.520059 < 6 bytes data, client => server 10:33:26.520316 'QUIT\r\n' 10:33:26.523759 Received DATA (on stdin) 10:33:26.523937 > 18 bytes data, server => client 10:33:26.524037 '221 bye bye baby\r\n' 10:33:26.524649 ====> Client disconnect 10:33:26.530852 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:26.455381 Running IPv4 version 10:33:26.456034 Listening on port 38629 10:33:26.456569 Wrote pid 140698 to log/8/server/ftp_sockdata.pid 10:33:26.456815 Received PING (on stdin) 10:33:26.458388 Received PORT (on stdin) 10:33:26.466076 ====> Client connect 10:33:26.480952 Received DATA (on stdin) 10:33:26.481214 > 17 bytes data, server => client 10:33:26.481331 'WE ROOLZ: 86552\r\n' 10:33:26.481720 Received DISC (on stdin) 10:33:26.481923 ====> Client forcibly disconnected 10:33:26.484646 Received QUIT (on stdin) 10:33:26.484804 quits 10:33:26.485215 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1262 === End of file server.cmd === Start of file valgrind1262 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1262 test 1266...[HTTP GET with a single-byte HTTP/0.9 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1266 ../src/curl -q --output log/1/curl1266.out --include --trace-ascii log/1/trace1266 --trace-time http://127.0.0.1:36129/1266 --http0.9 > log/1/stdout1266 2> log/1/stderr1266 1266: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1266 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1266 ../src/curl -q --output log/1/curl1266.out --include --trace-ascii log/1/trace1266 --trace-time http://127.0.0.1:36129/1266 --http0.9 > log/1/stdout1266 2> log/1/stderr1266 === End of file commands.log === Start of file http_server.log 10:33:26.804958 ====> Client connect 10:33:26.805358 accept_connection 3 returned 4 10:33:26.805571 accept_connection 3 returned 0 10:33:26.805830 Read 93 bytes 10:33:26.805948 Process 93 bytes request 10:33:26.806061 Got request: GET /verifiedserver HTTP/1.1 10:33:26.806154 Are-we-friendly question received 10:33:26.806421 Wrote request (93 bytes) input to log/1/server.input 10:33:26.806632 Identifying ourselves as friends 10:33:26.807422 Response sent (56 bytes) and written to log/1/server.response 10:33:26.807598 special request received, no persistency 10:33:26.807680 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46800 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd swsclose Testnum 1266 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1266 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1266 test 1267...[HTTP GET with an invalid HTTP/1 response line start] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-checkCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1269 ../src/curl -q --output log/6/curl1269.out --include --trace-ascii log/6/trace1269 --trace-time --retry 3 --retry-delay 9223372036854776 http://127.0.0.1:47/1269 > log/6/stdout1269 2> log/6/stderr1269 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1268 ../src/curl -q --output log/4/curl1268.out --include --trace-ascii log/4/trace1268 --trace-time --stderr log/4/moo1268 --unix-socket -q hej://moo > log/4/stdout1268 2> log/4/stderr1268 =yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1267 ../src/curl -q --output log/2/curl1267.out --include --trace-ascii log/2/trace1267 --trace-time http://127.0.0.1:43789/1267 --http0.9 > log/2/stdout1267 2> log/2/stderr1267 1267: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1267 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1267 ../src/curl -q --output log/2/curl1267.out --include --trace-ascii log/2/trace1267 --trace-time http://127.0.0.1:43789/1267 --http0.9 > log/2/stdout1267 2> log/2/stderr1267 === End of file commands.log === Start of file http_server.log 10:33:26.932251 ====> Client connect 10:33:26.932717 accept_connection 3 returned 4 10:33:26.932993 accept_connection 3 returned 0 10:33:26.933172 Read 93 bytes 10:33:26.933318 Process 93 bytes request 10:33:26.933448 Got request: GET /verifiedserver HTTP/1.1 10:33:26.933565 Are-we-friendly question received 10:33:26.934065 Wrote request (93 bytes) input to log/2/server.input 10:33:26.934333 Identifying ourselves as friends 10:33:26.935345 Response sent (56 bytes) and written to log/2/server.response 10:33:26.935567 special request received, no persistency 10:33:26.935682 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 43856 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd swsclose Testnum 1267 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1267 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1267 test 1269...[too large --retry-delay value] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1269 ../src/curl -q --output log/6/curl1269.out --include --trace-ascii log/6/trace1269 --trace-time --retry 3 --retry-delay 9223372036854776 http://127.0.0.1:47/1269 > log/6/stdout1269 2> log/6/stderr1269 curl returned 1, when expecting 2 1269: exit FAILED == Contents of files in the log/6/ dir after test 1269 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1269 ../src/curl -q --output log/6/curl1269.out --include --trace-ascii log/6/trace1269 --trace-time --retry 3 --retry-delay 9223372036854776 http://127.0.0.1:47/1269 > log/6/stdout1269 2> log/6/stderr1269 === End of file commands.log === Start of file server.cmd Testnum 1269 === End of file server.cmd === Start of file valgrind1269 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1269 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1275.pl /build/curl/src/curl/tests/.. > log/6/stdout1275 2> log/6/stderr1275 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1270 ../src/curl -q --include --trace-ascii log/7/trace1270 --trace-time http://127.0.0.1:40129/we/want/our/1270 -w '%{redirect_url}\n' -s > log/7/stdout1270 2> log/7/stderr1270 test 1268...[filename argument looks like a flag] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1268 ../src/curl -q --output log/4/curl1268.out --include --trace-ascii log/4/trace1268 --trace-time --stderr log/4/moo1268 --unix-socket -q hej://moo > log/4/stdout1268 2> log/4/stderr1268 1268: output (log/4/moo1268) FAILED: --- log/4/check-expected 2025-09-11 10:33:28.082205963 +0000 +++ log/4/check-generated 2025-09-11 10:33:28.078205883 +0000 @@ -1,2 +0,0 @@ -Warning: The filename argument '-q' looks like a flag.[CR][LF] -curl: (1) Protocol "hej" not supported[CR][LF] == Contents of files in the log/4/ dir after test 1268 === Start of file check-expected Warning: The filename argument '-q' looks like a flag.[CR][LF] curl: (1) Protocol "hej" not supported[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1268 ../src/curl -q --output log/4/curl1268.out --include --trace-ascii log/4/trace1268 --trace-time --stderr log/4/moo1268 --unix-socket -q hej://moo > log/4/stdout1268 2> log/4/stderr1268 === End of file commands.log === Start of file server.cmd Testnum 1268 === End of file server.cmd === Start of file valgrind1268 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1268 test 1275...[Verify capital letters after period in markdown files] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1275.pl /build/curl/src/curl/tests/.. > log/6/stdout1275 2> log/6/stderr1275 valgrind SKIPPED -------e--- OK (1198 out of 1725, remaining: 01:15, took 0.144s, duration: 02:51) CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1276.pl /build/curl/src/curl/tests/.. > log/4/stdout1276 2> log/4/stderr1276 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1271 ../src/curl -q --output log/8/curl1271.out --include --trace-ascii log/8/trace1271 --trace-time http://127.0.0.1:36007/we/want/our/1271 -w @log/8/blank1271 > log/8/stdout1271 2> log/8/stderr1271 test 1270...[Basic 'redirect_url'] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1270 ../src/curl -q --include --trace-ascii log/7/trace1270 --trace-time http://127.0.0.1:40129/we/want/our/1270 -w '%{redirect_url}\n' -s > log/7/stdout1270 2> log/7/stderr1270 1270: stdout FAILED: --- log/7/check-expected 2025-09-11 10:33:28.342211138 +0000 +++ log/7/check-generated 2025-09-11 10:33:28.342211138 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 302 Captive Portal[CR][LF] -Server: ohlala/2000[CR][LF] -Date: Tue, 17 Dec 2019 13:08:30 GMT[CR][LF] -Cache-Control: no-cache,no-store,must-revalidate,post-check=0,pre-check=0[CR][LF] -Location: https://moo.moo.moo[CR][LF] -Content-Type: text/html; charset=utf-8[CR][LF] -X-Frame-Options: SAMEORIGIN[CR][LF] -Strict-Transport-Security: max-age=604800[CR][LF] -Content-Length: 0[CR][LF] -Connection: close[CR][LF] -[CR][LF] -https://moo.moo.moo/[LF] == Contents of files in the log/7/ dir after test 1270 === Start of file check-expected HTTP/1.1 302 Captive Portal[CR][LF] Server: ohlala/2000[CR][LF] Date: Tue, 17 Dec 2019 13:08:30 GMT[CR][LF] Cache-Control: no-cache,no-store,must-revalidate,post-check=0,pre-check=0[CR][LF] Location: https://moo.moo.moo[CR][LF] Content-Type: text/html; charset=utf-8[CR][LF] X-Frame-Options: SAMEORIGIN[CR][LF] Strict-Transport-Security: max-age=604800[CR][LF] Content-Length: 0[CR][LF] Connection: close[CR][LF] [CR][LF] https://moo.moo.moo/[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1270 ../src/curl -q --include --trace-ascii log/7/trace1270 --trace-time http://127.0.0.1:40129/we/want/our/1270 -w '%{redirect_url}\n' -s > log/7/stdout1270 2> log/7/stderr1270 === End of file commands.log === Start of file http_server.log 10:33:27.266072 ====> Client connect 10:33:27.266415 accept_connection 3 returned 4 10:33:27.266621 accept_connection 3 returned 0 10:33:27.266735 Read 93 bytes 10:33:27.266803 Process 93 bytes request 10:33:27.266913 Got request: GET /verifiedserver HTTP/1.1 10:33:27.267021 Are-we-friendly question received 10:33:27.267281 Wrote request (93 bytes) input to log/7/server.input 10:33:27.267456 Identifying ourselves as friends 10:33:27.268173 Response sent (56 bytes) and written to log/7/server.response 10:33:27.268319 special request received, no persistency 10:33:27.268386 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37492 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1270 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1270 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1270 test 1276...[Verify lib/optiontable.pl] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1276.pl /build/curl/src/curl/tests/.. > log/4/stdout1276 2> log/4/stderr1276 valgrind SKIPPED -------e--- OK (1199 out of 1725, remaining: 01:15, took 0.273s, duration: 02:52) test 1271...[--write-out from file with empty file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1271 ../src/curl -q --output log/8/curl1271.out --include --trace-ascii log/8/trace1271 --trace-time http://127.0.0.1:36007/we/want/our/1271 -w @log/8/blank1271 > log/8/stdout1271 2> log/8/stderr1271 1271: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1271 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1271 ../src/curl -q --output log/8/curl1271.out --include --trace-ascii log/8/trace1271 --trace-time http://127.0.0.1:36007/we/want/our/1271 -w @log/8/blank1271 > log/8/stdout1271 2> log/8/stderr1271 === End of file commands.log === Start of file http_server.log 10:33:27.361221 ====> Client connect 10:33:27.361513 accept_connection 3 returned 4 10:33:27.361804 accept_connection 3 returned 0 10:33:27.361962 Read 93 bytes 10:33:27.362058 Process 93 bytes request 10:33:27.362199 Got request: GET /verifiedserver HTTP/1.1 10:33:27.362295 Are-we-friendly question received 10:33:27.362543 Wrote request (93 bytes) input to log/8/server.input 10:33:27.362725 Identifying ourselves as friends 10:33:27.363392 Response sent (56 bytes) and written to log/8/server.response 10:33:27.363522 special request received, no persistency 10:33:27.363595 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58246 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1271 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1271 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: vCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1265 ../src/curl -q --output log/5/curl1265.out --include --trace-ascii log/5/trace1265 --trace-time http://[::1]:36387/1265 > log/5/stdout1265 2> log/5/stderr1265 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1135.pl --heading=EXPORTS --sort /build/curl/src/curl/tests/.. > log/4/stdout1279 2> log/4/stderr1279 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1273 ../src/curl -q --output log/1/curl1273.out --include --trace-ascii log/1/trace1273 --trace-time http://127.0.0.1:36129/1273 -C - -f > log/1/stdout1273 2> log/1/stderr1273 RUN: Process with pid 73523 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1274 ../src/curl -q --output log/2/curl1274.out --include --trace-ascii log/2/trace1274 --trace-time http://127.0.0.1:43789/1274 -D log/2/out1274 > log/2/stdout1274 2> log/2/stderr1274 algrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1271 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/5/server/http_ipv6_server.pid" --logfile "log/5/http_ipv6_server.log" --logdir "log/5" --portfile log/5/server/http_ipv6_server.port --config log/5/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 140697 port 36387 * pid http-ipv6 => 140697 140697 setenv http_proxy = http://127.0.0.1:41733 setenv NO_PROXY = ::1 test 1265...[NO_PROXY with IPv6 numerical address] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1265 ../src/curl -q --output log/5/curl1265.out --include --trace-ascii log/5/trace1265 --trace-time http://[::1]:36387/1265 > log/5/stdout1265 2> log/5/stderr1265 1265: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1265 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1265 ../src/curl -q --output log/5/curl1265.out --include --trace-ascii log/5/trace1265 --trace-time http://[::1]:36387/1265 > log/5/stdout1265 2> log/5/stderr1265 === End of file commands.log === Start of file http_ipv6_server.log 10:33:27.709966 Running HTTP IPv6 version on port 36387 10:33:27.710842 Wrote pid 140697 to log/5/server/http_ipv6_server.pid 10:33:27.711264 Wrote port 36387 to log/5/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 1265 === End of file server.cmd === Start of file valgrind1265 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1265 test 1279...[Verify libcurl.def against CURL_EXTERN declarations] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1135.pl --heading=EXPORTS --sort /build/curl/src/curl/tests/.. > log/4/stdout1279 2> log/4/stderr1279 valgrind SKIPPED s------e--- OK (1202 out of 1725, remaining: 01:15, took 0.245s, duration: 02:52) test 1274...[HTTP header line folding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1274 ../src/curl -q --output log/2/curl1274.out --include --trace-ascii log/2/trace1274 --trace-time http://127.0.0.1:43789/1274 -D log/2/out1274 > log/2/stdout1274 2> log/2/stderr1274 1274: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1274 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1274 ../src/curl -q --output log/2/curl1274.out --include --trace-ascii log/2/trace1274 --trace-time http://127.0.0.1:43789/1274 -D log/2/out1274 > log/2/stdout1274 2> log/2/stderr1274 === End of file commands.log === Start of file http_server.log 10:33:27.781272 ====> Client connect 10:33:27.781867 accept_connection 3 returned 4 10:33:27.782136 accept_connection 3 returned 0 10:33:27.782284 Read 93 bytes 10:33:27.782361 Process 93 bytes request 10:33:27.782448 Got request: GET /verifiedserver HTTP/1.1 10:33:27.782517 Are-we-friendly question received 10:33:27.782764 Wrote request (93 bytes) input to log/2/server.input 10:33:27.782955 Identifying ourselves as friends 10:33:27.783712 Response sent (56 bytes) and written to log/2/server.response 10:33:27.783830 special request received, no persistency 10:33:27.783901 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 43862 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1274 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1274 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit processRUN: Process with pid 73523 gracefully died CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1281 ../src/curl -q --output log/5/curl1281.out --include --trace-ascii log/5/trace1281 --trace-time http://127.0.0.1:alpha/beta/1281 > log/5/stdout1281 2> log/5/stderr1281 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1280 ../src/curl -q --output log/8/curl1280.out --include --trace-ascii log/8/trace1280 --trace-time http://127.0.0.1:36007/[a-d]/1280 > log/8/stdout1280 2> log/8/stderr1280 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1278 ../src/curl -q --include --trace-ascii log/7/trace1278 --trace-time http://127.0.0.1:40129/1278 --no-progress-meter -o log/7/out1278 --no-remote-name -w '%{stderr}yes\n' > log/7/stdout1278 2> log/7/stderr1278 on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1274 test 1273...[-f and resume transfer of an entirely-downloaded file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1273 ../src/curl -q --output log/1/curl1273.out --include --trace-ascii log/1/trace1273 --trace-time http://127.0.0.1:36129/1273 -C - -f > log/1/stdout1273 2> log/1/stderr1273 1273: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1273 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1273 ../src/curl -q --output log/1/curl1273.out --include --trace-ascii log/1/trace1273 --trace-time http://127.0.0.1:36129/1273 -C - -f > log/1/stdout1273 2> log/1/stderr1273 === End of file commands.log === Start of file curl1273.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1273.out === Start of file http_server.log 10:33:27.658133 ====> Client connect 10:33:27.658515 accept_connection 3 returned 4 10:33:27.658727 accept_connection 3 returned 0 10:33:27.658892 Read 93 bytes 10:33:27.659030 Process 93 bytes request 10:33:27.659153 Got request: GET /verifiedserver HTTP/1.1 10:33:27.659303 Are-we-friendly question received 10:33:27.659621 Wrote request (93 bytes) input to log/1/server.input 10:33:27.659872 Identifying ourselves as friends 10:33:27.660796 Response sent (56 bytes) and written to log/1/server.response 10:33:27.660949 special request received, no persistency 10:33:27.661021 ====> Client disconnect 0 exit_signal_handler: called 10:33:28.460411 signalled to die 10:33:28.461170 ========> IPv4 sws (port 36129 pid: 73523) exits with signal (15) 10:33:28.461401 ========> sws quits === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36129... * Established connection to 127.0.0.1 (127.0.0.1 port 36129) from 127.0.0.1 port 46810 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73523 === End of file http_verify.out === Start of file server.cmd Testnum 1273 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73523 === End of file server.response === Start of file valgrind1273 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1273 test 1281...[reject non-numerical port number in URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1281 ../src/curl -q --output log/5/curl1281.out --include --trace-ascii log/5/trace1281 --trace-time http://127.0.0.1:alpha/beta/1281 > log/5/stdout1281 2> log/5/stderr1281 curl returned 1, when expecting 3 1281: exit FAILED == Contents of files in the log/5/ dir after test 1281 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1281 ../src/curl -q --output log/5/curl1281.out --include --trace-ascii log/5/trace1281 --trace-time http://127.0.0.1:alpha/beta/1281 > log/5/stdout1281 2> log/5/stderr1281 === End of file commands.log === Start of file server.cmd Testnum 1281 === End of file server.cmd === Start of file valgrind1281 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1281 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1277 ../src/curl -q --output log/6/curl1277.out --include --trace-ascii log/6/trace1277 --trace-time http://127.0.0.1:33363/1277 --tr-encoding --compressed > log/6/stdout1277 2> log/6/stderr1277 test 1278...[verify extra --no-remote-name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1278 ../src/curl -q --include --trace-ascii log/7/trace1278 --trace-time http://127.0.0.1:40129/1278 --no-progress-meter -o log/7/out1278 --no-remote-name -w '%{stderr}yes\n' > log/7/stdout1278 2> log/7/stderr1278 1278: stderr FAILED: --- log/7/check-expected 2025-09-11 10:33:29.278229770 +0000 +++ log/7/check-generated 2025-09-11 10:33:29.278229770 +0000 @@ -1 +0,0 @@ -yes[CR][LF] == Contents of files in the log/7/ dir after test 1278 === Start of file check-expected yes[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1278 ../src/curl -q --include --trace-ascii log/7/trace1278 --trace-time http://127.0.0.1:40129/1278 --no-progress-meter -o log/7/out1278 --no-remote-name -w '%{stderr}yes\n' > log/7/stdout1278 2> log/7/stderr1278 === End of file commands.log === Start of file http_server.log 10:33:28.222859 ====> Client connect 10:33:28.223214 accept_connection 3 returned 4 10:33:28.223440 accept_connection 3 returned 0 10:33:28.223598 Read 93 bytes 10:33:28.223700 Process 93 bytes request 10:33:28.223820 Got request: GET /verifiedserver HTTP/1.1 10:33:28.223916 Are-we-friendly question received 10:33:28.224185 Wrote request (93 bytes) input to log/7/server.input 10:33:28.224414 Identifying ourselves as friends 10:33:28.225371 Response sent (56 bytes) and written to log/7/server.response 10:33:28.225529 special request received, no persistency 10:33:28.229951 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37500 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1278 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1278 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1278 test 1277...[HTTP GET with both content and transfer encoding] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1277 ../src/curl -q --output log/6/curl1277.out --include --trace-ascii log/6/trace1277 --trace-time http://127.0.0.1:33363/1277 --tr-encoding --compressed > log/6/stdout1277 2> log/6/stderr1277 1277: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1277 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1277 ../src/curl -q --output log/6/curl1277.out --include --trace-ascii log/6/trace1277 --trace-time http://127.0.0.1:33363/1277 --tr-encoding --compressed > log/6/stdout1277 2> log/6/stderr1277 === End of file commands.log === Start of file http_server.log 10:33:28.032040 ====> Client connect 10:33:28.032458 accept_connection 3 returned 4 10:33:28.032668 accept_connection 3 returned 0 10:33:28.032847 Read 93 bytes 10:33:28.032959 Process 93 bytes request 10:33:28.033055 Got request: GET /verifiedserver HTTP/1.1 10:33:28.033140 Are-we-friendly question received 10:33:28.033377 Wrote request (93 bytes) input to log/6/server.input 10:33:28.033669 Identifying ourselves as friends 10:33:28.034340 Response sent (56 bytes) and written to log/6/server.response 10:33:28.034508 special request received, no persistency 10:33:28.034621 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 42482 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1277 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1277 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1277 test 1280...[simple [a-d] globbing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1280 ../src/curl CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1282 ../src/curl -q --output log/4/curl1282.out --include --trace-ascii log/4/trace1282 --trace-time ftp://127.0.0.1:42635/1282 > log/4/stdout1282 2> log/4/stderr1282 -q --output log/8/curl1280.out --include --trace-ascii log/8/trace1280 --trace-time http://127.0.0.1:36007/[a-d]/1280 > log/8/stdout1280 2> log/8/stderr1280 1280: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1280 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1280 ../src/curl -q --output log/8/curl1280.out --include --trace-ascii log/8/trace1280 --trace-time http://127.0.0.1:36007/[a-d]/1280 > log/8/stdout1280 2> log/8/stderr1280 === End of file commands.log === Start of file http_server.log 10:33:28.250107 ====> Client connect 10:33:28.250399 accept_connection 3 returned 4 10:33:28.250563 accept_connection 3 returned 0 10:33:28.250681 Read 93 bytes 10:33:28.250757 Process 93 bytes request 10:33:28.250839 Got request: GET /verifiedserver HTTP/1.1 10:33:28.250914 Are-we-friendly question received 10:33:28.251142 Wrote request (93 bytes) input to log/8/server.input 10:33:28.251352 Identifying ourselves as friends 10:33:28.252113 Response sent (56 bytes) and written to log/8/server.response 10:33:28.252272 special request received, no persistency 10:33:28.252341 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58258 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1280 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1280 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1280 test 1282...[FTP with 633 response before gss initialized] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1282 ../src/curl -q --output log/4/curl1282.out --include --trace-ascii log/4/trace1282 --trace-time ftp://127.0.0.1:42635/1282 > log/4/stdout1282 2> log/4/stderr1282 1282: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1282 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1282 ../src/curl -q --output log/4/curl1282.out --include --trace-ascii log/4/trace1282 --trace-time ftp://127.0.0.1:42635/1282 > log/4/stdout1282 2> log/4/stderr1282 === End of file commands.log === Start of file ftp_server.log 10:33:28.809142 ====> Client connect 10:33:28.810653 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:28.812876 < "USER anonymous" 10:33:28.813444 > "331 We are happy you popped in![CR][LF]" 10:33:28.818959 < "PASS ftp@example.com" 10:33:28.819544 > "230 Welcome you silly person[CR][LF]" 10:33:28.821442 < "PWD" 10:33:28.822101 > "257 "/" is current directory[CR][LF]" 10:33:28.823967 < "EPSV" 10:33:28.824310 ====> Passive DATA channel requested by client 10:33:28.824520 DATA sockfilt for passive data channel starting... 10:33:28.835980 DATA sockfilt for passive data channel started (pid 141568) 10:33:28.839519 DATA sockfilt for passive data channel listens on port 37661 10:33:28.840174 > "229 Entering Passive Mode (|||37661|)[LF]" 10:33:28.840466 Client has been notified that DATA conn will be accepted on port 37661 10:33:28.843818 Client connects to port 37661 10:33:28.844313 ====> Client established passive DATA connection on port 37661 10:33:28.845390 < "TYPE I" 10:33:28.846127 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:28.850917 < "SIZE verifiedserver" 10:33:28.851564 > "213 17[CR][LF]" 10:33:28.853309 < "RETR verifiedserver" 10:33:28.853989 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:28.854841 =====> Closing passive DATA connection... 10:33:28.855170 Server disconnects passive DATA connection 10:33:28.856609 Server disconnected passive DATA connection 10:33:28.857098 DATA sockfilt for passive data channel quits (pid 141568) 10:33:28.863914 DATA sockfilt for passive data channel quit (pid 141568) 10:33:28.864325 =====> Closed passive DATA connection 10:33:28.864716 > "226 File transfer complete[CR][LF]" 10:33:28.901917 < "QUIT" 10:33:28.902455 > "221 bye bye baby[CR][LF]" 10:33:28.904922 MAIN sockfilt said DISC 10:33:28.905449 ====> Client disconnected 10:33:28.906226 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:29.476636 ====> Client connect 10:33:29.478734 Received DATA (on stdin) 10:33:29.479036 > 160 bytes data, server => client 10:33:29.479161 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:29.479247 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:29.479319 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:29.480040 < 16 bytes data, client => server 10:33:29.480277 'USER anonymous\r\n' 10:33:29.483890 Received DATA (on stdin) 10:33:29.484212 > 33 bytes data, server => client 10:33:29.484341 '331 We are happy you popped in!\r\n' 10:33:29.485383 < 22 bytes data, client => server 10:33:29.485767 'PASS ftp@example.com\r\n' 10:33:29.487744 Received DATA (on stdin) 10:33:29.487927 > 30 bytes data, server => client 10:33:29.488030 '230 Welcome you silly person\r\n' 10:33:29.488820 < 5 bytes data, client => server 10:33:29.489070 'PWD\r\n' 10:33:29.490197 Received DATA (on stdin) 10:33:29.490420 > 30 bytes data, server => client 10:33:29.490545 '257 "/" is current directory\r\n' 10:33:29.491400 < 6 bytes data, client => server 10:33:29.491641 'EPSV\r\n' 10:33:29.508283 Received DATA (on stdin) 10:33:29.508491 > 38 bytes data, server => client 10:33:29.508583 '229 Entering Passive Mode (|||37661|)\n' 10:33:29.510771 < 8 bytes data, client => server 10:33:29.510970 'TYPE I\r\n' 10:33:29.514861 Received DATA (on stdin) 10:33:29.515104 > 33 bytes data, RUN: Process with pid 128618 forced to die with SIGKILL CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1283 ../src/curl -q --include --trace-ascii log/2/trace1283 --trace-time http://127.0.0.1:43789/[a-a][1-1][b-b:1][2-2:1]/1283 -o "log/2/outfile1283_#1#2#3#4.dump" > log/2/stdout1283 2> log/2/stderr1283 server => client 10:33:29.515205 '200 I modify TYPE as you wanted\r\n' 10:33:29.516006 < 21 bytes data, client => server 10:33:29.516237 'SIZE verifiedserver\r\n' 10:33:29.519717 Received DATA (on stdin) 10:33:29.519939 > 8 bytes data, server => client 10:33:29.520064 '213 17\r\n' 10:33:29.520755 < 21 bytes data, client => server 10:33:29.520969 'RETR verifiedserver\r\n' 10:33:29.522092 Received DATA (on stdin) 10:33:29.522313 > 29 bytes data, server => client 10:33:29.522448 '150 Binary junk (17 bytes).\r\n' 10:33:29.532876 Received DATA (on stdin) 10:33:29.533081 > 28 bytes data, server => client 10:33:29.533208 '226 File transfer complete\r\n' 10:33:29.568841 < 6 bytes data, client => server 10:33:29.569078 'QUIT\r\n' 10:33:29.571079 Received DATA (on stdin) 10:33:29.571317 > 18 bytes data, server => client 10:33:29.571422 '221 bye bye baby\r\n' 10:33:29.572547 ====> Client disconnect 10:33:29.573978 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:28.502358 Running IPv4 version 10:33:28.502961 Listening on port 37661 10:33:28.503515 Wrote pid 141568 to log/4/server/ftp_sockdata.pid 10:33:28.503729 Received PING (on stdin) 10:33:28.504737 Received PORT (on stdin) 10:33:28.510382 ====> Client connect 10:33:28.522851 Received DATA (on stdin) 10:33:28.523116 > 17 bytes data, server => client 10:33:28.523223 'WE ROOLZ: 79516\r\n' 10:33:28.523589 Received DISC (on stdin) 10:33:28.523749 ====> Client forcibly disconnected 10:33:28.529015 Received QUIT (on stdin) 10:33:28.529289 quits 10:33:28.529858 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY PASS 633 XXXXXXXX\x00\x00XXXXXXXX Testnum 1282 === End of file server.cmd === Start of file valgrind1282 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1282 test 1238...[slow TFTP retrieve cancel due to -Y and -y] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1238 ../src/curl -q --output log/3/curl1238.out --include --trace-ascii log/3/trace1238 --trace-time tftp://127.0.0.1:51485//1238 -Y1000 -y2 > log/3/stdout1238 2> log/3/stderr1238 1238: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1238 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1238 ../src/curl -q --output log/3/curl1238.out --include --trace-ascii log/3/trace1238 --trace-time tftp://127.0.0.1:51485//1238 -Y1000 -y2 > log/3/stdout1238 2> log/3/stderr1238 === End of file commands.log === Start of file server.cmd writedelay: 2000 Testnum 1238 === End of file server.cmd === Start of file tftp_server.log 10:33:24.463669 trying to get file: verifiedserver mode 1 10:33:24.463979 Are-we-friendly question received 10:33:24.464102 write 10:33:24.464343 read 10:33:24.469766 read: 4 10:33:24.470285 end of one transfer exit_signal_handler: called === End of file tftp_server.log === Start of file valgrind1238 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1238 test 1283...[globbing range with same start and stop] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1283 ../src/curl -q --include --trace-ascii log/2/trace1283 --trace-time http://127.0.0.1:43789/[a-a][1-1][b-b:1][2-2:1]/1283 -o "log/2/outfile1283_#1#2#3#4.dump" > log/2/stdout1283 2> log/2/stderr1283 1283: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1283 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1283 ../src/curl -q --include --trace-ascii log/2/trace1283 --trace-time http://127.0.0.1:43789/[a-a][1-1][b-b:1][2-2:1]/1283 -o "log/2/outfile1283_#1#2#3#4.dump" > log/2/stdout1283 2> log/2/stderr1283 === End of file commands.log === Start of file http_server.log 10:33:28.677489 ====> Client connect 10:33:28.678443 accept_connection 3 returned 4 10:33:28.678702 accept_connection 3 returned 0 10:33:28.678882 Read 93 bytes 10:33:28.678988 Process 93 bytes request 10:33:28.679088 Got request: GET /verifiedserver HTTP/1.1 10:33:28.679163 Are-we-friendly question received 10:33:28.679430 Wrote request (93 bytes) input to log/2/server.input 10:33:28.679755 Identifying ourselves as friends 10:33:28.680531 Response sent (56 bytes) and written to log/2/server.response 10:33:28.680684 special request received, no persistency 10:33:28.680762 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 43878 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < CoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1285 ../src/curl -q --output log/5/curl1285.out --include --trace-ascii log/5/trace1285 --trace-time -H "Content-Length: 85" -u auser:apasswd --digest -T log/5/put1285 http://127.0.0.1:41733/1285 > log/5/stdout1285 2> log/5/stderr1285 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1286 ../src/curl -q --output log/7/curl1286.out --include --trace-ascii log/7/trace1286 --trace-time -u auser:apasswd --location --digest http://127.0.0.1:40129/1286 > log/7/stdout1286 2> log/7/stderr1286 ntent-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1283 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1283 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1283 test 1285...[HTTP PUT --digest with user-specified Content-Length header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1285 ../src/curl -q --output log/5/curl1285.out --include --trace-ascii log/5/trace1285 --trace-time -H "Content-Length: 85" -u auser:apasswd --digest -T log/5/put1285 http://127.0.0.1:41733/1285 > log/5/stdout1285 2> log/5/stderr1285 1285: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1285 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1285 ../src/curl -q --output log/5/curl1285.out --include --trace-ascii log/5/trace1285 --trace-time -H "Content-Length: 85" -u auser:apasswd --digest -T log/5/put1285 http://127.0.0.1:41733/1285 > log/5/stdout1285 2> log/5/stderr1285 === End of file commands.log === Start of file http_server.log 10:33:30.038496 ====> Client connect 10:33:30.038802 accept_connection 3 returned 4 10:33:30.038963 accept_connection 3 returned 0 10:33:30.039077 Read 93 bytes 10:33:30.039147 Process 93 bytes request 10:33:30.039231 Got request: GET /verifiedserver HTTP/1.1 10:33:30.039308 Are-we-friendly question received 10:33:30.039502 Wrote request (93 bytes) input to log/5/server.input 10:33:30.039646 Identifying ourselves as friends 10:33:30.040218 Response sent (56 bytes) and written to log/5/server.response 10:33:30.040335 special request received, no persistency 10:33:30.040399 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 55374 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file put1285 This is data we upload with PUT a second line line three four is the number of lines === End of file put1285 === Start of file server.cmd Testnum 1285 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1285 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1285 test 1286...[HTTP GET --digest increasing nonce-count] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1286 ../src/curl -q --output log/7/curl1286.out --include --trace-ascii log/7/trace1286 --trace-time -u auser:apasswd --location --digest http://127.0.0.1:40129/1286 > log/7/stdout1286 2> log/7/stderr1286 1286: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1286 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1286 ../src/curl -q --output log/7/curl1286.out --include --trace-ascii log/7/trace1286 --trace-time -u auser:apasswd --location --digest http://127.0.0.1:40129/1286 > log/7/stdout1286 2> log/7/stderr1286 === End of file commands.log === Start of file http_server.log 10:33:29.106040 ====> Client connect 10:33:29.109834 accept_connection 3 returned 4 10:33:29.110097 accept_connection 3 returned 0 10:33:29.110247 Read 93 bytes 10:33:29.110339 Process 93 bytes request 10:33:29.110429 Got request: GET /verifiedserver HTTP/1.1 10:33:29.110508 Are-we-friendly question received 10:33:29.110763 Wrote request (93 bytes) input to log/7/server.input 10:33:29.110961 Identifying ourselves as friends 10:33:29.111726 Response sent (56 bytes) and written to log/7/server.response 10:33:29.111866 special request received, no persistency 10:33:29.111934 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37512 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact ===CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1289 ../src/curl -q --output log/4/curl1289.out --include --trace-ascii log/4/trace1289 --trace-time http://ur%20[0-60000000000000000000 > log/4/stdout1289 2> log/4/stderr1289 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1291 ../src/curl -q --output log/2/curl1291.out --include --trace-ascii log/2/trace1291 --trace-time -K log/2/cmd1291 --fail-early > log/2/stdout1291 2> log/2/stderr1291 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1287 ../src/curl -q --output log/8/curl1287.out --include --trace-ascii log/8/trace1287 --trace-time -v --proxytunnel -x 127.0.0.1:33375 http://test.1287:36007/we/want/that/page/1287 > log/8/stdout1287 2> log/8/stderr1287 End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1286 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1286 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1286 test 1289...[globbing with overflow and bad syntax] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1289 ../src/curl -q --output log/4/curl1289.out --include --trace-ascii log/4/trace1289 --trace-time http://ur%20[0-60000000000000000000 > log/4/stdout1289 2> log/4/stderr1289 curl returned 1, when expecting 3 1289: exit FAILED == Contents of files in the log/4/ dir after test 1289 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1289 ../src/curl -q --output log/4/curl1289.out --include --trace-ascii log/4/trace1289 --trace-time http://ur%20[0-60000000000000000000 > log/4/stdout1289 2> log/4/stderr1289 === End of file commands.log === Start of file http_server.log 10:33:30.410027 ====> Client connect 10:33:30.410363 accept_connection 3 returned 4 10:33:30.410547 accept_connection 3 returned 0 10:33:30.410702 Read 93 bytes 10:33:30.410785 Process 93 bytes request 10:33:30.410865 Got request: GET /verifiedserver HTTP/1.1 10:33:30.410931 Are-we-friendly question received 10:33:30.411134 Wrote request (93 bytes) input to log/4/server.input 10:33:30.411293 Identifying ourselves as friends 10:33:30.412011 Response sent (56 bytes) and written to log/4/server.response 10:33:30.412164 special request received, no persistency 10:33:30.412239 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 46582 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1289 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1289 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1289 prechecked /usr/bin/perl -e 'for(1 .. 1000) { printf("upload-file=log/2/upload-this\nurl=htttttp://non-existing-host.haxx.se/upload/1291\n", $_);}' > log/2/cmd1291; test 1291...[Attempt to upload 1000 files but fail immediately] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1291 ../src/curl -q --output log/2/curl1291.out --include --trace-ascii log/2/trace1291 --trace-time -K log/2/cmd1291 --fail-early > log/2/stdout1291 2> log/2/stderr1291 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/2/ dir after test 1291 === Start of file cmd1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1290 ../src/curl -q --output log/3/curl1290.out --include --trace-ascii log/3/trace1290 --trace-time "http://127.0.0.1:36933/we/want/[]/page/1290" > log/3/stdout1290 2> log/3/stderr1290 url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this === File too long: 599 lines omitted here upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 uCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1288 ../src/curl -q --include --trace-ascii log/6/trace1288 --trace-time --proxytunnel --suppress-connect-headers --dump-header - --include --write-out "\nCONNECT CODE: %{http_connect}\nRECEIVED HEADER BYTE TOTAL: %{size_header}\n" --proxy 127.0.0.1:33453 http://127.0.0.1:33363/we/want/that/page/1288 > log/6/stdout1288 2> log/6/stderr1288 pload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 upload-file=log/2/upload-this url=htttttp://non-existing-host.haxx.se/upload/1291 === End of file cmd1291 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1291 ../src/curl -q --output log/2/curl1291.out --include --trace-ascii log/2/trace1291 --trace-time -K log/2/cmd1291 --fail-early > log/2/stdout1291 2> log/2/stderr1291 === End of file commands.log === Start of file server.cmd Testnum 1291 === End of file server.cmd === Start of file upload-this XXXXXXXx === End of file upload-this === Start of file valgrind1291 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1291 test 1290...[Verify URL globbing ignores []] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1290 ../src/curl -q --output log/3/curl1290.out --include --trace-ascii log/3/trace1290 --trace-time "http://127.0.0.1:36933/we/want/[]/page/1290" > log/3/stdout1290 2> log/3/stderr1290 1290: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1290 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1290 ../src/curl -q --output log/3/curl1290.out --include --trace-ascii log/3/trace1290 --trace-time "http://127.0.0.1:36933/we/want/[]/page/1290" > log/3/stdout1290 2> log/3/stderr1290 === End of file commands.log === Start of file http_server.log 10:33:29.485367 ====> Client connect 10:33:29.486112 accept_connection 3 returned 4 10:33:29.486362 accept_connection 3 returned 0 10:33:29.486498 Read 93 bytes 10:33:29.486580 Process 93 bytes request 10:33:29.486661 Got request: GET /verifiedserver HTTP/1.1 10:33:29.486737 Are-we-friendly question received 10:33:29.486961 Wrote request (93 bytes) input to log/3/server.input 10:33:29.487130 Identifying ourselves as friends 10:33:29.487793 Response sent (56 bytes) and written to log/3/server.response 10:33:29.487941 special request received, no persistency 10:33:29.488004 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 51378 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1290 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1290 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1290 test 1287...[HTTP over proxy-tunnel ignore TE and CL in CONNECT 2xx responses] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1287 ../src/curl -q --output log/8/curl1287.out --include --trace-ascii log/8/trace1287 --trace-time -v --proxytunnel -x 127.0.0.1:33375 http://test.1287:36007/we/want/that/page/1287 > log/8/stdout1287 2> log/8/stderr1287 1287: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1287 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1287 ../src/curl -q --output log/8/curl1287.out --include --trace-ascii log/8/trace1287 --trace-time -v --proxytunnel -x 127.0.0.1:33375 http://test.1287:36007/we/want/that/page/1287 > log/8/stdout1287 2> log/8/stderr1287 === End of file commands.log === Start of file http2_server.log 10:33:30.314420 ====> Client connect 10:33:30.314746 accept_connection 3 returned 4 10:33:30.314920 accept_connection 3 returned 0 10:33:30.315041 Read 93 bytes 10:33:30.315129 Process 93 bytes request 10:33:30.315217 Got request: GET /verifiedserver HTTP/1.1 10:33:30.315288 Are-we-friendly question received 10:33:30.315506 Wrote request (93 bytes) input to log/8/proxy.input 10:33:30.315657 Identifying ourselves as friends 10:33:30.316378 Response sent (57 bytes) and written to log/8/proxy.response 10:33:30.316516 special request received, no persistency 10:33:30.316585 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:33375... * Established connection to 127.0.0.1 (127.0.0.1 port 33375) from 127.0.0.1 port 47012 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33375 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33375 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 101334 === End of file http2_verify.out === Start of file http_server.log 10:33:29.152580 ====> Client connect 10:33:29.152954 accept_connection 3 returned 4 10:33:29.153153 accept_connection 3 returned 0 10:33:29.153327 Read 93 bytes 10:33:29.153421 Process 93 bytes request 10:33:29.153521 Got request: GET /verifiedserver HTTP/1.1 10:33:29.153802 Are-we-friendly question received 10:33:29.154144 Wrote request (93 bytes) input to log/8/server.input 10:33:29.154368 Identifying ourselves as friends 10:33:29.155257 Response sent (56 bytes) and written to log/8/server.response 10:33:29.155426 special request received, no persistency 10:33:29.155502 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 58260 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 101334 === End of file proxy.response === Start of file server.cmd Testnum 1287 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1287 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1287 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1284 ../src/curl -q --output log/1/curl1284.out --include --trace-ascii log/1/trace1284 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:33601/1284 > log/1/stdout1284 2> log/1/stderr1284 test 1288...[Suppress proxy CONNECT response headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1288 ../src/curl -q --include --trace-ascii log/6/trace1288 --trace-time --proxytunnel --suppress-connect-headers --dump-header - --include --write-out "\nCONNECT CODE: %{http_connect}\nRECEIVED HEADER BYTE TOTAL: %{size_header}\n" --proxy 127.0.0.1:33453 http://127.0.0.1:33363/we/want/that/page/1288 > log/6/stdout1288 2> log/6/stderr1288 1288: stdout FAILED: --- log/6/check-expected 2025-09-11 10:33:30.662257321 +0000 +++ log/6/check-generated 2025-09-11 10:33:30.662257321 +0000 @@ -1,20 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Server: test-server/fake[CR][LF] -Content-Type: text/html[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -Funny-head: yesyes[CR][LF] -Content-Length: 9[CR][LF] -Content-Length: 9[CR][LF] -Connection: keep-alive[CR][LF] -Connection: keep-alive[CR][LF] -[CR][LF] -[CR][LF] -contents[LF] -[LF] -CONNECT CODE: 200[LF] -RECEIVED HEADER BYTE TOTAL: 231[LF] == Contents of files in the log/6/ dir after test 1288 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Server: test-server/fake[CR][LF] Content-Type: text/html[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] Funny-head: yesyes[CR][LF] Content-Length: 9[CR][LF] Content-Length: 9[CR][LF] Connection: keep-alive[CR][LF] Connection: keep-alive[CR][LF] [CR][LF] [CR][LF] contents[LF] [LF] CONNECT CODE: 200[LF] RECEIVED HEADER BYTE TOTAL: 231[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1288 ../src/curl -q --include --trace-ascii log/6/trace1288 --trace-time --proxytunnel --suppress-connect-headers --dump-header - --include --write-out "\nCONNECT CODE: %{http_connect}\nRECEIVED HEADER BYTE TOTAL: %{size_header}\n" --proxy 127.0.0.1:33453 http://127.0.0.1:33363/we/want/that/page/1288 > log/6/stdout1288 2> log/6/stderr1288 === End of file commands.log === Start of file http2_server.log 10:33:30.419944 ====> Client connect 10:33:30.420254 accept_connection 3 returned 4 10:33:30.420414 accept_connection 3 returned 0 10:33:30.420541 Read 93 bytes 10:33:30.420618 Process 93 bytes request 10:33:30.420701 Got request: GET /verifiedserver HTTP/1.1 10:33:30.420769 Are-we-friendly question received 10:33:30.420946 Wrote request (93 bytes) input to log/6/proxy.input 10:33:30.421100 Identifying ourselves as friends 10:33:30.423266 Response sent (56 bytes) and written to log/6/proxy.response 10:33:30.423448 special request received, no persistency 10:33:30.423530 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:33453... * Established connection to 127.0.0.1 (127.0.0.1 port 33453) from 127.0.0.1 port 35060 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33453 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33453 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 90171 === End of file http2_verify.out === Start of file http_server.log 10:33:29.279779 ====> Client connect 10:33:29.280236 accept_connection 3 returned 4 10:33:29.281353 accept_connection 3 returned 0 10:33:29.281627 Read 93 bytes 10:33:29.281790 Process 93 bytes request 10:33:29.281910 Got request: GET /verifiedserver HTTP/1.1 10:33:29.282014 Are-we-friendly question received 10:33:29.282315 Wrote request (93 bytes) input to log/6/server.input 10:33:29.282788 Identifying ourselves as friends 10:33:29.283667 Response sent (56 bytes) and written to log/6/server.response 10:33:29.283811 special request received, no persistency 10:33:29.283917 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 42488 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 90171 === End of file proxy.response === Start of file server.cmd Testnum 1288 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1288 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1288 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/1/server/http_server.pid" --logfile "log/1/http_server.log" --logdir "log/1" --portfile log/1/server/http_server.port --config log/1/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 141633 port 33601 * pid http => 141633 141633 test 1284...[HTTP POST --digest with user-specified Content-Length header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1284 ../src/curl -q --output log/1/curl1284.out --include --trace-ascii log/1/trace1284 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:33601/1284 > log/1/stdout1284 2> log/1/stderr1284 1284: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1284 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1284 ../src/curl -q --output log/1/curl1284.out --include --trace-ascii log/1/trace1284 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1292 ../src/curl -q --output log/5/curl1292.out --include --trace-ascii log/5/trace1292 --trace-time -H "Host;" -H "Accept;" http://127.0.0.1:41733/1292 > log/5/stdout1292 2> log/5/stderr1292 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1293 ../src/curl -q --output log/7/curl1293.out --include --trace-ascii log/7/trace1293 --trace-time http://0 http://127.0.0.1:40129/1293 -F= > log/7/stdout1293 2> log/7/stderr1293 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1300 ./unit/units unit1300 - > log/3/stdout1300 2> log/3/stderr1300 "junkelijunk" http://127.0.0.1:33601/1284 > log/1/stdout1284 2> log/1/stderr1284 === End of file commands.log === Start of file http_server.log 10:33:29.883342 Running HTTP IPv4 version on port 33601 10:33:29.884302 Wrote pid 141633 to log/1/server/http_server.pid 10:33:29.884741 Wrote port 33601 to log/1/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 1284 === End of file server.cmd === Start of file valgrind1284 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1284 test 1292...[Replaced internal headers with a blank one] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1292 ../src/curl -q --output log/5/curl1292.out --include --trace-ascii log/5/trace1292 --trace-time -H "Host;" -H "Accept;" http://127.0.0.1:41733/1292 > log/5/stdout1292 2> log/5/stderr1292 1292: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1292 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1292 ../src/curl -q --output log/5/curl1292.out --include --trace-ascii log/5/trace1292 --trace-time -H "Host;" -H "Accept;" http://127.0.0.1:41733/1292 > log/5/stdout1292 2> log/5/stderr1292 === End of file commands.log === Start of file http_server.log 10:33:31.100296 ====> Client connect 10:33:31.100620 accept_connection 3 returned 4 10:33:31.100809 accept_connection 3 returned 0 10:33:31.100994 Read 93 bytes 10:33:31.101126 Process 93 bytes request 10:33:31.101228 Got request: GET /verifiedserver HTTP/1.1 10:33:31.101307 Are-we-friendly question received 10:33:31.101715 Wrote request (93 bytes) input to log/5/server.input 10:33:31.102045 Identifying ourselves as friends 10:33:31.103159 Response sent (56 bytes) and written to log/5/server.response 10:33:31.103328 special request received, no persistency 10:33:31.103412 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 57752 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1292 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1292 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1292 test 1293...[Multipart formpost to two URLs, the first failing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1293 ../src/curl -q --output log/7/curl1293.out --include --trace-ascii log/7/trace1293 --trace-time http://0 http://127.0.0.1:40129/1293 -F= > log/7/stdout1293 2> log/7/stderr1293 1293: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1293 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1293 ../src/curl -q --output log/7/curl1293.out --include --trace-ascii log/7/trace1293 --trace-time http://0 http://127.0.0.1:40129/1293 -F= > log/7/stdout1293 2> log/7/stderr1293 === End of file commands.log === Start of file http_server.log 10:33:30.206005 ====> Client connect 10:33:30.206383 accept_connection 3 returned 4 10:33:30.206596 accept_connection 3 returned 0 10:33:30.206756 Read 93 bytes 10:33:30.206873 Process 93 bytes request 10:33:30.206993 Got request: GET /verifiedserver HTTP/1.1 10:33:30.207093 Are-we-friendly question received 10:33:30.207366 Wrote request (93 bytes) input to log/7/server.input 10:33:30.207602 Identifying ourselves as friends 10:33:30.208504 Response sent (56 bytes) and written to log/7/server.response 10:33:30.208680 special request received, no persistency 10:33:30.208785 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 53198 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1293 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK ContentCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1296 ../src/curl -q --output log/4/curl1296.out --include --trace-ascii log/4/trace1296 --trace-time http://user%0aname:password@127.0.0.1:36757/1296 > log/4/stdout1296 2> log/4/stderr1296 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1301 ./libtest/libtests lib1301 - > log/1/stdout1301 2> log/1/stderr1301 -Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1293 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1293 test 1300...[llist unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1300 ./unit/units unit1300 - > log/3/stdout1300 2> log/3/stderr1300 units returned 1, when expecting 0 1300: exit FAILED == Contents of files in the log/3/ dir after test 1300 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1300 ./unit/units unit1300 - > log/3/stdout1300 2> log/3/stderr1300 === End of file commands.log === Start of file server.cmd Testnum 1300 === End of file server.cmd === Start of file valgrind1300 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1300 test 1296...[HTTP URL with %0a in name part] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1296 ../src/curl -q --output log/4/curl1296.out --include --trace-ascii log/4/trace1296 --trace-time http://user%0aname:password@127.0.0.1:36757/1296 > log/4/stdout1296 2> log/4/stderr1296 1296: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1296 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1296 ../src/curl -q --output log/4/curl1296.out --include --trace-ascii log/4/trace1296 --trace-time http://user%0aname:password@127.0.0.1:36757/1296 > log/4/stdout1296 2> log/4/stderr1296 === End of file commands.log === Start of file http_server.log 10:33:31.340044 ====> Client connect 10:33:31.340399 accept_connection 3 returned 4 10:33:31.340650 accept_connection 3 returned 0 10:33:31.343643 Read 93 bytes 10:33:31.343884 Process 93 bytes request 10:33:31.344002 Got request: GET /verifiedserver HTTP/1.1 10:33:31.344101 Are-we-friendly question received 10:33:31.344395 Wrote request (93 bytes) input to log/4/server.input 10:33:31.344626 Identifying ourselves as friends 10:33:31.345222 Response sent (56 bytes) and written to log/4/server.response 10:33:31.345367 special request received, no persistency 10:33:31.345438 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35338 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1296 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1296 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1296 test 1301...[curl_strequal tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1301 ./libtest/libtests lib1301 - > log/1/stdout1301 2> log/1/stderr1301 libtests returned 1, when expecting 0 1301: exit FAILED == Contents of files in the log/1/ dir after test 1301 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-fiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1299 ../src/curl -q --output log/6/curl1299.out --include --trace-ascii log/6/trace1299 --trace-time --request-target '*' -X OPTIONS http://127.0.0.1:33363/ -H "Testno: 1299" > log/6/stdout1299 2> log/6/stderr1299 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1298 ../src/curl -q --output log/8/curl1298.out --include --trace-ascii log/8/trace1298 --trace-time --request-target "XXX" "http://127.0.0.1:36007/" -H "Testno: 1298" > log/8/stdout1298 2> log/8/stderr1298 le=log/1/valgrind1301 ./libtest/libtests lib1301 - > log/1/stdout1301 2> log/1/stderr1301 === End of file commands.log === Start of file server.cmd Testnum 1301 === End of file server.cmd === Start of file valgrind1301 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1301 test 1299...[Send "OPTIONS *" with --request-target] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1299 ../src/curl -q --output log/6/curl1299.out --include --trace-ascii log/6/trace1299 --trace-time --request-target '*' -X OPTIONS http://127.0.0.1:33363/ -H "Testno: 1299" > log/6/stdout1299 2> log/6/stderr1299 1299: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1299 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1299 ../src/curl -q --output log/6/curl1299.out --include --trace-ascii log/6/trace1299 --trace-time --request-target '*' -X OPTIONS http://127.0.0.1:33363/ -H "Testno: 1299" > log/6/stdout1299 2> log/6/stderr1299 === End of file commands.log === Start of file http_server.log 10:33:30.524932 ====> Client connect 10:33:30.525347 accept_connection 3 returned 4 10:33:30.525670 accept_connection 3 returned 0 10:33:30.525919 Read 93 bytes 10:33:30.526097 Process 93 bytes request 10:33:30.526216 Got request: GET /verifiedserver HTTP/1.1 10:33:30.526339 Are-we-friendly question received 10:33:30.526693 Wrote request (93 bytes) input to log/6/server.input 10:33:30.526980 Identifying ourselves as friends 10:33:30.527925 Response sent (56 bytes) and written to log/6/server.response 10:33:30.528114 special request received, no persistency 10:33:30.528226 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 35078 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1299 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1299 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1299 test 1298...[HTTP GET special path with --request-target] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1298 ../src/curl -q --output log/8/curl1298.out --include --trace-ascii log/8/trace1298 --trace-time --request-target "XXX" "http://127.0.0.1:36007/" -H "Testno: 1298" > log/8/stdout1298 2> log/8/stderr1298 1298: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1298 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1298 ../src/curl -q --output log/8/curl1298.out --include --trace-ascii log/8/trace1298 --trace-time --request-target "XXX" "http://127.0.0.1:36007/" -H "Testno: 1298" > log/8/stdout1298 2> log/8/stderr1298 === End of file commands.log === Start of file http_server.log 10:33:30.465118 ====> Client connect 10:33:30.465454 accept_connection 3 returned 4 10:33:30.465751 accept_connection 3 returned 0 10:33:30.465905 Read 93 bytes 10:33:30.466003 Process 93 bytes request 10:33:30.466095 Got request: GET /verifiedserver HTTP/1.1 10:33:30.466167 Are-we-friendly question received 10:33:30.466416 Wrote request (93 bytes) input to log/8/server.input 10:33:30.466648 Identifying ourselves as friends 10:33:30.467561 Response sent (56 bytes) and written to log/8/server.response 10:33:30.467808 special request received, no persistency 10:33:30.467909 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 48170 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1298 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1298 valgrind: Fatal error at startup: a function redirection valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1297 ../src/curl -q --output log/2/curl1297.out --include --trace-ascii log/2/trace1297 --trace-time --proxytunnel --proxy 127.0.0.1:38053 http://127.0.0.1:43789/we/want/that/page/1297 > log/2/stdout1297 2> log/2/stderr1297 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1302 ./unit/units unit1302 - > log/5/stdout1302 2> log/5/stderr1302 which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1298 test 1297...[CONNECT to peer that returns nothing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1297 ../src/curl -q --output log/2/curl1297.out --include --trace-ascii log/2/trace1297 --trace-time --proxytunnel --proxy 127.0.0.1:38053 http://127.0.0.1:43789/we/want/that/page/1297 > log/2/stdout1297 2> log/2/stderr1297 1297: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1297 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1297 ../src/curl -q --output log/2/curl1297.out --include --trace-ascii log/2/trace1297 --trace-time --proxytunnel --proxy 127.0.0.1:38053 http://127.0.0.1:43789/we/want/that/page/1297 > log/2/stdout1297 2> log/2/stderr1297 === End of file commands.log === Start of file http2_server.log 10:33:31.573143 ====> Client connect 10:33:31.573472 accept_connection 3 returned 4 10:33:31.573806 accept_connection 3 returned 0 10:33:31.573950 Read 93 bytes 10:33:31.574025 Process 93 bytes request 10:33:31.574107 Got request: GET /verifiedserver HTTP/1.1 10:33:31.574182 Are-we-friendly question received 10:33:31.574416 Wrote request (93 bytes) input to log/2/proxy.input 10:33:31.574614 Identifying ourselves as friends 10:33:31.575358 Response sent (57 bytes) and written to log/2/proxy.response 10:33:31.575541 special request received, no persistency 10:33:31.575621 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:38053... * Established connection to 127.0.0.1 (127.0.0.1 port 38053) from 127.0.0.1 port 47696 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38053 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:38053 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 110927 === End of file http2_verify.out === Start of file http_server.log 10:33:30.408536 ====> Client connect 10:33:30.408937 accept_connection 3 returned 4 10:33:30.409163 accept_connection 3 returned 0 10:33:30.409342 Read 93 bytes 10:33:30.409453 Process 93 bytes request 10:33:30.409791 Got request: GET /verifiedserver HTTP/1.1 10:33:30.410018 Are-we-friendly question received 10:33:30.410363 Wrote request (93 bytes) input to log/2/server.input 10:33:30.410616 Identifying ourselves as friends 10:33:30.411485 Response sent (56 bytes) and written to log/2/server.response 10:33:30.411679 special request received, no persistency 10:33:30.411778 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 46082 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 110927 === End of file proxy.response === Start of file server.cmd Testnum 1297 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1297 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1297 test 1302...[base64 encode/decode unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1302 ./unit/units unit1302 - > log/5/stdout1302 2> log/5/stderr1302 units returned 1, when expecting 0 1302: exit FAILED == Contents of files in the log/5/ dir after test 1302 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1302 ./unit/units unit1302 - > log/5/stdout1302 2> log/5/stderr1302 === End of file commands.log === Start of file server.cmd Testnum 1302 === End of file server.cmd === Start of file valgrind1302 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in futCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1303 ./unit/units unit1303 - > log/7/stdout1303 2> log/7/stderr1303 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1305 ./unit/units unit1305 1305 > log/4/stdout1305 2> log/4/stderr1305 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1304 ./unit/units unit1304 log/3/netrc1304 > log/3/stdout1304 2> log/3/stderr1304 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1306 ./unit/units unit1305 - > log/1/stdout1306 2> log/1/stderr1306 ure ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1302 test 1303...[Curl_timeleft unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1303 ./unit/units unit1303 - > log/7/stdout1303 2> log/7/stderr1303 units returned 1, when expecting 0 1303: exit FAILED == Contents of files in the log/7/ dir after test 1303 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1303 ./unit/units unit1303 - > log/7/stdout1303 2> log/7/stderr1303 === End of file commands.log === Start of file server.cmd Testnum 1303 === End of file server.cmd === Start of file valgrind1303 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1303 test 1305...[internal hash create/destroy testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1305 ./unit/units unit1305 1305 > log/4/stdout1305 2> log/4/stderr1305 units returned 1, when expecting 0 1305: exit FAILED == Contents of files in the log/4/ dir after test 1305 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1305 ./unit/units unit1305 1305 > log/4/stdout1305 2> log/4/stderr1305 === End of file commands.log === Start of file server.cmd Testnum 1305 === End of file server.cmd === Start of file valgrind1305 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1305 test 1304...[netrc parsing unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1304 ./unit/units unit1304 log/3/netrc1304 > log/3/stdout1304 2> log/3/stderr1304 units returned 1, when expecting 0 1304: exit FAILED == Contents of files in the log/3/ dir after test 1304 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1304 ./unit/units unit1304 log/3/netrc1304 > log/3/stdout1304 2> log/3/stderr1304 === End of file commands.log === Start of file netrc1304 machine example.com login admin password passwd machine curl.example.com login none password none === End of file netrc1304 === Start of file server.cmd Testnum 1304 === End of file server.cmd === Start of file valgrind1304 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1304 test 1306...[internal hash create/add/destroy testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1306 ./unit/units unit1305 - > log/1/stdout1306 2> log/1/stderr1306 units returned 1, when expecting 0 1306: exit FAILED == Contents of files in the log/1/ dir after test 1306 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1308 ./libtest/libtests lib1308 log/6/test-1308 > log/6/stdout1308 2> log/6/stderr1308 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1310 ../src/curl -q --trace-ascii log/2/trace1310 --trace-time http://127.0.0.1:43789/junk -J -O --show-headers --output-dir log/2 > log/2/stdout1310 2> log/2/stderr1310 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1311 ../src/curl -q --trace-ascii log/5/trace1311 --trace-time http://127.0.0.1:41733/1311 -J -O --output-dir log/5 > log/5/stdout1311 2> log/5/stderr1311 log-file=log/1/valgrind1306 ./unit/units unit1305 - > log/1/stdout1306 2> log/1/stderr1306 === End of file commands.log === Start of file server.cmd Testnum 1306 === End of file server.cmd === Start of file valgrind1306 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1306 test 1308...[formpost tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1308 ./libtest/libtests lib1308 log/6/test-1308 > log/6/stdout1308 2> log/6/stderr1308 libtests returned 1, when expecting 0 1308: exit FAILED == Contents of files in the log/6/ dir after test 1308 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1308 ./libtest/libtests lib1308 log/6/test-1308 > log/6/stdout1308 2> log/6/stderr1308 === End of file commands.log === Start of file server.cmd Testnum 1308 === End of file server.cmd === Start of file test-1308 Piece of the file that is to uploaded as a formpost === End of file test-1308 === Start of file valgrind1308 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1308 test 1310...[HTTP GET with -J + --show-headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1310 ../src/curl -q --trace-ascii log/2/trace1310 --trace-time http://127.0.0.1:43789/junk -J -O --show-headers --output-dir log/2 > log/2/stdout1310 2> log/2/stderr1310 1310: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1310 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1310 ../src/curl -q --trace-ascii log/2/trace1310 --trace-time http://127.0.0.1:43789/junk -J -O --show-headers --output-dir log/2 > log/2/stdout1310 2> log/2/stderr1310 === End of file commands.log === Start of file http_server.log 10:33:31.588185 ====> Client connect 10:33:31.588556 accept_connection 3 returned 4 10:33:31.588817 accept_connection 3 returned 0 10:33:31.588998 Read 93 bytes 10:33:31.589138 Process 93 bytes request 10:33:31.589266 Got request: GET /verifiedserver HTTP/1.1 10:33:31.589396 Are-we-friendly question received 10:33:31.590103 Wrote request (93 bytes) input to log/2/server.input 10:33:31.590433 Identifying ourselves as friends 10:33:31.591582 Response sent (56 bytes) and written to log/2/server.response 10:33:31.591858 special request received, no persistency 10:33:31.592011 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 46092 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1310 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1310 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1310 test 1311...[HTTP GET with -J and Content-Disposition] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1311 ../src/curl -q --trace-ascii log/5/trace1311 --trace-time http://127.0.0.1:41733/1311 -J CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1312 ../src/curl -q --trace-ascii log/7/trace1312 --trace-time 127.0.0.1:40129/1312 -J -O --output-dir log/7 > log/7/stdout1312 2> log/7/stderr1312 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1313 ../src/curl -q --trace-ascii log/4/trace1313 --trace-time http://127.0.0.1:36757/1313 -J -O --output-dir log/4 > log/4/stdout1313 2> log/4/stderr1313 -O --output-dir log/5 > log/5/stdout1311 2> log/5/stderr1311 1311: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1311 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1311 ../src/curl -q --trace-ascii log/5/trace1311 --trace-time http://127.0.0.1:41733/1311 -J -O --output-dir log/5 > log/5/stdout1311 2> log/5/stderr1311 === End of file commands.log === Start of file http_server.log 10:33:32.792263 ====> Client connect 10:33:32.792578 accept_connection 3 returned 4 10:33:32.792796 accept_connection 3 returned 0 10:33:32.792933 Read 93 bytes 10:33:32.793024 Process 93 bytes request 10:33:32.793101 Got request: GET /verifiedserver HTTP/1.1 10:33:32.793159 Are-we-friendly question received 10:33:32.793368 Wrote request (93 bytes) input to log/5/server.input 10:33:32.793688 Identifying ourselves as friends 10:33:32.794480 Response sent (56 bytes) and written to log/5/server.response 10:33:32.794638 special request received, no persistency 10:33:32.794723 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 57768 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1311 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1311 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1311 test 1312...[HTTP GET with -J, Content-Disposition and ; in filename] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1312 ../src/curl -q --trace-ascii log/7/trace1312 --trace-time 127.0.0.1:40129/1312 -J -O --output-dir log/7 > log/7/stdout1312 2> log/7/stderr1312 1312: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1312 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1312 ../src/curl -q --trace-ascii log/7/trace1312 --trace-time 127.0.0.1:40129/1312 -J -O --output-dir log/7 > log/7/stdout1312 2> log/7/stderr1312 === End of file commands.log === Start of file http_server.log 10:33:31.930026 ====> Client connect 10:33:31.930415 accept_connection 3 returned 4 10:33:31.930649 accept_connection 3 returned 0 10:33:31.930773 Read 93 bytes 10:33:31.930853 Process 93 bytes request 10:33:31.930932 Got request: GET /verifiedserver HTTP/1.1 10:33:31.931000 Are-we-friendly question received 10:33:31.931258 Wrote request (93 bytes) input to log/7/server.input 10:33:31.931491 Identifying ourselves as friends 10:33:31.932493 Response sent (56 bytes) and written to log/7/server.response 10:33:31.932775 special request received, no persistency 10:33:31.932914 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 53210 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1312 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1312 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1312 test 1313...[HTTP GET with -J, Content-Disposition, uneven quotes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1313 ../src/curl -q --trace-ascii log/4/trace1313 --trace-time http://127.0.0.1:36757/1313 -J -O --output-dir log/4 > log/4/stdout1313 2> log/4/stderr1313 1313: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1313 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1313 ../src/curl -q --trace-ascii log/4/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1314 ../src/curl -q --output log/3/curl1314.out --include --trace-ascii log/3/trace1314 --trace-time http://firstplace.example.com/want/1314 -L -x http://127.0.0.1:36933 > log/3/stdout1314 2> log/3/stderr1314 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1315 ../src/curl -q --output log/1/curl1315.out --include --trace-ascii log/1/trace1315 --trace-time http://127.0.0.1:33601/we/want/1315 -F name=value -F 'file=@log/1/test1315.txt,log/1/test1315.txt;type=magic/content,log/1/test1315.txt' > log/1/stdout1315 2> log/1/stderr1315 trace1313 --trace-time http://127.0.0.1:36757/1313 -J -O --output-dir log/4 > log/4/stdout1313 2> log/4/stderr1313 === End of file commands.log === Start of file http_server.log 10:33:32.950270 ====> Client connect 10:33:32.950592 accept_connection 3 returned 4 10:33:32.950860 accept_connection 3 returned 0 10:33:32.951056 Read 93 bytes 10:33:32.951155 Process 93 bytes request 10:33:32.951244 Got request: GET /verifiedserver HTTP/1.1 10:33:32.951313 Are-we-friendly question received 10:33:32.951586 Wrote request (93 bytes) input to log/4/server.input 10:33:32.951833 Identifying ourselves as friends 10:33:32.952564 Response sent (56 bytes) and written to log/4/server.response 10:33:32.952709 special request received, no persistency 10:33:32.952793 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35350 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1313 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1313 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1313 test 1314...[HTTP Location: following a // prefixed url] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1314 ../src/curl -q --output log/3/curl1314.out --include --trace-ascii log/3/trace1314 --trace-time http://firstplace.example.com/want/1314 -L -x http://127.0.0.1:36933 > log/3/stdout1314 2> log/3/stderr1314 1314: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1314 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1314 ../src/curl -q --output log/3/curl1314.out --include --trace-ascii log/3/trace1314 --trace-time http://firstplace.example.com/want/1314 -L -x http://127.0.0.1:36933 > log/3/stdout1314 2> log/3/stderr1314 === End of file commands.log === Start of file http_server.log 10:33:32.000007 ====> Client connect 10:33:32.000444 accept_connection 3 returned 4 10:33:32.000788 accept_connection 3 returned 0 10:33:32.001029 Read 93 bytes 10:33:32.001192 Process 93 bytes request 10:33:32.001332 Got request: GET /verifiedserver HTTP/1.1 10:33:32.001446 Are-we-friendly question received 10:33:32.001958 Wrote request (93 bytes) input to log/3/server.input 10:33:32.002233 Identifying ourselves as friends 10:33:32.003292 Response sent (56 bytes) and written to log/3/server.response 10:33:32.003527 special request received, no persistency 10:33:32.003622 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 49990 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1314 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1314 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1314 test 1315...[HTTP RFC1867-type formposting - -F with three files, one with explicit type] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1315 ../src/curl -q --output log/1/curl1315.out --include --trace-ascii log/1/trace1315 --trace-time http://127.0.0.1:33601/we/want/1315 -F name=value -F 'file=@log/1/test1315.txt,log/1/test1315.txt;type=magic/content,log/1/test1315.txt' > log/1/stdout1315 2> log/1/stderr1315 1315: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1315 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1315 ../src/curl -q --output log/1/curl1315.out --include --trace-ascii log/1/trace1315 --trace-time http://127.0.0.1:33601/we/want/1315 -F name=value -F 'file=@log/1/test1315.txt,log/1/test1315.txt;type=magic/content,log/1/test1315.txt' > log/1/stdout1315 2> log/1/stderr1315 === End ofCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1317 ../src/curl -q --output log/6/curl1317.out --include --trace-ascii log/6/trace1317 --trace-time --resolve example.com:33363:127.0.0.1 http://example.com:33363/1317 > log/6/stdout1317 2> log/6/stderr1317 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1318 ../src/curl -q --output log/2/curl1318.out --include --trace-ascii log/2/trace1318 --trace-time --resolve MiXeDcAsE.cOm:43789:127.0.0.1 http://MiXeDcAsE.cOm:43789/1318 http://mixedcase.com:43789/13180001 > log/2/stdout1318 2> log/2/stderr1318 file commands.log === Start of file http_server.log 10:33:33.053251 ====> Client connect 10:33:33.053774 accept_connection 3 returned 4 10:33:33.054078 accept_connection 3 returned 0 10:33:33.054231 Read 93 bytes 10:33:33.054324 Process 93 bytes request 10:33:33.054415 Got request: GET /verifiedserver HTTP/1.1 10:33:33.054497 Are-we-friendly question received 10:33:33.054824 Wrote request (93 bytes) input to log/1/server.input 10:33:33.055149 Identifying ourselves as friends 10:33:33.055996 Response sent (57 bytes) and written to log/1/server.response 10:33:33.056136 special request received, no persistency 10:33:33.056213 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 59682 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1315 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file test1315.txt dummy data === End of file test1315.txt === Start of file valgrind1315 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1315 test 1317...[HTTP with --resolve] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1317 ../src/curl -q --output log/6/curl1317.out --include --trace-ascii log/6/trace1317 --trace-time --resolve example.com:33363:127.0.0.1 http://example.com:33363/1317 > log/6/stdout1317 2> log/6/stderr1317 1317: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1317 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1317 ../src/curl -q --output log/6/curl1317.out --include --trace-ascii log/6/trace1317 --trace-time --resolve example.com:33363:127.0.0.1 http://example.com:33363/1317 > log/6/stdout1317 2> log/6/stderr1317 === End of file commands.log === Start of file http_server.log 10:33:32.337038 ====> Client connect 10:33:32.337407 accept_connection 3 returned 4 10:33:32.337822 accept_connection 3 returned 0 10:33:32.338178 Read 93 bytes 10:33:32.338299 Process 93 bytes request 10:33:32.338388 Got request: GET /verifiedserver HTTP/1.1 10:33:32.338455 Are-we-friendly question received 10:33:32.338689 Wrote request (93 bytes) input to log/6/server.input 10:33:32.338873 Identifying ourselves as friends 10:33:32.339635 Response sent (56 bytes) and written to log/6/server.response 10:33:32.339824 special request received, no persistency 10:33:32.339918 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 35088 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1317 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1317 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1317 test 1318...[HTTP with --resolve and same host name using different cases] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1318 ../src/curl -q --output log/2/curl1318.out --include --trace-ascii log/2/trace1318 --trace-time --resolve MiXeDcAsE.cOm:43789:127.0.0.1 http://MiXeDcAsE.cOm:43789/1318 http://mixedcase.com:43789/13180001 > log/2/stdout1318 2> log/2/stderr1318 1318: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1318 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1318 ../src/curl -q --output log/2/curl1318.out --include --trace-ascii log/2/trace1318 --trace-time --resolve MiXeDcAsE.cOm:43789:127.0.0.1 http://MiXeDcAsE.cOm:43789/1318 http://mixedcase.com:43789/13180001 > log/2/stdout1318 2> log/2/stderr1318 === End of file commands.log === Start of file http_server.log 10:33:32.636336 ====> Client connect 10:33:32.636686 accept_connection 3 returned 4 10:33:32.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1323 ./unit/units unit1323 - > log/1/stdout1323 2> log/1/stderr1323 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1319 ../src/curl -q --output log/5/curl1319.out --include --trace-ascii log/5/trace1319 --trace-time pop3://pop.1319:36739/1319 -p -x 127.0.0.1:43353 -u user:secret > log/5/stdout1319 2> log/5/stderr1319 636969 accept_connection 3 returned 0 10:33:32.637162 Read 93 bytes 10:33:32.637264 Process 93 bytes request 10:33:32.637360 Got request: GET /verifiedserver HTTP/1.1 10:33:32.637438 Are-we-friendly question received 10:33:32.637869 Wrote request (93 bytes) input to log/2/server.input 10:33:32.638173 Identifying ourselves as friends 10:33:32.639112 Response sent (56 bytes) and written to log/2/server.response 10:33:32.639281 special request received, no persistency 10:33:32.639358 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 46104 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1318 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1318 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1318 test 1323...[curlx_tvdiff] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1323 ./unit/units unit1323 - > log/1/stdout1323 2> log/1/stderr1323 units returned 1, when expecting 0 1323: exit FAILED == Contents of files in the log/1/ dir after test 1323 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1323 ./unit/units unit1323 - > log/1/stdout1323 2> log/1/stderr1323 === End of file commands.log === Start of file server.cmd Testnum 1323 === End of file server.cmd === Start of file valgrind1323 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1323 test 1319...[POP3 fetch tunneled through HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1319 ../src/curl -q --output log/5/curl1319.out --include --trace-ascii log/5/trace1319 --trace-time pop3://pop.1319:36739/1319 -p -x 127.0.0.1:43353 -u user:secret > log/5/stdout1319 2> log/5/stderr1319 1319: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1319 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1319 ../src/curl -q --output log/5/curl1319.out --include --trace-ascii log/5/trace1319 --trace-time pop3://pop.1319:36739/1319 -p -x 127.0.0.1:43353 -u user:secret > log/5/stdout1319 2> log/5/stderr1319 === End of file commands.log === Start of file http2_server.log 10:33:33.951569 ====> Client connect 10:33:33.951862 accept_connection 3 returned 4 10:33:33.952031 accept_connection 3 returned 0 10:33:33.952143 Read 93 bytes 10:33:33.952215 Process 93 bytes request 10:33:33.952298 Got request: GET /verifiedserver HTTP/1.1 10:33:33.952366 Are-we-friendly question received 10:33:33.952555 Wrote request (93 bytes) input to log/5/proxy.input 10:33:33.952741 Identifying ourselves as friends 10:33:33.954098 Response sent (57 bytes) and written to log/5/proxy.response 10:33:33.954244 special request received, no persistency 10:33:33.954480 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:43353... * Established connection to 127.0.0.1 (127.0.0.1 port 43353) from 127.0.0.1 port 50100 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43353 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43353 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 112645 === End of file http2_verify.out === Start of file pop3_server.log 10:33:33.072373 ====> Client connect 10:33:33.074172 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:33:33.076725 < "CAPA" 10:33:33.077259 > "-ERR Unrecognized command[CR][LF]" 10:33:33.079011 < "RETR verifiedserver" 10:33:33.079423 return proof we are we 10:33:33.079780 > "+OK Mail transfer starts[CR][LF]" 10:33:33.080049 > "WE ROOLZ: 117445[CR][LF]" 10:33:33.080245 > ".[CR][LF]" 10:33:33.133230 < "QUIT" 10:33:33.133898 > "+OK curl POP3 server signing off[CR][LF]" 10:33:33.145701 MAIN sockfilt said DISC 10:33:33.146187 ====> Client disconnected 10:33:33.146827 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:33:32.738821 ====> Client connect 10:33:32.742189 Received DATA (on sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1322 ../src/curl -q --output log/3/curl1322.out --include --trace-ascii log/3/trace1322 --trace-time --ipv4 --resolve example.com.:36933:127.0.0.1 http://example.com.:36933/1322 > log/3/stdout1322 2> log/3/stderr1322 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1320 ../src/curl -q --output log/7/curl1320.out --include --trace-ascii log/7/trace1320 --trace-time smtp://smtp.1320:45189/1320 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - -p -x 127.0.0.1:46821 log/7/stdout1320 2> log/7/stderr1320 tdin) 10:33:32.742499 > 178 bytes data, server => client 10:33:32.742650 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:33:32.742766 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:33:32.742865 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:33:32.742952 've \r\n' 10:33:32.743675 < 6 bytes data, client => server 10:33:32.743901 'CAPA\r\n' 10:33:32.745309 Received DATA (on stdin) 10:33:32.745580 > 27 bytes data, server => client 10:33:32.745729 '-ERR Unrecognized command\r\n' 10:33:32.746413 < 21 bytes data, client => server 10:33:32.746638 'RETR verifiedserver\r\n' 10:33:32.749601 Received DATA (on stdin) 10:33:32.749848 > 26 bytes data, server => client 10:33:32.749943 '+OK Mail transfer starts\r\n' 10:33:32.750238 Received DATA (on stdin) 10:33:32.750416 > 18 bytes data, server => client 10:33:32.750513 'WE ROOLZ: 117445\r\n' 10:33:32.750622 Received DATA (on stdin) 10:33:32.750698 > 3 bytes data, server => client 10:33:32.750758 '.\r\n' 10:33:32.798424 < 6 bytes data, client => server 10:33:32.798690 'QUIT\r\n' 10:33:32.802526 Received DATA (on stdin) 10:33:32.802750 > 34 bytes data, server => client 10:33:32.802891 '+OK curl POP3 server signing off\r\n' 10:33:32.809824 ====> Client disconnect 10:33:32.815273 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 112645 === End of file proxy.response === Start of file server.cmd Testnum 1319 === End of file server.cmd === Start of file valgrind1319 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1319 test 1322...[HTTP with --resolve and hostname with trailing dot] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1322 ../src/curl -q --output log/3/curl1322.out --include --trace-ascii log/3/trace1322 --trace-time --ipv4 --resolve example.com.:36933:127.0.0.1 http://example.com.:36933/1322 > log/3/stdout1322 2> log/3/stderr1322 1322: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1322 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1322 ../src/curl -q --output log/3/curl1322.out --include --trace-ascii log/3/trace1322 --trace-time --ipv4 --resolve example.com.:36933:127.0.0.1 http://example.com.:36933/1322 > log/3/stdout1322 2> log/3/stderr1322 === End of file commands.log === Start of file http_server.log 10:33:33.008891 ====> Client connect 10:33:33.009221 accept_connection 3 returned 4 10:33:33.009442 accept_connection 3 returned 0 10:33:33.009705 Read 93 bytes 10:33:33.009810 Process 93 bytes request 10:33:33.009899 Got request: GET /verifiedserver HTTP/1.1 10:33:33.009970 Are-we-friendly question received 10:33:33.010219 Wrote request (93 bytes) input to log/3/server.input 10:33:33.010407 Identifying ourselves as friends 10:33:33.011070 Response sent (56 bytes) and written to log/3/server.response 10:33:33.011206 special request received, no persistency 10:33:33.011282 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 49992 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1322 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1322 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1322 test 1320...[SMTP send tunneled through HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1320 ../src/curl -q --output log/7/curl1320.out --include --trace-ascii log/7/trace1320 --trace-time smtp://smtp.1320:45189/1320 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - -p -x 127.0.0.1:46821 log/7/stdout1320 2> log/7/stderr1320 1320: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1320 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1320 ../src/curl -q --output log/7/curl1320.out --include --trace-ascii log/7/trace1320 --trace-time smtp://smtp.1320:45189/1320 --mail-rcpt recipient@example.com --mail-from sender@example.com -T - -p -x 127.0.0.1:46821 log/7/stdout1320 2> log/7/stderr1320 === CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1325 ../src/curl -q --output log/2/curl1325.out --include --trace-ascii log/2/trace1325 --trace-time http://127.0.0.1:43789/we/1325 -L -d "moo" > log/2/stdout1325 2> log/2/stderr1325 End of file commands.log === Start of file http2_server.log 10:33:34.115060 ====> Client connect 10:33:34.115437 accept_connection 3 returned 4 10:33:34.115626 accept_connection 3 returned 0 10:33:34.115772 Read 93 bytes 10:33:34.115872 Process 93 bytes request 10:33:34.115974 Got request: GET /verifiedserver HTTP/1.1 10:33:34.116063 Are-we-friendly question received 10:33:34.116326 Wrote request (93 bytes) input to log/7/proxy.input 10:33:34.116583 Identifying ourselves as friends 10:33:34.121598 Response sent (57 bytes) and written to log/7/proxy.response 10:33:34.121857 special request received, no persistency 10:33:34.121966 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:46821... * Established connection to 127.0.0.1 (127.0.0.1 port 46821) from 127.0.0.1 port 57516 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46821 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:46821 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 110953 === End of file http2_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 110953 === End of file proxy.response === Start of file server.cmd Testnum 1320 === End of file server.cmd === Start of file smtp_server.log 10:33:33.284057 ====> Client connect 10:33:33.285104 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:33.288623 < "EHLO verifiedserver" 10:33:33.289072 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:33:33.293605 < "HELP" 10:33:33.294202 > "214 WE ROOLZ: 120422[CR][LF]" 10:33:33.294528 return proof we are we 10:33:33.298162 < "QUIT" 10:33:33.298630 > "221 curl ESMTP server signing off[CR][LF]" 10:33:33.301592 MAIN sockfilt said DISC 10:33:33.301954 ====> Client disconnected 10:33:33.302481 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:33:32.949610 ====> Client connect 10:33:32.953277 Received DATA (on stdin) 10:33:32.953442 > 160 bytes data, server => client 10:33:32.953617 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:32.953712 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:32.953794 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:32.955642 < 21 bytes data, client => server 10:33:32.955864 'EHLO verifiedserver\r\n' 10:33:32.957105 Received DATA (on stdin) 10:33:32.957266 > 53 bytes data, server => client 10:33:32.957351 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:33:32.958465 < 6 bytes data, client => server 10:33:32.958638 'HELP\r\n' 10:33:32.962257 Received DATA (on stdin) 10:33:32.962523 > 22 bytes data, server => client 10:33:32.962652 '214 WE ROOLZ: 120422\r\n' 10:33:32.963794 < 6 bytes data, client => server 10:33:32.964029 'QUIT\r\n' 10:33:32.967478 Received DATA (on stdin) 10:33:32.967640 > 35 bytes data, server => client 10:33:32.967746 '221 curl ESMTP server signing off\r\n' 10:33:32.969151 ====> Client disconnect 10:33:32.970018 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-1320 From: different To: another body === End of file stdin-for-1320 === Start of file valgrind1320 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1320 test 1325...[HTTP 308-redirect with POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1325 ../src/curl -q --output log/2/curl1325.out --include --trace-ascii log/2/trace1325 --trace-time http://127.0.0.1:43789/we/1325 -L -d "moo" > log/2/stdout1325 2> log/2/stderr1325 1325: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1325 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1325 ../src/curl -q --output log/2/curl1325.out --include --trace-ascii log/2/trace1325 --trace-time http://127.0.0.1:43789/we/1325 -L -d "moo" > log/2/stdout1325 2> log/2/stderr1325 === End of file commands.log === Start of file http_server.log 10:33:33.609961 ====> Client connect 10:33:33.610354 accept_connection 3 returned 4 10:33:33.610545 accept_connection 3 returned 0 10:33:33.610687 Read 93 bytes 10:33:33.610774 Process 93 bytes request 10:33:33.610871 Got request: GET /verifiedserver HTTP/1.1 10:33:33.610967 Are-we-friendly question received 10:33:33.611210 Wrote request (93 bytes) input to log/2/server.input 10:33:33.611403 Identifying ourselves as friends 10:33:33.612165 Response sent (56 bytes) and written to log/2/server.response 10:33:33.612313 special request received, no persistency 10:33:33.612386 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 46112 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1325 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1325 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1326 ../src/curl -q --output log/1/curl1326.out --include --trace-ascii log/1/trace1326 --trace-time telnet://127.0.0.1:33601 --upload-file - log/1/stdout1326 2> log/1/stderr1326 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1327 ../src/curl -q --include --trace-ascii log/5/trace1327 --trace-time telnet://127.0.0.1:41733 -T log/5/1327.txt log/5/stdout1327 2> log/5/stderr1327 atever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1325 test 1326...[TELNET to HTTP server] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1326 ../src/curl -q --output log/1/curl1326.out --include --trace-ascii log/1/trace1326 --trace-time telnet://127.0.0.1:33601 --upload-file - log/1/stdout1326 2> log/1/stderr1326 1326: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1326 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1326 ../src/curl -q --output log/1/curl1326.out --include --trace-ascii log/1/trace1326 --trace-time telnet://127.0.0.1:33601 --upload-file - log/1/stdout1326 2> log/1/stderr1326 === End of file commands.log === Start of file http_server.log 10:33:34.760495 ====> Client connect 10:33:34.760753 accept_connection 3 returned 4 10:33:34.760897 accept_connection 3 returned 0 10:33:34.761010 Read 93 bytes 10:33:34.761089 Process 93 bytes request 10:33:34.761169 Got request: GET /verifiedserver HTTP/1.1 10:33:34.761239 Are-we-friendly question received 10:33:34.761424 Wrote request (93 bytes) input to log/1/server.input 10:33:34.761659 Identifying ourselves as friends 10:33:34.762177 Response sent (57 bytes) and written to log/1/server.response 10:33:34.762278 special request received, no persistency 10:33:34.762335 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 59688 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1326 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file stdin-for-1326 GET /we/want/1326 HTTP/1.0 === End of file stdin-for-1326 === Start of file valgrind1326 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1326 test 1327...[TELNET check of upload with stdout redirected] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1327 ../src/curl -q --include --trace-ascii log/5/trace1327 --trace-time telnet://127.0.0.1:41733 -T log/5/1327.txt log/5/stdout1327 2> log/5/stderr1327 1327: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1327 === Start of file 1327.txt GET /we/want/1327 HTTP/1.0 === End of file 1327.txt === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1327 ../src/curl -q --include --trace-ascii log/5/trace1327 --trace-time telnet://127.0.0.1:41733 -T log/5/1327.txt log/5/stdout1327 2> log/5/stderr1327 === End of file commands.log === Start of file http_server.log 10:33:34.922117 ====> Client connect 10:33:34.922455 accept_connection 3 returned 4 10:33:34.922625 accept_connection 3 returned 0 10:33:34.922742 Read 93 bytes 10:33:34.922823 Process 93 bytes request 10:33:34.922905 Got request: GET /verifiedserver HTTP/1.1 10:33:34.922972 Are-we-friendly question received 10:33:34.923180 Wrote request (93 bytes) input to log/5/server.input 10:33:34.923355 Identifying ourselves as friends 10:33:34.924045 Response sent (56 bytes) and written to log/5/server.response 10:33:34.924182 special request received, no persistency 10:33:34.924246 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 57776 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1327 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file stdin-for-1327 GET /ignore/for/1327 HTTP/1.0 === End of file stdin-for-1327 === Start of file valgrind1327 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1328 ../src/curl -q --output log/3/curl1328.out --include --trace-ascii log/3/trace1328 --trace-time -f 'http://127.0.0.1:36933/[13280000-13280001]' -o log/3/#1 > log/3/stdout1328 2> log/3/stderr1328 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1329 ../src/curl -q --output log/7/curl1329.out --include --trace-ascii log/7/trace1329 --trace-time http://127.0.0.1:40129/we/want/that/page/1329 -x "/server" > log/7/stdout1329 2> log/7/stderr1329 calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1327 test 1328...[HTTP GET a globbed range with -f] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1328 ../src/curl -q --output log/3/curl1328.out --include --trace-ascii log/3/trace1328 --trace-time -f 'http://127.0.0.1:36933/[13280000-13280001]' -o log/3/#1 > log/3/stdout1328 2> log/3/stderr1328 1328: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1328 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1328 ../src/curl -q --output log/3/curl1328.out --include --trace-ascii log/3/trace1328 --trace-time -f 'http://127.0.0.1:36933/[13280000-13280001]' -o log/3/#1 > log/3/stdout1328 2> log/3/stderr1328 === End of file commands.log === Start of file http_server.log 10:33:33.945112 ====> Client connect 10:33:33.945430 accept_connection 3 returned 4 10:33:33.945717 accept_connection 3 returned 0 10:33:33.945844 Read 93 bytes 10:33:33.945929 Process 93 bytes request 10:33:33.946011 Got request: GET /verifiedserver HTTP/1.1 10:33:33.946073 Are-we-friendly question received 10:33:33.946303 Wrote request (93 bytes) input to log/3/server.input 10:33:33.946475 Identifying ourselves as friends 10:33:33.947080 Response sent (56 bytes) and written to log/3/server.response 10:33:33.947214 special request received, no persistency 10:33:33.947283 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 49994 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1328 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1328 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1328 test 1329...[/-prefixed proxy name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1329 ../src/curl -q --output log/7/curl1329.out --include --trace-ascii log/7/trace1329 --trace-time http://127.0.0.1:40129/we/want/that/page/1329 -x "/server" > log/7/stdout1329 2> log/7/stderr1329 curl returned 1, when expecting 5 1329: exit FAILED == Contents of files in the log/7/ dir after test 1329 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1329 ../src/curl -q --output log/7/curl1329.out --include --trace-ascii log/7/trace1329 --trace-time http://127.0.0.1:40129/we/want/that/page/1329 -x "/server" > log/7/stdout1329 2> log/7/stderr1329 === End of file commands.log === Start of file http_server.log 10:33:34.077971 ====> Client connect 10:33:34.078402 accept_connection 3 returned 4 10:33:34.078585 accept_connection 3 returned 0 10:33:34.078719 Read 93 bytes 10:33:34.078804 Process 93 bytes request 10:33:34.078893 Got request: GET /verifiedserver HTTP/1.1 10:33:34.078971 Are-we-friendly question received 10:33:34.079205 Wrote request (93 bytes) input to log/7/server.input 10:33:34.079398 Identifying ourselves as friends 10:33:34.080207 Response sent (56 bytes) and written to log/7/server.response 10:33:34.080389 special request received, no persistency 10:33:34.080543 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 53222 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1329 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1329 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1321 ../src/curl -q --output log/4/curl1321.out --include --trace-ascii log/4/trace1321 --trace-time 'imap://imap.1321:45271/1321/;MAILINDEX=1' -u user:secret -p -x 127.0.0.1:38083 > log/4/stdout1321 2> log/4/stderr1321 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1324 ../src/curl -q --output log/6/curl1324.out --include --trace-ascii log/6/trace1324 --trace-time --resolve example.com:36759:[::1] http://example.com:36759/1324 > log/6/stdout1324 2> log/6/stderr1324 grind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1329 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --connect 127.0.0.1 --keepalive 30 --pidfile "log/4/server/http2_server.pid" --logfile "log/4/http2_server.log" --logdir "log/4" --portfile log/4/server/http2_server.port --config log/4/server.cmd --id 2 --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP2 server is on PID 143578 port 38083 * pid http-proxy => 143578 143578 test 1321...[IMAP FETCH tunneled through HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1321 ../src/curl -q --output log/4/curl1321.out --include --trace-ascii log/4/trace1321 --trace-time 'imap://imap.1321:45271/1321/;MAILINDEX=1' -u user:secret -p -x 127.0.0.1:38083 > log/4/stdout1321 2> log/4/stderr1321 1321: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1321 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1321 ../src/curl -q --output log/4/curl1321.out --include --trace-ascii log/4/trace1321 --trace-time 'imap://imap.1321:45271/1321/;MAILINDEX=1' -u user:secret -p -x 127.0.0.1:38083 > log/4/stdout1321 2> log/4/stderr1321 === End of file commands.log === Start of file http2_server.log 10:33:33.310273 Run as proxy, CONNECT to host 127.0.0.1 10:33:33.311244 Running HTTP IPv4 version on port 38083 10:33:33.312066 Wrote pid 143578 to log/4/server/http2_server.pid 10:33:33.312516 Wrote port 38083 to log/4/server/http2_server.port === End of file http2_server.log === Start of file imap_server.log 10:33:33.287979 ====> Client connect 10:33:33.290281 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:33:33.292053 < "A001 CAPABILITY" 10:33:33.297688 > "A001 BAD Command[CR][LF]" 10:33:33.300254 < "A002 LIST "verifiedserver" *" 10:33:33.300709 LIST_imap got "verifiedserver" * 10:33:33.301196 > "* LIST () "/" "WE ROOLZ: 107654"[CR][LF]" 10:33:33.301562 > "A002 OK LIST Completed[CR][LF]" 10:33:33.301894 return proof we are we 10:33:33.348458 < "A003 LOGOUT" 10:33:33.349608 > "* BYE curl IMAP server signing off[CR][LF]" 10:33:33.350168 > "A003 OK LOGOUT completed[CR][LF]" 10:33:33.352029 MAIN sockfilt said DISC 10:33:33.352808 ====> Client disconnected 10:33:33.353533 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:33:32.948763 ====> Client connect 10:33:32.957107 Received DATA (on stdin) 10:33:32.957288 > 178 bytes data, server => client 10:33:32.957437 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:33:32.957715 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:33:32.957813 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:33:32.957884 'rve\r\n' 10:33:32.958454 < 17 bytes data, client => server 10:33:32.958640 'A001 CAPABILITY\r\n' 10:33:32.960566 Received DATA (on stdin) 10:33:32.960747 > 18 bytes data, server => client 10:33:32.966216 'A001 BAD Command\r\n' 10:33:32.967129 < 30 bytes data, client => server 10:33:32.967348 'A002 LIST "verifiedserver" *\r\n' 10:33:32.970253 Received DATA (on stdin) 10:33:32.970428 > 34 bytes data, server => client 10:33:32.970539 '* LIST () "/" "WE ROOLZ: 107654"\r\n' 10:33:32.970840 Received DATA (on stdin) 10:33:32.971004 > 24 bytes data, server => client 10:33:32.971083 'A002 OK LIST Completed\r\n' 10:33:33.015256 < 13 bytes data, client => server 10:33:33.015541 'A003 LOGOUT\r\n' 10:33:33.017056 Received DATA (on stdin) 10:33:33.017290 > 36 bytes data, server => client 10:33:33.018599 '* BYE curl IMAP server signing off\r\n' 10:33:33.019070 Received DATA (on stdin) 10:33:33.019261 > 26 bytes data, server => client 10:33:33.019359 'A003 OK LOGOUT completed\r\n' 10:33:33.019689 ====> Client disconnect 10:33:33.020483 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1321 === End of file server.cmd === Start of file valgrind1321 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1321 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/6/server/http_ipv6_server.pid" --logfile "log/6/http_ipv6_server.log" --logdir "log/6" --portfile log/6/server/http_ipv6_server.port --config log/6/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 143657 port 36759 * pid http-ipv6 => 143657 143657 test 1324...[HTTP with --resolve and [ipv6address]] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1324 ../src/curl -q --output log/6/curl1324.out --include --trace-ascii log/6/trace1324 --trace-time --resolve example.com:36759:[::1] http://example.com:36759/1324 > log/6/stdout1324 2> log/6/stderr1324 1324: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1324 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1324 ../src/curl -q --output log/6/curl1324.out --include --trace-ascii log/6/trace1324 --trace-time --resolve example.com:36759:[::1] http://example.com:36759/1324 > log/6/stdout1324 2> log/6/stderr1324 === End of file commands.log === Start of file http_ipv6_server.log 10:33:33.517327 Running HTTP IPv6 version on port 36759 10:33:33.518299 Wrote pid 143657 to log/6/server/http_ipv6_server.pid 10:33:33.518704 Wrote port 36759 to log/6/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 1324 === End of file server.cmd === Start of file valgrind1324 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1309 ./unit/units unit1309 - > log/8/stdout1309 2> log/8/stderr1309 linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1324 test 1309...[splay unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1309 ./unit/units unit1309 - > log/8/stdout1309 2> log/8/stderr1309 1309: stdout FAILED: --- log/8/check-expected 2025-09-11 10:33:35.514353906 +0000 +++ log/8/check-generated 2025-09-11 10:33:35.506353747 +0000 @@ -1,1537 +0,0 @@ -Result:[LF] - 0.1013[3][LF] - 0.1003[2][LF] - 0.954[3][LF] - 0.944[1][LF] -0.934[0][LF] - 0.895[1][LF] - 0.885[4][LF] - 0.875[3][LF] - 0.836[4][LF] - 0.826[7][LF] - 0.816[6][LF] - 0.777[5][LF] - 0.767[9][LF] - 0.757[8][LF] - 0.718[7][LF] - 0.708[10][LF] - 0.698[9][LF] - 0.659[8][LF] - 0.649[9][LF] - 0.639[10][LF] - 0.600[12][LF] - 0.590[13][LF] - 0.580[11][LF] - 0.541[6][LF] - 0.531[9][LF] - 0.521[10][LF] - 0.472[8][LF] - 0.462[9][LF] - 0.413[7][LF] - 0.403[2][LF] - 0.393[3][LF] - 0.354[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.295[7][LF] - 0.285[6][LF] - 0.275[7][LF] - 0.236[9][LF] - 0.226[8][LF] - 0.216[9][LF] - 0.177[11][LF] - 0.167[12][LF] - 0.157[10][LF] - 0.118[11][LF] - 0.108[13][LF] - 0.98[12][LF] - 0.59[13][LF] - 0.49[15][LF] - 0.39[14][LF] - 0.0[15][LF] -Tree look:[LF] - 0.1013[3][LF] - 0.1003[2][LF] - 0.954[3][LF] - 0.944[1][LF] -0.934[0][LF] - 0.895[1][LF] - 0.885[4][LF] - 0.875[3][LF] - 0.836[4][LF] - 0.826[7][LF] - 0.816[6][LF] - 0.777[5][LF] - 0.767[9][LF] - 0.757[8][LF] - 0.718[7][LF] - 0.708[10][LF] - 0.698[9][LF] - 0.659[8][LF] - 0.649[9][LF] - 0.639[10][LF] - 0.600[12][LF] - 0.590[13][LF] - 0.580[11][LF] - 0.541[6][LF] - 0.531[9][LF] - 0.521[10][LF] - 0.472[8][LF] - 0.462[9][LF] - 0.413[7][LF] - 0.403[2][LF] - 0.393[3][LF] - 0.354[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.295[7][LF] - 0.285[6][LF] - 0.275[7][LF] - 0.236[9][LF] - 0.226[8][LF] - 0.216[9][LF] - 0.177[11][LF] - 0.167[12][LF] - 0.157[10][LF] - 0.118[11][LF] - 0.108[13][LF] - 0.98[12][LF] - 0.59[13][LF] - 0.49[15][LF] - 0.39[14][LF] - 0.0[15][LF] -remove pointer 7, payload 718[LF] -Tree look:[LF] - 0.1013[5][LF] - 0.1003[4][LF] - 0.954[5][LF] - 0.944[3][LF] - 0.934[2][LF] - 0.895[1][LF] - 0.885[4][LF] - 0.875[3][LF] - 0.836[2][LF] - 0.826[5][LF] - 0.816[4][LF] - 0.777[3][LF] - 0.767[5][LF] - 0.757[4][LF] -0.708[0][LF] - 0.698[2][LF] - 0.659[3][LF] - 0.649[4][LF] - 0.639[5][LF] - 0.600[7][LF] - 0.590[8][LF] - 0.580[6][LF] - 0.541[1][LF] - 0.531[5][LF] - 0.521[6][LF] - 0.472[4][LF] - 0.462[5][LF] - 0.413[3][LF] - 0.403[2][LF] - 0.393[3][LF] - 0.354[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.295[7][LF] - 0.285[6][LF] - 0.275[7][LF] - 0.236[9][LF] - 0.226[8][LF] - 0.216[9][LF] - 0.177[11][LF] - 0.167[12][LF] - 0.157[10][LF] - 0.118[11][LF] - 0.108[13][LF] - 0.98[12][LF] - 0.59[13][LF] - 0.49[15][LF] - 0.39[14][LF] - 0.0[15][LF] -remove pointer 8, payload 236[LF] -Tree look:[LF] - 0.1013[7][LF] - 0.1003[6][LF] - 0.954[7][LF] - 0.944[5][LF] - 0.934[4][LF] - 0.895[3][LF] - 0.885[6][LF] - 0.875[5][LF] - 0.836[4][LF] - 0.826[7][LF] - 0.816[6][LF] - 0.777[5][LF] - 0.767[7][LF] - 0.757[6][LF] - 0.708[2][LF] - 0.698[3][LF] - 0.659[4][LF] - 0.649[5][LF] - 0.639[6][LF] - 0.600[8][LF] - 0.590[9][LF] - 0.580[7][LF] - 0.541[1][LF] - 0.531[6][LF] - 0.521[7][LF] - 0.472[5][LF] - 0.462[6][LF] - 0.413[4][LF] - 0.403[3][LF] - 0.393[2][LF] - 0.354[5][LF] - 0.344[4][LF] - 0.334[3][LF] - 0.295[6][LF] - 0.285[5][LF] - 0.275[4][LF] -0.226[0][LF] - 0.216[1][LF] - 0.177[3][LF] - 0.167[4][LF] - 0.157[2][LF] - 0.118[3][LF] - 0.108[5][LF] - 0.98[4][LF] - 0.59[5][LF] - 0.49[7][LF] - 0.39[6][LF] - 0.0[7][LF] -remove pointer 9, payload 777[LF] -Tree look:[LF] - 0.1013[6][LF] - 0.1003[5][LF] - 0.954[6][LF] - 0.944[4][LF] - 0.934[3][LF] - 0.895[2][LF] - 0.885[4][LF] - 0.875[3][LF] - 0.836[1][LF] - 0.826[3][LF] - 0.816[2][LF] -0.767[0][LF] - 0.757[2][LF] - 0.708[1][LF] - 0.698[3][LF] - 0.659[4][LF] - 0.649[5][LF] - 0.639[6][LF] - 0.600[8][LF] - 0.590[9][LF] - 0.580[7][LF] - 0.541[2][LF] - 0.531[8][LF] - 0.521[9][LF] - 0.472[7][LF] - 0.462[8][LF] - 0.413[6][LF] - 0.403[5][LF] - 0.393[4][LF] - 0.354[7][LF] - 0.344[6][LF] - 0.334[5][LF] - 0.295[8][LF] - 0.285[7][LF] - 0.275[6][LF] - 0.226[3][LF] - 0.216[4][LF] - 0.177[6][LF] - 0.167[7][LF] - 0.157[5][LF] - 0.118[6][LF] - 0.108[8][LF] - 0.98[7][LF] - 0.59[8][LF] - 0.49[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 10, payload 295[LF] -Tree look:[LF] - 0.1013[8][LF] - 0.1003[7][LF] - 0.954[8][LF] - 0.944[6][LF] - 0.934[5][LF] - 0.895[4][LF] - 0.885[6][LF] - 0.875[5][LF] - 0.836[3][LF] - 0.826[5][LF] - 0.816[4][LF] - 0.767[2][LF] - 0.757[3][LF] - 0.708[1][LF] - 0.698[3][LF] - 0.659[4][LF] - 0.649[5][LF] - 0.639[6][LF] - 0.600[8][LF] - 0.590[9][LF] - 0.580[7][LF] - 0.541[2][LF] - 0.531[8][LF] - 0.521[9][LF] - 0.472[7][LF] - 0.462[8][LF] - 0.413[6][LF] - 0.403[5][LF] - 0.393[4][LF] - 0.354[6][LF] - 0.344[5][LF] - 0.334[3][LF] -0.285[0][LF] - 0.275[2][LF] - 0.226[1][LF] - 0.216[2][LF] - 0.177[4][LF] - 0.167[5][LF] - 0.157[3][LF] - 0.118[4][LF] - 0.108[6][LF] - 0.98[5][LF] - 0.59[6][LF] - 0.49[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 11, payload 836[LF] -Tree look:[LF] - 0.1013[5][LF] - 0.1003[4][LF] - 0.954[5][LF] - 0.944[3][LF] - 0.934[2][LF] - 0.895[1][LF] - 0.885[3][LF] - 0.875[2][LF] -0.826[0][LF] - 0.816[2][LF] - 0.767[1][LF] - 0.757[3][LF] - 0.708[2][LF] - 0.698[5][LF] - 0.659[6][LF] - 0.649[7][LF] - 0.639[8][LF] - 0.600[10][LF] - 0.590[11][LF] - 0.580[9][LF] - 0.541[4][LF] - 0.531[10][LF] - 0.521[11][LF] - 0.472[9][LF] - 0.462[10][LF] - 0.413[8][LF] - 0.403[7][LF] - 0.393[6][LF] - 0.354[8][LF] - 0.344[7][LF] - 0.334[5][LF] - 0.285[3][LF] - 0.275[5][LF] - 0.226[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.167[8][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.108[9][LF] - 0.98[8][LF] - 0.59[9][LF] - 0.49[11][LF] - 0.39[10][LF] - 0.0[11][LF] -remove pointer 12, payload 354[LF] -Tree look:[LF] - 0.1013[7][LF] - 0.1003[6][LF] - 0.954[7][LF] - 0.944[5][LF] - 0.934[4][LF] - 0.895[3][LF] - 0.885[5][LF] - 0.875[4][LF] - 0.826[2][LF] - 0.816[3][LF] - 0.767[1][LF] - 0.757[3][LF] - 0.708[2][LF] - 0.698[4][LF] - 0.659[5][LF] - 0.649[6][LF] - 0.639[7][LF] - 0.600[9][LF] - 0.590[10][LF] - 0.580[8][LF] - 0.541[3][LF] - 0.531[8][LF] - 0.521[9][LF] - 0.472[7][LF] - 0.462[8][LF] - 0.413[6][LF] - 0.403[5][LF] - 0.393[4][LF] -0.344[0][LF] - 0.334[1][LF] - 0.285[2][LF] - 0.275[4][LF] - 0.226[3][LF] - 0.216[4][LF] - 0.177[6][LF] - 0.167[7][LF] - 0.157[5][LF] - 0.118[6][LF] - 0.108[8][LF] - 0.98[7][LF] - 0.59[8][LF] - 0.49[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 13, payload 895[LF] -Tree look:[LF] - 0.1013[4][LF] - 0.1003[3][LF] - 0.954[4][LF] - 0.944[2][LF] - 0.934[1][LF] -0.885[0][LF] - 0.875[2][LF] - 0.826[1][LF] - 0.816[3][LF] - 0.767[2][LF] - 0.757[5][LF] - 0.708[4][LF] - 0.698[6][LF] - 0.659[7][LF] - 0.649[8][LF] - 0.639[9][LF] - 0.600[11][LF] - 0.590[12][LF] - 0.580[10][LF] - 0.541[5][LF] - 0.531[10][LF] - 0.521[11][LF] - 0.472[9][LF] - 0.462[10][LF] - 0.413[8][LF] - 0.403[7][LF] - 0.393[6][LF] - 0.344[3][LF] - 0.334[4][LF] - 0.285[5][LF] - 0.275[7][LF] - 0.226[6][LF] - 0.216[7][LF] - 0.177[9][LF] - 0.167[10][LF] - 0.157[8][LF] - 0.118[9][LF] - 0.108[11][LF] - 0.98[10][LF] - 0.59[11][LF] - 0.49[13][LF] - 0.39[12][LF] - 0.0[13][LF] -remove pointer 14, payload 413[LF] -Tree look:[LF] - 0.1013[6][LF] - 0.1003[5][LF] - 0.954[6][LF] - 0.944[4][LF] - 0.934[3][LF] - 0.885[2][LF] - 0.875[3][LF] - 0.826[1][LF] - 0.816[3][LF] - 0.767[2][LF] - 0.757[5][LF] - 0.708[4][LF] - 0.698[5][LF] - 0.659[6][LF] - 0.649[7][LF] - 0.639[8][LF] - 0.600[10][LF] - 0.590[11][LF] - 0.580[9][LF] - 0.541[3][LF] - 0.531[5][LF] - 0.521[6][LF] - 0.472[4][LF] - 0.462[5][LF] -0.403[0][LF] - 0.393[2][LF] - 0.344[1][LF] - 0.334[2][LF] - 0.285[3][LF] - 0.275[5][LF] - 0.226[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.167[8][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.108[9][LF] - 0.98[8][LF] - 0.59[9][LF] - 0.49[11][LF] - 0.39[10][LF] - 0.0[11][LF] -remove pointer 15, payload 954[LF] -Tree look:[LF] - 0.1013[2][LF] - 0.1003[1][LF] -0.944[0][LF] - 0.934[1][LF] - 0.885[3][LF] - 0.875[4][LF] - 0.826[2][LF] - 0.816[5][LF] - 0.767[4][LF] - 0.757[7][LF] - 0.708[6][LF] - 0.698[7][LF] - 0.659[8][LF] - 0.649[9][LF] - 0.639[10][LF] - 0.600[12][LF] - 0.590[13][LF] - 0.580[11][LF] - 0.541[5][LF] - 0.531[7][LF] - 0.521[8][LF] - 0.472[6][LF] - 0.462[7][LF] - 0.403[3][LF] - 0.393[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.285[6][LF] - 0.275[8][LF] - 0.226[7][LF] - 0.216[8][LF] - 0.177[10][LF] - 0.167[11][LF] - 0.157[9][LF] - 0.118[10][LF] - 0.108[12][LF] - 0.98[11][LF] - 0.59[12][LF] - 0.49[14][LF] - 0.39[13][LF] - 0.0[14][LF] -remove pointer 16, payload 472[LF] -Tree look:[LF] - 0.1013[4][LF] - 0.1003[3][LF] - 0.944[2][LF] - 0.934[1][LF] - 0.885[3][LF] - 0.875[4][LF] - 0.826[2][LF] - 0.816[5][LF] - 0.767[4][LF] - 0.757[6][LF] - 0.708[5][LF] - 0.698[6][LF] - 0.659[7][LF] - 0.649[8][LF] - 0.639[9][LF] - 0.600[11][LF] - 0.590[12][LF] - 0.580[10][LF] - 0.541[3][LF] - 0.531[4][LF] - 0.521[5][LF] -0.462[0][LF] - 0.403[1][LF] - 0.393[3][LF] - 0.344[2][LF] - 0.334[3][LF] - 0.285[4][LF] - 0.275[6][LF] - 0.226[5][LF] - 0.216[6][LF] - 0.177[8][LF] - 0.167[9][LF] - 0.157[7][LF] - 0.118[8][LF] - 0.108[10][LF] - 0.98[9][LF] - 0.59[10][LF] - 0.49[12][LF] - 0.39[11][LF] - 0.0[12][LF] -remove pointer 17, payload 1013[LF] -Tree look:[LF] -0.1003[0][LF] - 0.944[2][LF] - 0.934[1][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[6][LF] - 0.767[5][LF] - 0.757[7][LF] - 0.708[6][LF] - 0.698[7][LF] - 0.659[8][LF] - 0.649[9][LF] - 0.639[10][LF] - 0.600[12][LF] - 0.590[13][LF] - 0.580[11][LF] - 0.541[4][LF] - 0.531[5][LF] - 0.521[6][LF] - 0.462[2][LF] - 0.403[3][LF] - 0.393[5][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.285[6][LF] - 0.275[8][LF] - 0.226[7][LF] - 0.216[8][LF] - 0.177[10][LF] - 0.167[11][LF] - 0.157[9][LF] - 0.118[10][LF] - 0.108[12][LF] - 0.98[11][LF] - 0.59[12][LF] - 0.49[14][LF] - 0.39[13][LF] - 0.0[14][LF] -remove pointer 18, payload 531[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[5][LF] - 0.767[4][LF] - 0.757[6][LF] - 0.708[5][LF] - 0.698[6][LF] - 0.659[7][LF] - 0.649[8][LF] - 0.639[9][LF] - 0.600[11][LF] - 0.590[12][LF] - 0.580[10][LF] - 0.541[2][LF] -0.521[0][LF] - 0.462[1][LF] - 0.403[2][LF] - 0.393[4][LF] - 0.344[3][LF] - 0.334[4][LF] - 0.285[5][LF] - 0.275[7][LF] - 0.226[6][LF] - 0.216[7][LF] - 0.177[9][LF] - 0.167[10][LF] - 0.157[8][LF] - 0.118[9][LF] - 0.108[11][LF] - 0.98[10][LF] - 0.59[11][LF] - 0.49[13][LF] - 0.39[12][LF] - 0.0[13][LF] -remove pointer 19, payload 49[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.885[6][LF] - 0.875[7][LF] - 0.826[5][LF] - 0.816[7][LF] - 0.767[6][LF] - 0.757[8][LF] - 0.708[7][LF] - 0.698[8][LF] - 0.659[9][LF] - 0.649[10][LF] - 0.639[11][LF] - 0.600[13][LF] - 0.590[14][LF] - 0.580[12][LF] - 0.541[4][LF] - 0.521[2][LF] - 0.462[1][LF] - 0.403[3][LF] - 0.393[4][LF] - 0.344[2][LF] - 0.334[4][LF] - 0.285[3][LF] - 0.275[6][LF] - 0.226[5][LF] - 0.216[4][LF] - 0.177[7][LF] - 0.167[8][LF] - 0.157[6][LF] - 0.118[5][LF] - 0.108[8][LF] - 0.98[7][LF] - 0.59[6][LF] -0.39[0][LF] - 0.0[1][LF] -remove pointer 20, payload 590[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[4][LF] - 0.767[2][LF] - 0.757[5][LF] - 0.708[4][LF] - 0.698[3][LF] - 0.659[5][LF] - 0.649[4][LF] - 0.639[5][LF] - 0.600[6][LF] -0.580[0][LF] - 0.541[2][LF] - 0.521[1][LF] - 0.462[2][LF] - 0.403[5][LF] - 0.393[6][LF] - 0.344[4][LF] - 0.334[6][LF] - 0.285[5][LF] - 0.275[8][LF] - 0.226[7][LF] - 0.216[6][LF] - 0.177[9][LF] - 0.167[10][LF] - 0.157[8][LF] - 0.118[7][LF] - 0.108[10][LF] - 0.98[9][LF] - 0.59[8][LF] - 0.39[3][LF] - 0.0[4][LF] -remove pointer 21, payload 108[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.885[6][LF] - 0.875[7][LF] - 0.826[5][LF] - 0.816[6][LF] - 0.767[4][LF] - 0.757[7][LF] - 0.708[6][LF] - 0.698[5][LF] - 0.659[7][LF] - 0.649[6][LF] - 0.639[7][LF] - 0.600[8][LF] - 0.580[2][LF] - 0.541[3][LF] - 0.521[1][LF] - 0.462[2][LF] - 0.403[5][LF] - 0.393[6][LF] - 0.344[4][LF] - 0.334[5][LF] - 0.285[3][LF] - 0.275[7][LF] - 0.226[6][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.167[8][LF] - 0.157[6][LF] - 0.118[4][LF] -0.98[0][LF] - 0.59[2][LF] - 0.39[1][LF] - 0.0[2][LF] -remove pointer 22, payload 649[LF] -Tree look:[LF] - 0.1003[3][LF] - 0.944[4][LF] - 0.934[2][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[4][LF] - 0.767[1][LF] - 0.757[4][LF] - 0.708[3][LF] - 0.698[2][LF] - 0.659[3][LF] -0.639[0][LF] - 0.600[2][LF] - 0.580[1][LF] - 0.541[3][LF] - 0.521[2][LF] - 0.462[4][LF] - 0.403[7][LF] - 0.393[8][LF] - 0.344[6][LF] - 0.334[7][LF] - 0.285[5][LF] - 0.275[9][LF] - 0.226[8][LF] - 0.216[7][LF] - 0.177[9][LF] - 0.167[10][LF] - 0.157[8][LF] - 0.118[6][LF] - 0.98[3][LF] - 0.59[5][LF] - 0.39[4][LF] - 0.0[5][LF] -remove pointer 23, payload 167[LF] -Tree look:[LF] - 0.1003[5][LF] - 0.944[6][LF] - 0.934[4][LF] - 0.885[6][LF] - 0.875[7][LF] - 0.826[5][LF] - 0.816[6][LF] - 0.767[3][LF] - 0.757[6][LF] - 0.708[5][LF] - 0.698[4][LF] - 0.659[5][LF] - 0.639[2][LF] - 0.600[3][LF] - 0.580[1][LF] - 0.541[3][LF] - 0.521[2][LF] - 0.462[4][LF] - 0.403[6][LF] - 0.393[7][LF] - 0.344[5][LF] - 0.334[6][LF] - 0.285[3][LF] - 0.275[6][LF] - 0.226[5][LF] - 0.216[4][LF] - 0.177[5][LF] -0.157[0][LF] - 0.118[1][LF] - 0.98[2][LF] - 0.59[4][LF] - 0.39[3][LF] - 0.0[4][LF] -remove pointer 24, payload 708[LF] -Tree look:[LF] - 0.1003[3][LF] - 0.944[4][LF] - 0.934[2][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.826[3][LF] - 0.816[4][LF] - 0.767[1][LF] - 0.757[2][LF] -0.698[0][LF] - 0.659[2][LF] - 0.639[1][LF] - 0.600[3][LF] - 0.580[2][LF] - 0.541[5][LF] - 0.521[4][LF] - 0.462[6][LF] - 0.403[8][LF] - 0.393[9][LF] - 0.344[7][LF] - 0.334[8][LF] - 0.285[5][LF] - 0.275[8][LF] - 0.226[7][LF] - 0.216[6][LF] - 0.177[7][LF] - 0.157[3][LF] - 0.118[4][LF] - 0.98[5][LF] - 0.59[7][LF] - 0.39[6][LF] - 0.0[7][LF] -remove pointer 25, payload 226[LF] -Tree look:[LF] - 0.1003[5][LF] - 0.944[6][LF] - 0.934[4][LF] - 0.885[6][LF] - 0.875[7][LF] - 0.826[5][LF] - 0.816[6][LF] - 0.767[3][LF] - 0.757[4][LF] - 0.698[2][LF] - 0.659[3][LF] - 0.639[1][LF] - 0.600[3][LF] - 0.580[2][LF] - 0.541[5][LF] - 0.521[4][LF] - 0.462[5][LF] - 0.403[7][LF] - 0.393[8][LF] - 0.344[6][LF] - 0.334[7][LF] - 0.285[3][LF] - 0.275[4][LF] -0.216[0][LF] - 0.177[2][LF] - 0.157[1][LF] - 0.118[2][LF] - 0.98[3][LF] - 0.59[5][LF] - 0.39[4][LF] - 0.0[5][LF] -remove pointer 26, payload 767[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] - 0.885[3][LF] - 0.875[4][LF] - 0.826[2][LF] - 0.816[3][LF] -0.757[0][LF] - 0.698[1][LF] - 0.659[3][LF] - 0.639[2][LF] - 0.600[5][LF] - 0.580[4][LF] - 0.541[7][LF] - 0.521[6][LF] - 0.462[7][LF] - 0.403[9][LF] - 0.393[10][LF] - 0.344[8][LF] - 0.334[9][LF] - 0.285[5][LF] - 0.275[6][LF] - 0.216[3][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 27, payload 285[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.885[5][LF] - 0.875[6][LF] - 0.826[4][LF] - 0.816[5][LF] - 0.757[2][LF] - 0.698[1][LF] - 0.659[3][LF] - 0.639[2][LF] - 0.600[4][LF] - 0.580[3][LF] - 0.541[5][LF] - 0.521[4][LF] - 0.462[5][LF] - 0.403[7][LF] - 0.393[8][LF] - 0.344[6][LF] - 0.334[7][LF] -0.275[0][LF] - 0.216[1][LF] - 0.177[3][LF] - 0.157[2][LF] - 0.118[3][LF] - 0.98[4][LF] - 0.59[6][LF] - 0.39[5][LF] - 0.0[6][LF] -remove pointer 28, payload 826[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] - 0.885[2][LF] - 0.875[3][LF] -0.816[0][LF] - 0.757[1][LF] - 0.698[2][LF] - 0.659[5][LF] - 0.639[4][LF] - 0.600[6][LF] - 0.580[5][LF] - 0.541[7][LF] - 0.521[6][LF] - 0.462[7][LF] - 0.403[9][LF] - 0.393[10][LF] - 0.344[8][LF] - 0.334[9][LF] - 0.275[3][LF] - 0.216[4][LF] - 0.177[6][LF] - 0.157[5][LF] - 0.118[6][LF] - 0.98[7][LF] - 0.59[9][LF] - 0.39[8][LF] - 0.0[9][LF] -remove pointer 29, payload 344[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.885[4][LF] - 0.875[5][LF] - 0.816[2][LF] - 0.757[1][LF] - 0.698[2][LF] - 0.659[5][LF] - 0.639[4][LF] - 0.600[5][LF] - 0.580[3][LF] - 0.541[6][LF] - 0.521[5][LF] - 0.462[4][LF] - 0.403[5][LF] - 0.393[6][LF] -0.334[0][LF] - 0.275[1][LF] - 0.216[2][LF] - 0.177[4][LF] - 0.157[3][LF] - 0.118[4][LF] - 0.98[5][LF] - 0.59[7][LF] - 0.39[6][LF] - 0.0[7][LF] -remove pointer 30, payload 885[LF] -Tree look:[LF] - 0.1003[2][LF] - 0.944[3][LF] - 0.934[1][LF] -0.875[0][LF] - 0.816[1][LF] - 0.757[2][LF] - 0.698[4][LF] - 0.659[7][LF] - 0.639[6][LF] - 0.600[7][LF] - 0.580[5][LF] - 0.541[8][LF] - 0.521[7][LF] - 0.462[6][LF] - 0.403[7][LF] - 0.393[8][LF] - 0.334[3][LF] - 0.275[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.98[8][LF] - 0.59[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 31, payload 403[LF] -Tree look:[LF] - 0.1003[4][LF] - 0.944[5][LF] - 0.934[3][LF] - 0.875[2][LF] - 0.816[1][LF] - 0.757[2][LF] - 0.698[4][LF] - 0.659[6][LF] - 0.639[5][LF] - 0.600[6][LF] - 0.580[3][LF] - 0.541[6][LF] - 0.521[5][LF] - 0.462[4][LF] -0.393[0][LF] - 0.334[1][LF] - 0.275[2][LF] - 0.216[3][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 32, payload 944[LF] -Tree look:[LF] - 0.1003[1][LF] -0.934[0][LF] - 0.875[2][LF] - 0.816[1][LF] - 0.757[3][LF] - 0.698[5][LF] - 0.659[7][LF] - 0.639[6][LF] - 0.600[7][LF] - 0.580[4][LF] - 0.541[7][LF] - 0.521[6][LF] - 0.462[5][LF] - 0.393[2][LF] - 0.334[3][LF] - 0.275[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.98[8][LF] - 0.59[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 33, payload 462[LF] -Tree look:[LF] - 0.1003[3][LF] - 0.934[2][LF] - 0.875[3][LF] - 0.816[1][LF] - 0.757[3][LF] - 0.698[4][LF] - 0.659[6][LF] - 0.639[5][LF] - 0.600[6][LF] - 0.580[2][LF] - 0.541[4][LF] - 0.521[3][LF] -0.393[0][LF] - 0.334[1][LF] - 0.275[2][LF] - 0.216[3][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 34, payload 1003[LF] -Tree look:[LF] -0.934[0][LF] - 0.875[2][LF] - 0.816[1][LF] - 0.757[4][LF] - 0.698[5][LF] - 0.659[7][LF] - 0.639[6][LF] - 0.600[7][LF] - 0.580[3][LF] - 0.541[5][LF] - 0.521[4][LF] - 0.393[2][LF] - 0.334[3][LF] - 0.275[4][LF] - 0.216[5][LF] - 0.177[7][LF] - 0.157[6][LF] - 0.118[7][LF] - 0.98[8][LF] - 0.59[10][LF] - 0.39[9][LF] - 0.0[10][LF] -remove pointer 35, payload 521[LF] -Tree look:[LF] - 0.934[2][LF] - 0.875[3][LF] - 0.816[1][LF] - 0.757[3][LF] - 0.698[4][LF] - 0.659[6][LF] - 0.639[5][LF] - 0.600[6][LF] - 0.580[2][LF] - 0.541[3][LF] -0.393[0][LF] - 0.334[1][LF] - 0.275[2][LF] - 0.216[3][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[8][LF] - 0.39[7][LF] - 0.0[8][LF] -remove pointer 36, payload 39[LF] -Tree look:[LF] - 0.934[4][LF] - 0.875[5][LF] - 0.816[3][LF] - 0.757[5][LF] - 0.698[6][LF] - 0.659[8][LF] - 0.639[7][LF] - 0.600[8][LF] - 0.580[4][LF] - 0.541[5][LF] - 0.393[2][LF] - 0.334[1][LF] - 0.275[3][LF] - 0.216[2][LF] - 0.177[5][LF] - 0.157[4][LF] - 0.118[3][LF] - 0.98[4][LF] - 0.59[5][LF] -0.0[0][LF] -remove pointer 37, payload 580[LF] -Tree look:[LF] - 0.934[2][LF] - 0.875[3][LF] - 0.816[1][LF] - 0.757[2][LF] - 0.698[3][LF] - 0.659[5][LF] - 0.639[4][LF] - 0.600[5][LF] -0.541[0][LF] - 0.393[1][LF] - 0.334[2][LF] - 0.275[5][LF] - 0.216[4][LF] - 0.177[7][LF] - 0.157[6][LF] - 0.118[5][LF] - 0.98[6][LF] - 0.59[7][LF] - 0.0[3][LF] -remove pointer 38, payload 98[LF] -Tree look:[LF] - 0.934[4][LF] - 0.875[5][LF] - 0.816[3][LF] - 0.757[4][LF] - 0.698[5][LF] - 0.659[7][LF] - 0.639[6][LF] - 0.600[7][LF] - 0.541[2][LF] - 0.393[1][LF] - 0.334[2][LF] - 0.275[5][LF] - 0.216[4][LF] - 0.177[6][LF] - 0.157[5][LF] - 0.118[3][LF] -0.59[0][LF] - 0.0[1][LF] -remove pointer 39, payload 639[LF] -Tree look:[LF] - 0.934[3][LF] - 0.875[4][LF] - 0.816[2][LF] - 0.757[1][LF] - 0.698[2][LF] - 0.659[3][LF] -0.600[0][LF] - 0.541[1][LF] - 0.393[2][LF] - 0.334[4][LF] - 0.275[7][LF] - 0.216[6][LF] - 0.177[8][LF] - 0.157[7][LF] - 0.118[5][LF] - 0.59[3][LF] - 0.0[4][LF] -remove pointer 40, payload 157[LF] -Tree look:[LF] - 0.934[5][LF] - 0.875[6][LF] - 0.816[4][LF] - 0.757[3][LF] - 0.698[4][LF] - 0.659[5][LF] - 0.600[2][LF] - 0.541[1][LF] - 0.393[2][LF] - 0.334[3][LF] - 0.275[5][LF] - 0.216[4][LF] - 0.177[5][LF] -0.118[0][LF] - 0.59[1][LF] - 0.0[2][LF] -remove pointer 41, payload 698[LF] -Tree look:[LF] - 0.934[3][LF] - 0.875[4][LF] - 0.816[2][LF] - 0.757[1][LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[2][LF] - 0.393[4][LF] - 0.334[5][LF] - 0.275[7][LF] - 0.216[6][LF] - 0.177[7][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 42, payload 216[LF] -Tree look:[LF] - 0.934[5][LF] - 0.875[6][LF] - 0.816[4][LF] - 0.757[3][LF] - 0.659[2][LF] - 0.600[1][LF] - 0.541[2][LF] - 0.393[4][LF] - 0.334[3][LF] - 0.275[4][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] - 0.0[3][LF] -remove pointer 43, payload 757[LF] -Tree look:[LF] - 0.934[2][LF] - 0.875[3][LF] - 0.816[1][LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[3][LF] - 0.393[5][LF] - 0.334[4][LF] - 0.275[5][LF] - 0.177[2][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 44, payload 275[LF] -Tree look:[LF] - 0.934[4][LF] - 0.875[5][LF] - 0.816[3][LF] - 0.659[2][LF] - 0.600[1][LF] - 0.541[3][LF] - 0.393[4][LF] - 0.334[2][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] - 0.0[3][LF] -remove pointer 45, payload 816[LF] -Tree look:[LF] - 0.934[1][LF] - 0.875[2][LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[4][LF] - 0.393[5][LF] - 0.334[3][LF] - 0.177[2][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 46, payload 334[LF] -Tree look:[LF] - 0.934[3][LF] - 0.875[4][LF] - 0.659[2][LF] - 0.600[1][LF] - 0.541[2][LF] - 0.393[3][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] - 0.0[3][LF] -remove pointer 47, payload 875[LF] -Tree look:[LF] - 0.934[1][LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[3][LF] - 0.393[4][LF] - 0.177[2][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 48, payload 393[LF] -Tree look:[LF] - 0.934[3][LF] - 0.659[2][LF] - 0.600[1][LF] - 0.541[2][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] - 0.0[3][LF] -remove pointer 49, payload 934[LF] -Tree look:[LF] -0.659[0][LF] - 0.600[1][LF] - 0.541[3][LF] - 0.177[2][LF] - 0.118[3][LF] - 0.59[4][LF] - 0.0[5][LF] -remove pointer 0, payload 0[LF] -Tree look:[LF] - 0.659[1][LF] -0.600[0][LF] - 0.541[3][LF] - 0.177[2][LF] - 0.118[1][LF] - 0.59[2][LF] -remove pointer 1, payload 541[LF] -Tree look:[LF] - 0.659[2][LF] - 0.600[1][LF] -0.177[0][LF] - 0.118[1][LF] - 0.59[2][LF] -remove pointer 2, payload 59[LF] -Tree look:[LF] - 0.659[3][LF] - 0.600[2][LF] - 0.177[1][LF] -0.118[0][LF] -remove pointer 3, payload 600[LF] -Tree look:[LF] - 0.659[1][LF] -0.177[0][LF] - 0.118[1][LF] -remove pointer 4, payload 118[LF] -Tree look:[LF] - 0.659[1][LF] -0.177[0][LF] -remove pointer 5, payload 659[LF] -Tree look:[LF] -0.177[0][LF] -remove pointer 6, payload 177[LF] -Removing nodes not larger than 0[LF] -removed payload 0[0][LF] -Removing nodes not larger than 100[LF] -removed payload 39[0][LF] -removed payload 49[0][LF] -removed payload 49[1][LF] -removed payload 59[0][LF] -removed payload 59[1][LF] -removed payload 59[2][LF] -removed payload 98[0][LF] -removed payload 98[1][LF] -removed payload 98[2][LF] -Removing nodes not larger than 200[LF] -removed payload 108[0][LF] -removed payload 118[0][LF] -removed payload 118[1][LF] -removed payload 157[0][LF] -removed payload 157[1][LF] -removed payload 167[0][LF] -removed payload 167[1][LF] -removed payload 167[2][LF] -removed payload 177[0][LF] -Removing nodes not larger than 300[LF] -removed payload 216[0][LF] -removed payload 226[0][LF] -removed payload 226[1][LF] -removed payload 236[0][LF] -removed payload 236[1][LF] -removed payload 236[2][LF] -removed payload 275[0][LF] -removed payload 275[1][LF] -removed payload 275[2][LF] -removed payload 285[0][LF] -removed payload 295[0][LF] -removed payload 295[1][LF] -Removing nodes not larger than 400[LF] -removed payload 334[0][LF] -removed payload 334[1][LF] -removed payload 344[0][LF] -removed payload 344[1][LF] -removed payload 344[2][LF] -removed payload 354[0][LF] -removed payload 393[0][LF] -Removing nodes not larger than 500[LF] -removed payload 403[0][LF] -removed payload 403[1][LF] -removed payload 413[0][LF] -removed payload 413[1][LF] -removed payload 413[2][LF] -removed payload 462[0][LF] -removed payload 472[0][LF] -removed payload 472[1][LF] -Removing nodes not larger than 600[LF] -removed payload 521[0][LF] -removed payload 521[1][LF] -removed payload 521[2][LF] -removed payload 531[0][LF] -removed payload 541[0][LF] -removed payload 541[1][LF] -removed payload 580[0][LF] -removed payload 580[1][LF] -removed payload 590[0][LF] -removed payload 590[1][LF] -removed payload 590[2][LF] -removed payload 600[0][LF] -Removing nodes not larger than 700[LF] -removed payload 639[0][LF] -removed payload 649[0][LF] -removed payload 649[1][LF] -removed payload 659[0][LF] -removed payload 659[1][LF] -removed payload 659[2][LF] -removed payload 698[0][LF] -removed payload 698[1][LF] -removed payload 698[2][LF] -Removing nodes not larger than 800[LF] -removed payload 708[0][LF] -removed payload 718[0][LF] -removed payload 718[1][LF] -removed payload 757[0][LF] -removed payload 757[1][LF] -removed payload 767[0][LF] -removed payload 767[1][LF] -removed payload 767[2][LF] -removed payload 777[0][LF] -Removing nodes not larger than 900[LF] -removed payload 816[0][LF] -removed payload 826[0][LF] -removed payload 826[1][LF] -removed payload 836[0][LF] -removed payload 836[1][LF] -removed payload 836[2][LF] -removed payload 875[0][LF] -removed payload 875[1][LF] -removed payload 875[2][LF] -removed payload 885[0][LF] -removed payload 895[0][LF] -removed payload 895[1][LF] -Removing nodes not larger than 1000[LF] -removed payload 934[0][LF] -removed payload 934[1][LF] -removed payload 944[0][LF] -removed payload 944[1][LF] -removed payload 944[2][LF] -removed payload 954[0][LF] -Removing nodes not larger than 1100[LF] -removed payload 1003[0][LF] -removed payload 1003[1][LF] -removed payload 1013[0][LF] -removed payload 1013[1][LF] -removed payload 1013[2][LF] == Contents of files in the log/8/ dir after test 1309 === Start of file check-expected Result:[LF] 0.1013[3][LF] 0.1003[2][LF] 0.954[3][LF] 0.944[1][LF] 0.934[0][LF] 0.895[1][LF] 0.885[4][LF] 0.875[3][LF] 0.836[4][LF] 0.826[7][LF] 0.816[6][LF] 0.777[5][LF] 0.767[9][LF] 0.757[8][LF] 0.718[7][LF] 0.708[10][LF] 0.698[9][LF] 0.659[8][LF] 0.649[9][LF] 0.639[10][LF] 0.600[12][LF] 0.590[13][LF] 0.580[11][LF] 0.541[6][LF] 0.531[9][LF] 0.521[10][LF] 0.472[8][LF] 0.462[9][LF] 0.413[7][LF] 0.403[2][LF] 0.393[3][LF] 0.354[5][LF] 0.344[4][LF] 0.334[5][LF] 0.295[7][LF] 0.285[6][LF] 0.275[7][LF] 0.236[9][LF] 0.226[8][LF] 0.216[9][LF] 0.177[11][LF] 0.167[12][LF] 0.157[10][LF] 0.118[11][LF] 0.108[13][LF] 0.98[12][LF] 0.59[13][LF] 0.49[15][LF] 0.39[14][LF] 0.0[15][LF] Tree look:[LF] 0.1013[3][LF] 0.1003[2][LF] 0.954[3][LF] 0.944[1][LF] 0.934[0][LF] 0.895[1][LF] 0.885[4][LF] 0.875[3][LF] 0.836[4][LF] 0.826[7][LF] 0.816[6][LF] 0.777[5][LF] 0.767[9][LF] 0.757[8][LF] 0.718[7][LF] 0.708[10][LF] 0.698[9][LF] 0.659[8][LF] 0.649[9][LF] 0.639[10][LF] 0.600[12][LF] 0.590[13][LF] 0.580[11][LF] 0.541[6][LF] 0.531[9][LF] 0.521[10][LF] 0.472[8][LF] 0.462[9][LF] 0.413[7][LF] 0.403[2][LF] 0.393[3][LF] 0.354[5][LF] 0.344[4][LF] 0.334[5][LF] 0.295[7][LF] 0.285[6][LF] 0.275[7][LF] 0.236[9][LF] 0.226[8][LF] 0.216[9][LF] 0.177[11][LF] 0.167[12][LF] 0.157[10][LF] 0.118[11][LF] 0.108[13][LF] 0.98[12][LF] 0.59[13][LF] 0.49[15][LF] 0.39[14][LF] 0.0[15][LF] remove pointer 7, payload 718[LF] Tree look:[LF] 0.1013[5][LF] 0.1003[4][LF] 0.954[5][LF] 0.944[3][LF] 0.934[2][LF] 0.895[1][LF] 0.885[4][LF] 0.875[3][LF] 0.836[2][LF] 0.826[5][LF] 0.816[4][LF] 0.777[3][LF] 0.767[5][LF] 0.757[4][LF] 0.708[0][LF] 0.698[2][LF] 0.659[3][LF] 0.649[4][LF] 0.639[5][LF] 0.600[7][LF] 0.590[8][LF] 0.580[6][LF] 0.541[1][LF] 0.531[5][LF] 0.521[6][LF] 0.472[4][LF] 0.462[5][LF] 0.413[3][LF] 0.403[2][LF] 0.393[3][LF] 0.354[5][LF] 0.344[4][LF] 0.334[5][LF] 0.295[7][LF] 0.285[6][LF] 0.275[7][LF] 0.236[9][LF] 0.226[8][LF] 0.216[9][LF] 0.177[11][LF] 0.167[12][LF] 0.157[10][LF] 0.118[11][LF] 0.108[13][LF] 0.98[12][LF] 0.59[13][LF] 0.49[15][LF] 0.39[14][LF] 0.0[15][LF] remove pointer 8, payload 236[LF] Tree look:[LF] 0.1013[7][LF] 0.1003[6][LF] 0.954[7][LF] 0.944[5][LF] 0.934[4][LF] 0.895[3][LF] 0.885[6][LF] 0.875[5][LF] 0.836[4][LF] 0.826[7][LF] 0.816[6][LF] 0.777[5][LF] 0.767[7][LF] 0.757[6][LF] 0.708[2][LF] 0.698[3][LF] 0.659[4][LF] 0.649[5][LF] 0.639[6][LF] 0.600[8][LF] 0.590[9][LF] 0.580[7][LF] 0.541[1][LF] 0.531[6][LF] 0.521[7][LF] 0.472[5][LF] 0.462[6][LF] 0.413[4][LF] 0.403[3][LF] 0.393[2][LF] 0.354[5][LF] 0.344[4][LF] 0.334[3][LF] 0.295[6][LF] 0.285[5][LF] 0.275[4][LF] 0.226[0][LF] 0.216[1][LF] 0.177[3][LF] 0.167[4][LF] 0.157[2][LF] 0.118[3][LF] 0.108[5][LF] 0.98[4][LF] 0.59[5][LF] 0.49[7][LF] 0.39[6][LF] 0.0[7][LF] remove pointer 9, payload 777[LF] Tree look:[LF] 0.1013[6][LF] 0.1003[5][LF] 0.954[6][LF] 0.944[4][LF] 0.934[3][LF] 0.895[2][LF] 0.885[4][LF] 0.875[3][LF] 0.836[1][LF] 0.826[3][LF] 0.816[2][LF] 0.767[0][LF] 0.757[2][LF] 0.708[1][LF] 0.698[3][LF] 0.659[4][LF] 0.649[5][LF] 0.639[6][LF] 0.600[8][LF] 0.590[9][LF] 0.580[7][LF] 0.541[2][LF] 0.531[8][LF] 0.521[9][LF] 0.472[7][LF] 0.462[8][LF] 0.413[6][LF] 0.403[5][LF] 0.393[4][LF] 0.354[7][LF] 0.344[6][LF] 0.334[5][LF] 0.295[8][LF] 0.285[7][LF] 0.275[6][LF] 0.226[3][LF] 0.216[4][LF] 0.177[6][LF] 0.167[7][LF] 0.157[5][LF] 0.118[6][LF] 0.108[8][LF] 0.98[7][LF] 0.59[8][LF] 0.49[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 10, payload 295[LF] Tree look:[LF] 0.1013[8][LF] 0.1003[7][LF] 0.954[8][LF] 0.944[6][LF] 0.934[5][LF] 0.895[4][LF] 0.885[6][LF] 0.875[5][LF] 0.836[3][LF] 0.826[5][LF] 0.816[4][LF] 0.767[2][LF] 0.757[3][LF] 0.708[1][LF] 0.698[3][LF] 0.659[4][LF] 0.649[5][LF] 0.639[6][LF] 0.600[8][LF] 0.590[9][LF] 0.580[7][LF] 0.541[2][LF] 0.531[8][LF] 0.521[9][LF] 0.472[7][LF] 0.462[8][LF] 0.413[6][LF] 0.403[5][LF] 0.393[4][LF] 0.354[6][LF] 0.344[5][LF] 0.334[3][LF] 0.285[0][LF] 0.275[2][LF] 0.226[1][LF] 0.216[2][LF] 0.177[4][LF] 0.167[5][LF] 0.157[3][LF] 0.118[4][LF] 0.108[6][LF] 0.98[5][LF] 0.59[6][LF] 0.49[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 11, payload 836[LF] Tree look:[LF] 0.1013[5][LF] 0.1003[4][LF] 0.954[5][LF] 0.944[3][LF] 0.934[2][LF] 0.895[1][LF] 0.885[3][LF] 0.875[2][LF] 0.826[0][LF] 0.816[2][LF] 0.767[1][LF] 0.757[3][LF] 0.708[2][LF] 0.698[5][LF] 0.659[6][LF] 0.649[7][LF] 0.639[8][LF] 0.600[10][LF] 0.590[11][LF] 0.580[9][LF] 0.541[4][LF] 0.531[10][LF] 0.521[11][LF] 0.472[9][LF] 0.462[10][LF] 0.413[8][LF] 0.403[7][LF] 0.393[6][LF] 0.354[8][LF] 0.344[7][LF] 0.334[5][LF] 0.285[3][LF] 0.275[5][LF] 0.226[4][LF] 0.216[5][LF] 0.177[7][LF] 0.167[8][LF] 0.157[6][LF] 0.118[7][LF] 0.108[9][LF] 0.98[8][LF] 0.59[9][LF] 0.49[11][LF] 0.39[10][LF] 0.0[11][LF] remove pointer 12, payload 354[LF] Tree look:[LF] 0.1013[7][LF] 0.1003[6][LF] 0.954[7][LF] 0.944[5][LF] 0.934[4][LF] 0.895[3][LF] 0.885[5][LF] 0.875[4][LF] 0.826[2][LF] 0.816[3][LF] 0.767[1][LF] 0.757[3][LF] 0.708[2][LF] 0.698[4][LF] 0.659[5][LF] 0.649[6][LF] 0.639[7][LF] 0.600[9][LF] 0.590[10][LF] 0.580[8][LF] 0.541[3][LF] 0.531[8][LF] 0.521[9][LF] 0.472[7][LF] 0.462[8][LF] 0.413[6][LF] 0.403[5][LF] 0.393[4][LF] 0.344[0][LF] 0.334[1][LF] 0.285[2][LF] 0.275[4][LF] 0.226[3][LF] 0.216[4][LF] 0.177[6][LF] 0.167[7][LF] 0.157[5][LF] 0.118[6][LF] 0.108[8][LF] 0.98[7][LF] 0.59[8][LF] 0.49[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 13, payload 895[LF] Tree look:[LF] 0.1013[4][LF] 0.1003[3][LF] 0.954[4][LF] 0.944[2][LF] 0.934[1][LF] 0.885[0][LF] 0.875[2][LF] 0.826[1][LF] 0.816[3][LF] 0.767[2][LF] 0.757[5][LF] 0.708[4][LF] 0.698[6][LF] 0.659[7][LF] 0.649[8][LF] 0.639[9][LF] 0.600[11][LF] 0.590[12][LF] 0.580[10][LF] 0.541[5][LF] 0.531[10][LF] 0.521[11][LF] 0.472[9][LF] 0.462[10][LF] 0.413[8][LF] 0.403[7][LF] 0.393[6][LF] 0.344[3][LF] 0.334[4][LF] 0.285[5][LF] 0.275[7][LF] 0.226[6][LF] 0.216[7][LF] 0.177[9][LF] 0.167[10][LF] 0.157[8][LF] 0.118[9][LF] 0.108[11][LF] 0.98[10][LF] 0.59[11][LF] 0.49[13][LF] 0.39[12][LF] 0.0[13][LF] remove pointer 14, payload 413[LF] Tree look:[LF] 0.1013[6][LF] 0.1003[5][LF] 0.954[6][LF] 0.944[4][LF] 0.934[3][LF] 0.885[2][LF] 0.875[3][LF] 0.826[1][LF] 0.816[3][LF] 0.767[2][LF] 0.757[5][LF] 0.708[4][LF] 0.698[5][LF] 0.659[6][LF] 0.649[7][LF] 0.639[8][LF] 0.600[10][LF] 0.590[11][LF] 0.580[9][LF] 0.541[3][LF] 0.531[5][LF] 0.521[6][LF] 0.472[4][LF] 0.462[5][LF] 0.403[0][LF] 0.393[2][LF] 0.344[1][LF] 0.334[2][LF] 0.285[3][LF] 0.275[5][LF] 0.226[4][LF] 0.216[5][LF] 0.177[7][LF] 0.167[8][LF] 0.157[6][LF] 0.118[7][LF] 0.108[9][LF] 0.98[8][LF] 0.59[9][LF] 0.49[11][LF] 0.39[10][LF] 0.0[11][LF] remove pointer 15, payload 954[LF] Tree look:[LF] 0.1013[2][LF] 0.1003[1][LF] 0.944[0][LF] 0.934[1][LF] 0.885[3][LF] 0.875[4][LF] 0.826[2][LF] 0.816[5][LF] 0.767[4][LF] 0.757[7][LF] 0.708[6][LF] 0.698[7][LF] 0.659[8][LF] 0.649[9][LF] 0.639[10][LF] 0.600[12][LF] 0.590[13][LF] 0.580[11][LF] 0.541[5][LF] 0.531[7][LF] 0.521[8][LF] 0.472[6][LF] 0.462[7][LF] 0.403[3][LF] 0.393[5][LF] 0.344[4][LF] 0.334[5][LF] 0.285[6][LF] 0.275[8][LF] 0.226[7][LF] 0.216[8][LF] 0.177[10][LF] 0.167[11][LF] 0.157[9][LF] 0.118[10][LF] 0.108[12][LF] 0.98[11][LF] 0.59[12][LF] 0.49[14][LF] 0.39[13][LF] 0.0[14][LF] remove pointer 16, payload 472[LF] Tree look:[LF] 0.1013[4][LF] 0.1003[3][LF] 0.944[2][LF] 0.934[1][LF] 0.885[3][LF] 0.875[4][LF] 0.826[2][LF] 0.816[5][LF] 0.767[4][LF] 0.757[6][LF] 0.708[5][LF] 0.698[6][LF] 0.659[7][LF] 0.649[8][LF] 0.639[9][LF] 0.600[11][LF] 0.590[12][LF] 0.580[10][LF] 0.541[3][LF] 0.531[4][LF] 0.521[5][LF] 0.462[0][LF] 0.403[1][LF] 0.393[3][LF] 0.344[2][LF] 0.334[3][LF] 0.285[4][LF] 0.275[6][LF] 0.226[5][LF] 0.216[6][LF] 0.177[8][LF] 0.167[9][LF] 0.157[7][LF] 0.118[8][LF] 0.108[10][LF] 0.98[9][LF] 0.59[10][LF] 0.49[12][LF] 0.39[11][LF] 0.0[12][LF] remove pointer 17, payload 1013[LF] Tree look:[LF] 0.1003[0][LF] 0.944[2][LF] 0.934[1][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[6][LF] 0.767[5][LF] 0.757[7][LF] 0.708[6][LF] 0.698[7][LF] 0.659[8][LF] 0.649[9][LF] 0.639[10][LF] 0.600[12][LF] 0.590[13][LF] 0.580[11][LF] 0.541[4][LF] 0.531[5][LF] 0.521[6][LF] 0.462[2][LF] 0.403[3][LF] 0.393[5][LF] 0.344[4][LF] 0.334[5][LF] 0.285[6][LF] 0.275[8][LF] 0.226[7][LF] 0.216[8][LF] 0.177[10][LF] 0.167[11][LF] 0.157[9][LF] 0.118[10][LF] 0.108[12][LF] 0.98[11][LF] 0.59[12][LF] 0.49[14][LF] 0.39[13][LF] 0.0[14][LF] remove pointer 18, payload 531[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[5][LF] 0.767[4][LF] 0.757[6][LF] 0.708[5][LF] 0.698[6][LF] 0.659[7][LF] 0.649[8][LF] 0.639[9][LF] 0.600[11][LF] 0.590[12][LF] 0.580[10][LF] 0.541[2][LF] 0.521[0][LF] 0.462[1][LF] 0.403[2][LF] 0.393[4][LF] 0.344[3][LF] 0.334[4][LF] 0.285[5][LF] 0.275[7][LF] 0.226[6][LF] 0.216[7][LF] 0.177[9][LF] 0.167[10][LF] 0.157[8][LF] 0.118[9][LF] 0.108[11][LF] 0.98[10][LF] 0.59[11][LF] 0.49[13][LF] 0.39[12][LF] 0.0[13][LF] remove pointer 19, payload 49[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.885[6][LF] 0.875[7][LF] 0.826[5][LF] 0.816[7][LF] 0.767[6][LF] 0.757[8][LF] 0.708[7][LF] 0.698[8][LF] 0.659[9][LF] 0.649[10][LF] 0.639[11][LF] 0.600[13][LF] 0.590[14][LF] 0.580[12][LF] 0.541[4][LF] 0.521[2][LF] 0.462[1][LF] 0.403[3][LF] 0.393[4][LF] 0.344[2][LF] 0.334[4][LF] 0.285[3][LF] 0.275[6][LF] 0.226[5][LF] 0.216[4][LF] 0.177[7][LF] 0.167[8][LF] 0.157[6][LF] 0.118[5][LF] 0.108[8][LF] 0.98[7][LF] 0.59[6][LF] 0.39[0][LF] 0.0[1][LF] remove pointer 20, payload 590[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[4][LF] 0.767[2][LF] 0.757[5][LF] 0.708[4][LF] 0.698[3][LF] 0.659[5][LF] 0.649[4][LF] 0.639[5][LF] 0.600[6][LF] 0.580[0][LF] 0.541[2][LF] 0.521[1][LF] 0.462[2][LF] 0.403[5][LF] 0.393[6][LF] 0.344[4][LF] 0.334[6][LF] 0.285[5][LF] 0.275[8][LF] 0.226[7][LF] 0.216[6][LF] 0.177[9][LF] 0.167[10][LF] 0.157[8][LF] 0.118[7][LF] 0.108[10][LF] 0.98[9][LF] 0.59[8][LF] 0.39[3][LF] 0.0[4][LF] remove pointer 21, payload 108[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.885[6][LF] 0.875[7][LF] 0.826[5][LF] 0.816[6][LF] 0.767[4][LF] 0.757[7][LF] 0.708[6][LF] 0.698[5][LF] 0.659[7][LF] 0.649[6][LF] 0.639[7][LF] 0.600[8][LF] 0.580[2][LF] 0.541[3][LF] 0.521[1][LF] 0.462[2][LF] 0.403[5][LF] 0.393[6][LF] 0.344[4][LF] 0.334[5][LF] 0.285[3][LF] 0.275[7][LF] 0.226[6][LF] 0.216[5][LF] 0.177[7][LF] 0.167[8][LF] 0.157[6][LF] 0.118[4][LF] 0.98[0][LF] 0.59[2][LF] 0.39[1][LF] 0.0[2][LF] remove pointer 22, payload 649[LF] Tree look:[LF] 0.1003[3][LF] 0.944[4][LF] 0.934[2][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[4][LF] 0.767[1][LF] 0.757[4][LF] 0.708[3][LF] 0.698[2][LF] 0.659[3][LF] 0.639[0][LF] 0.600[2][LF] 0.580[1][LF] 0.541[3][LF] 0.521[2][LF] 0.462[4][LF] 0.403[7][LF] 0.393[8][LF] 0.344[6][LF] 0.334[7][LF] 0.285[5][LF] 0.275[9][LF] 0.226[8][LF] 0.216[7][LF] 0.177[9][LF] 0.167[10][LF] 0.157[8][LF] 0.118[6][LF] 0.98[3][LF] 0.59[5][LF] 0.39[4][LF] 0.0[5][LF] remove pointer 23, payload 167[LF] Tree look:[LF] 0.1003[5][LF] 0.944[6][LF] 0.934[4][LF] 0.885[6][LF] 0.875[7][LF] 0.826[5][LF] 0.816[6][LF] 0.767[3][LF] 0.757[6][LF] 0.708[5][LF] 0.698[4][LF] 0.659[5][LF] 0.639[2][LF] 0.600[3][LF] 0.580[1][LF] 0.541[3][LF] 0.521[2][LF] 0.462[4][LF] 0.403[6][LF] 0.393[7][LF] 0.344[5][LF] 0.334[6][LF] 0.285[3][LF] 0.275[6][LF] 0.226[5][LF] 0.216[4][LF] 0.177[5][LF] 0.157[0][LF] 0.118[1][LF] 0.98[2][LF] 0.59[4][LF] 0.39[3][LF] 0.0[4][LF] remove pointer 24, payload 708[LF] Tree look:[LF] 0.1003[3][LF] 0.944[4][LF] 0.934[2][LF] 0.885[4][LF] 0.875[5][LF] 0.826[3][LF] 0.816[4][LF] 0.767[1][LF] 0.757[2][LF] 0.698[0][LF] 0.659[2][LF] 0.639[1][LF] 0.600[3][LF] 0.580[2][LF] 0.541[5][LF] 0.521[4][LF] 0.462[6][LF] 0.403[8][LF] 0.393[9][LF] 0.344[7][LF] 0.334[8][LF] 0.285[5][LF] 0.275[8][LF] 0.226[7][LF] 0.216[6][LF] 0.177[7][LF] 0.157[3][LF] 0.118[4][LF] 0.98[5][LF] 0.59[7][LF] 0.39[6][LF] 0.0[7][LF] remove pointer 25, payload 226[LF] Tree look:[LF] 0.1003[5][LF] 0.944[6][LF] 0.934[4][LF] 0.885[6][LF] 0.875[7][LF] 0.826[5][LF] 0.816[6][LF] 0.767[3][LF] 0.757[4][LF] 0.698[2][LF] 0.659[3][LF] 0.639[1][LF] 0.600[3][LF] 0.580[2][LF] 0.541[5][LF] 0.521[4][LF] 0.462[5][LF] 0.403[7][LF] 0.393[8][LF] 0.344[6][LF] 0.334[7][LF] 0.285[3][LF] 0.275[4][LF] 0.216[0][LF] 0.177[2][LF] 0.157[1][LF] 0.118[2][LF] 0.98[3][LF] 0.59[5][LF] 0.39[4][LF] 0.0[5][LF] remove pointer 26, payload 767[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.885[3][LF] 0.875[4][LF] 0.826[2][LF] 0.816[3][LF] 0.757[0][LF] 0.698[1][LF] 0.659[3][LF] 0.639[2][LF] 0.600[5][LF] 0.580[4][LF] 0.541[7][LF] 0.521[6][LF] 0.462[7][LF] 0.403[9][LF] 0.393[10][LF] 0.344[8][LF] 0.334[9][LF] 0.285[5][LF] 0.275[6][LF] 0.216[3][LF] 0.177[5][LF] 0.157[4][LF] 0.118[5][LF] 0.98[6][LF] 0.59[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 27, payload 285[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.885[5][LF] 0.875[6][LF] 0.826[4][LF] 0.816[5][LF] 0.757[2][LF] 0.698[1][LF] 0.659[3][LF] 0.639[2][LF] 0.600[4][LF] 0.580[3][LF] 0.541[5][LF] 0.521[4][LF] 0.462[5][LF] 0.403[7][LF] 0.393[8][LF] 0.344[6][LF] 0.334[7][LF] 0.275[0][LF] 0.216[1][LF] 0.177[3][LF] 0.157[2][LF] 0.118[3][LF] 0.98[4][LF] 0.59[6][LF] 0.39[5][LF] 0.0[6][LF] remove pointer 28, payload 826[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.885[2][LF] 0.875[3][LF] 0.816[0][LF] 0.757[1][LF] 0.698[2][LF] 0.659[5][LF] 0.639[4][LF] 0.600[6][LF] 0.580[5][LF] 0.541[7][LF] 0.521[6][LF] 0.462[7][LF] 0.403[9][LF] 0.393[10][LF] 0.344[8][LF] 0.334[9][LF] 0.275[3][LF] 0.216[4][LF] 0.177[6][LF] 0.157[5][LF] 0.118[6][LF] 0.98[7][LF] 0.59[9][LF] 0.39[8][LF] 0.0[9][LF] remove pointer 29, payload 344[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.885[4][LF] 0.875[5][LF] 0.816[2][LF] 0.757[1][LF] 0.698[2][LF] 0.659[5][LF] 0.639[4][LF] 0.600[5][LF] 0.580[3][LF] 0.541[6][LF] 0.521[5][LF] 0.462[4][LF] 0.403[5][LF] 0.393[6][LF] 0.334[0][LF] 0.275[1][LF] 0.216[2][LF] 0.177[4][LF] 0.157[3][LF] 0.118[4][LF] 0.98[5][LF] 0.59[7][LF] 0.39[6][LF] 0.0[7][LF] remove pointer 30, payload 885[LF] Tree look:[LF] 0.1003[2][LF] 0.944[3][LF] 0.934[1][LF] 0.875[0][LF] 0.816[1][LF] 0.757[2][LF] 0.698[4][LF] 0.659[7][LF] 0.639[6][LF] 0.600[7][LF] 0.580[5][LF] 0.541[8][LF] 0.521[7][LF] 0.462[6][LF] 0.403[7][LF] 0.393[8][LF] 0.334[3][LF] 0.275[4][LF] 0.216[5][LF] 0.177[7][LF] 0.157[6][LF] 0.118[7][LF] 0.98[8][LF] 0.59[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 31, payload 403[LF] Tree look:[LF] 0.1003[4][LF] 0.944[5][LF] 0.934[3][LF] 0.875[2][LF] 0.816[1][LF] 0.757[2][LF] 0.698[4][LF] 0.659[6][LF] 0.639[5][LF] 0.600[6][LF] 0.580[3][LF] 0.541[6][LF] 0.521[5][LF] 0.462[4][LF] 0.393[0][LF] 0.334[1][LF] 0.275[2][LF] 0.216[3][LF] 0.177[5][LF] 0.157[4][LF] 0.118[5][LF] 0.98[6][LF] 0.59[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 32, payload 944[LF] Tree look:[LF] 0.1003[1][LF] 0.934[0][LF] 0.875[2][LF] 0.816[1][LF] 0.757[3][LF] 0.698[5][LF] 0.659[7][LF] 0.639[6][LF] 0.600[7][LF] 0.580[4][LF] 0.541[7][LF] 0.521[6][LF] 0.462[5][LF] 0.393[2][LF] 0.334[3][LF] 0.275[4][LF] 0.216[5][LF] 0.177[7][LF] 0.157[6][LF] 0.118[7][LF] 0.98[8][LF] 0.59[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 33, payload 462[LF] Tree look:[LF] 0.1003[3][LF] 0.934[2][LF] 0.875[3][LF] 0.816[1][LF] 0.757[3][LF] 0.698[4][LF] 0.659[6][LF] 0.639[5][LF] 0.600[6][LF] 0.580[2][LF] 0.541[4][LF] 0.521[3][LF] 0.393[0][LF] 0.334[1][LF] 0.275[2][LF] 0.216[3][LF] 0.177[5][LF] 0.157[4][LF] 0.118[5][LF] 0.98[6][LF] 0.59[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 34, payload 1003[LF] Tree look:[LF] 0.934[0][LF] 0.875[2][LF] 0.816[1][LF] 0.757[4][LF] 0.698[5][LF] 0.659[7][LF] 0.639[6][LF] 0.600[7][LF] 0.580[3][LF] 0.541[5][LF] 0.521[4][LF] 0.393[2][LF] 0.334[3][LF] 0.275[4][LF] 0.216[5][LF] 0.177[7][LF] 0.157[6][LF] 0.118[7][LF] 0.98[8][LF] 0.59[10][LF] 0.39[9][LF] 0.0[10][LF] remove pointer 35, payload 521[LF] Tree look:[LF] 0.934[2][LF] 0.875[3][LF] 0.816[1][LF] 0.757[3][LF] 0.698[4][LF] 0.659[6][LF] 0.639[5][LF] 0.600[6][LF] 0.580[2][LF] 0.541[3][LF] 0.393[0][LF] 0.334[1][LF] 0.275[2][LF] 0.216[3][LF] 0.177[5][LF] 0.157[4][LF] 0.118[5][LF] 0.98[6][LF] 0.59[8][LF] 0.39[7][LF] 0.0[8][LF] remove pointer 36, payload 39[LF] Tree look:[LF] 0.934[4][LF] 0.875[5][LF] 0.816[3][LF] 0.757[5][LF] 0.698[6][LF] 0.659[8][LF] 0.639[7][LF] 0.600[8][LF] 0.580[4][LF] 0.541[5][LF] 0.393[2][LF] 0.334[1][LF] 0.275[3][LF] 0.216[2][LF] 0.177[5][LF] 0.157[4][LF] 0.118[3][LF] 0.98[4][LF] 0.59[5][LF] 0.0[0][LF] remove pointer 37, payload 580[LF] Tree look:[LF] 0.934[2][LF] 0.875[3][LF] === File too long: 136 lines omitted here remove pointer 45, payload 816[LF] Tree look:[LF] 0.934[1][LF] 0.875[2][LF] 0.659[0][LF] 0.600[1][LF] 0.541[4][LF] 0.393[5][LF] 0.334[3][LF] 0.177[2][LF] 0.118[3][LF] 0.59[4][LF] 0.0[5][LF] remove pointer 46, payload 334[LF] Tree look:[LF] 0.934[3][LF] 0.875[4][LF] 0.659[2][LF] 0.600[1][LF] 0.541[2][LF] 0.393[3][LF] 0.177[0][LF] 0.118[1][LF] 0.59[2][LF] 0.0[3][LF] remove pointer 47, payload 875[LF] Tree look:[LF] 0.934[1][LF] 0.659[0][LF] 0.600[1][LF] 0.541[3][LF] 0.393[4][LF] 0.177[2][LF] 0.118[3][LF] 0.59[4][LF] 0.0[5][LF] remove pointer 48, payload 393[LF] Tree look:[LF] 0.934[3][LF] 0.659[2][LF] 0.600[1][LF] 0.541[2][LF] 0.177[0][LF] 0.118[1][LF] 0.59[2][LF] 0.0[3][LF] remove pointer 49, payload 934[LF] Tree look:[LF] 0.659[0][LF] 0.600[1][LF] 0.541[3][LF] 0.177[2][LF] 0.118[3][LF] 0.59[4][LF] 0.0[5][LF] remove pointer 0, payload 0[LF] Tree look:[LF] 0.659[1][LF] 0.600[0][LF] 0.541[3][LF] 0.177[2][LF] 0.118[1][LF] 0.59[2][LF] remove pointer 1, payload 541[LF] Tree look:[LF] 0.659[2][LF] 0.600[1][LF] 0.177[0][LF] 0.118[1][LF] 0.59[2][LF] remove pointer 2, payload 59[LF] Tree look:[LF] 0.659[3][LF] 0.600[2][LF] 0.177[1][LF] 0.118[0][LF] remove pointer 3, payload 600[LF] Tree look:[LF] 0.659[1][LF] 0.177[0][LF] 0.118[1][LF] remove pointer 4, payload 118[LF] Tree look:[LF] 0.659[1][LF] 0.177[0][LF] remove pointer 5, payload 659[LF] Tree look:[LF] 0.177[0][LF] remove pointer 6, payload 177[LF] Removing nodes not larger than 0[LF] removed payload 0[0][LF] Removing nodes not larger than 100[LF] removed payload 39[0][LF] removed payload 49[0][LF] removed payload 49[1][LF] removed payload 59[0][LF] removed payload 59[1][LF] removed payload 59[2][LF] removed payload 98[0][LF] removed payload 98[1][LF] removed payload 98[2][LF] Removing nodes not larger than 200[LF] removed payload 108[0][LF] removed payload 118[0][LF] removed payload 118[1][LF] removed payload 157[0][LF] removed payload 157[1][LF] removed payload 167[0][LF] removed payload 167[1][LF] removed payload 167[2][LF] removed payload 177[0][LF] Removing nodes not larger than 300[LF] removed payload 216[0][LF] removed payload 226[0][LF] removed payload 226[1][LF] removed payload 236[0][LF] removed payload 236[1][LF] removed payload 236[2][LF] removed payload 275[0][LF] removed payload 275[1][LF] removed payload 275[2][LF] removed payload 285[0][LF] removed payload 295[0][LF] removed payload 295[1][LF] Removing nodes not larger than 400[LF] removed payload 334[0][LF] removed payload 334[1][LF] removed payload 344[0][LF] removed payload 344[1][LF] removed payload 344[2][LF] removed payload 354[0][LF] removed payload 393[0][LF] Removing nodes not larger than 500[LF] removed payload 403[0][LF] removed payload 403[1][LF] removed payload 413[0][LF] removed payload 413[1][LF] removed payload 413[2][LF] removed payload 462[0][LF] removed payload 472[0][LF] removed payload 472[1][LF] Removing nodes not larger than 600[LF] removed payload 521[0][LF] removed payload 521[1][LF] removed payload 521[2][LF] removed payload 531[0][LF] removed payload 541[0][LF] removed payload 541[1][LF] removed payload 580[0][LF] removed payload 580[1][LF] removed payload 590[0][LF] removed payload 590[1][LF] removed payload 590[2][LF] removed payload 600[0][LF] Removing nodes not larger than 700[LF] removed payload 639[0][LF] removed payload 649[0][LF] removed payload 649[1][LF] removed payload 659[0][LF] removed payload 659[1][LF] removed payload 659[2][LF] removed payload 698[0][LF] removed payload 698[1][LF] removed payload 698[2][LF] Removing nodes not larger than 800[LF] removed payload 708[0][LF] removed payload 718[0][LF] removed payload 718[1][LF] removed payload 757[0][LF] removed payload 757[1][LF] removed payload 767[0][LF] removed payload 767[1][LF] removed payload 767[2][LF] removed payload 777[0][LF] Removing nodes not larger than 900[LF] removed payload 816[0][LF] removed payload 826[0][LF] removed payload 826[1][LF] removed payload 836[0][LF] removed payload 836[1][LF] removed payload 836[2][LF] removed payload 875[0][LF] removed payload 875[1][LF] removed payload 875[2][LF] removed payload 885[0][LF] removed payload 895[0][LF] removed payload 895[1][LF] Removing nodes not larger than 1000[LF] removed payload 934[0][LF] removed payload 934[1][LF] removed payload 944[0][LF] removed payload 944[1][LF] removed payload 944[2][LF] removed payload 954[0][LF] Removing nodes not larger than 1100[LF] removed payload 1003[0][LCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1331 ../src/curl -q --output log/2/curl1331.out --include --trace-ascii log/2/trace1331 --trace-time -U myname:mypassword -x 127.0.0.1:43789 http://z.x.com/1331 --proxy-anyauth -c log/2/dump1331 > log/2/stdout1331 2> log/2/stderr1331 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1332 ../src/curl -q --output log/1/curl1332.out --include --trace-ascii log/1/trace1332 --trace-time http://127.0.0.1:33601/blah/1332 -L -d "moo" --post303 > log/1/stdout1332 2> log/1/stderr1332 F] removed payload 1003[1][LF] removed payload 1013[0][LF] removed payload 1013[1][LF] removed payload 1013[2][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1309 ./unit/units unit1309 - > log/8/stdout1309 2> log/8/stderr1309 === End of file commands.log === Start of file server.cmd Testnum 1309 === End of file server.cmd === Start of file valgrind1309 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1309 test 1331...[HTTP --proxy-anyauth and 407 with cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1331 ../src/curl -q --output log/2/curl1331.out --include --trace-ascii log/2/trace1331 --trace-time -U myname:mypassword -x 127.0.0.1:43789 http://z.x.com/1331 --proxy-anyauth -c log/2/dump1331 > log/2/stdout1331 2> log/2/stderr1331 1331: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1331 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1331 ../src/curl -q --output log/2/curl1331.out --include --trace-ascii log/2/trace1331 --trace-time -U myname:mypassword -x 127.0.0.1:43789 http://z.x.com/1331 --proxy-anyauth -c log/2/dump1331 > log/2/stdout1331 2> log/2/stderr1331 === End of file commands.log === Start of file http_server.log 10:33:34.549648 ====> Client connect 10:33:34.550038 accept_connection 3 returned 4 10:33:34.550252 accept_connection 3 returned 0 10:33:34.550385 Read 93 bytes 10:33:34.550477 Process 93 bytes request 10:33:34.550583 Got request: GET /verifiedserver HTTP/1.1 10:33:34.550653 Are-we-friendly question received 10:33:34.550906 Wrote request (93 bytes) input to log/2/server.input 10:33:34.551116 Identifying ourselves as friends 10:33:34.552018 Response sent (56 bytes) and written to log/2/server.response 10:33:34.552175 special request received, no persistency 10:33:34.552266 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 46126 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1331 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1331 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1331 test 1332...[HTTP POST with 303 redirect and --post303] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1332 ../src/curl -q --output log/1/curl1332.out --include --trace-ascii log/1/trace1332 --trace-time http://127.0.0.1:33601/blah/1332 -L -d "moo" --post303 > log/1/stdout1332 2> log/1/stderr1332 1332: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1332 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1332 ../src/curl -q --output log/1/curl1332.out --include --trace-ascii log/1/trace1332 --trace-time http://127.0.0.1:33601/blah/1332 -L -d "moo" --post303 > log/1/stdout1332 2> log/1/stderr1332 === End of file commands.log === Start of file http_server.log 10:33:35.640121 ====> Client connect 10:33:35.640448 accept_connection 3 returned 4 10:33:35.640653 accept_connection 3 returned 0 10:33:35.640796 Read 93 bytes 10:33:35.640880 Process 93 bytes request 10:33:35.640968 Got request: GET /verifiedserver HTTP/1.1 10:33:35.641034 Are-we-friendly question received 10:33:35.641289 Wrote request (93 bytes) input to log/1/server.input 10:33:35.641574 Identifying ourselves as friends 10:33:35.642334 Response sent (57 bytes) and written to log/1/server.response 10:33:35.642523 special request received, no persistency 10:33:35.642630 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 59696 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of fiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1333 ../src/curl -q --output log/5/curl1333.out --include --trace-ascii log/5/trace1333 --trace-time -d "" --header="Transfer-Encoding: chunked" http://127.0.0.1:41733/1333 > log/5/stdout1333 2> log/5/stderr1333 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1335 ../src/curl -q --trace-ascii log/7/trace1335 --trace-time http://127.0.0.1:40129/1335 -O -D - --output-dir="log/7" > log/7/stdout1335 2> log/7/stderr1335 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1334 ../src/curl -q --trace-ascii log/3/trace1334 --trace-time http://127.0.0.1:36933/1334 -O -D log/3/heads1334 --output-dir log/3 > log/3/stdout1334 2> log/3/stderr1334 le http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1332 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1332 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1332 test 1333...[HTTP POST zero length, chunked-encoded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1333 ../src/curl -q --output log/5/curl1333.out --include --trace-ascii log/5/trace1333 --trace-time -d "" --header="Transfer-Encoding: chunked" http://127.0.0.1:41733/1333 > log/5/stdout1333 2> log/5/stderr1333 1333: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1333 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1333 ../src/curl -q --output log/5/curl1333.out --include --trace-ascii log/5/trace1333 --trace-time -d "" --header="Transfer-Encoding: chunked" http://127.0.0.1:41733/1333 > log/5/stdout1333 2> log/5/stderr1333 === End of file commands.log === Start of file http_server.log 10:33:35.820132 ====> Client connect 10:33:35.820449 accept_connection 3 returned 4 10:33:35.820646 accept_connection 3 returned 0 10:33:35.820795 Read 93 bytes 10:33:35.820901 Process 93 bytes request 10:33:35.820989 Got request: GET /verifiedserver HTTP/1.1 10:33:35.821072 Are-we-friendly question received 10:33:35.821350 Wrote request (93 bytes) input to log/5/server.input 10:33:35.821683 Identifying ourselves as friends 10:33:35.822513 Response sent (56 bytes) and written to log/5/server.response 10:33:35.822651 special request received, no persistency 10:33:35.822723 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 57790 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1333 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1333 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1333 test 1335...[HTTP GET with -O without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1335 ../src/curl -q --trace-ascii log/7/trace1335 --trace-time http://127.0.0.1:40129/1335 -O -D - --output-dir="log/7" > log/7/stdout1335 2> log/7/stderr1335 1335: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1335 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1335 ../src/curl -q --trace-ascii log/7/trace1335 --trace-time http://127.0.0.1:40129/1335 -O -D - --output-dir="log/7" > log/7/stdout1335 2> log/7/stderr1335 === End of file commands.log === Start of file http_server.log 10:33:35.000506 ====> Client connect 10:33:35.000935 accept_connection 3 returned 4 10:33:35.001175 accept_connection 3 returned 0 10:33:35.001354 Read 93 bytes 10:33:35.001663 Process 93 bytes request 10:33:35.001805 Got request: GET /verifiedserver HTTP/1.1 10:33:35.001895 Are-we-friendly question received 10:33:35.002192 Wrote request (93 bytes) input to log/7/server.input 10:33:35.002438 Identifying ourselves as friends 10:33:35.003427 Response sent (56 bytes) and written to log/7/server.response 10:33:35.003631 special request received, no persistency 10:33:35.003715 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 53236 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1335 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1335 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1336 ../src/curl -q --trace-ascii log/4/trace1336 --trace-time http://127.0.0.1:36757/1336 -O -D log/4/heads1336 --output-dir log/4 > log/4/stdout1336 2> log/4/stderr1336 for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1335 test 1334...[HTTP GET with -O without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1334 ../src/curl -q --trace-ascii log/3/trace1334 --trace-time http://127.0.0.1:36933/1334 -O -D log/3/heads1334 --output-dir log/3 > log/3/stdout1334 2> log/3/stderr1334 1334: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1334 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1334 ../src/curl -q --trace-ascii log/3/trace1334 --trace-time http://127.0.0.1:36933/1334 -O -D log/3/heads1334 --output-dir log/3 > log/3/stdout1334 2> log/3/stderr1334 === End of file commands.log === Start of file http_server.log 10:33:34.936977 ====> Client connect 10:33:34.937639 accept_connection 3 returned 4 10:33:34.937976 accept_connection 3 returned 0 10:33:34.938170 Read 93 bytes 10:33:34.938304 Process 93 bytes request 10:33:34.938438 Got request: GET /verifiedserver HTTP/1.1 10:33:34.938558 Are-we-friendly question received 10:33:34.938934 Wrote request (93 bytes) input to log/3/server.input 10:33:34.939284 Identifying ourselves as friends 10:33:34.940501 Response sent (56 bytes) and written to log/3/server.response 10:33:34.940754 special request received, no persistency 10:33:34.940859 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 49996 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1334 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1334 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1334 test 1336...[HTTP GET with -O and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1336 ../src/curl -q --trace-ascii log/4/trace1336 --trace-time http://127.0.0.1:36757/1336 -O -D log/4/heads1336 --output-dir log/4 > log/4/stdout1336 2> log/4/stderr1336 1336: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1336 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1336 ../src/curl -q --trace-ascii log/4/trace1336 --trace-time http://127.0.0.1:36757/1336 -O -D log/4/heads1336 --output-dir log/4 > log/4/stdout1336 2> log/4/stderr1336 === End of file commands.log === Start of file http_server.log 10:33:36.057965 ====> Client connect 10:33:36.058287 accept_connection 3 returned 4 10:33:36.058482 accept_connection 3 returned 0 10:33:36.058620 Read 93 bytes 10:33:36.058699 Process 93 bytes request 10:33:36.058784 Got request: GET /verifiedserver HTTP/1.1 10:33:36.058855 Are-we-friendly question received 10:33:36.059067 Wrote request (93 bytes) input to log/4/server.input 10:33:36.059218 Identifying ourselves as friends 10:33:36.059962 Response sent (56 bytes) and written to log/4/server.response 10:33:36.060107 special request received, no persistency 10:33:36.060188 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35366 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1336 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1336 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1337 ../src/curl -q --trace-ascii log/6/trace1337 --trace-time http://127.0.0.1:33363/1337 -O -D - --output-dir log/6 > log/6/stdout1337 2> log/6/stderr1337 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1338 ../src/curl -q --trace-ascii log/8/trace1338 --trace-time http://127.0.0.1:36007/1338 -J -O -D log/8/heads1338 --output-dir log/8 > log/8/stdout1338 2> log/8/stderr1338 Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1336 test 1337...[HTTP GET with -O and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1337 ../src/curl -q --trace-ascii log/6/trace1337 --trace-time http://127.0.0.1:33363/1337 -O -D - --output-dir log/6 > log/6/stdout1337 2> log/6/stderr1337 1337: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1337 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1337 ../src/curl -q --trace-ascii log/6/trace1337 --trace-time http://127.0.0.1:33363/1337 -O -D - --output-dir log/6 > log/6/stdout1337 2> log/6/stderr1337 === End of file commands.log === Start of file http_server.log 10:33:35.248995 ====> Client connect 10:33:35.253337 accept_connection 3 returned 4 10:33:35.253679 accept_connection 3 returned 0 10:33:35.254216 Read 93 bytes 10:33:35.254378 Process 93 bytes request 10:33:35.254474 Got request: GET /verifiedserver HTTP/1.1 10:33:35.254542 Are-we-friendly question received 10:33:35.254786 Wrote request (93 bytes) input to log/6/server.input 10:33:35.254942 Identifying ourselves as friends 10:33:35.255551 Response sent (56 bytes) and written to log/6/server.response 10:33:35.255685 special request received, no persistency 10:33:35.255748 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 35100 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1337 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1337 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1337 test 1338...[HTTP GET with -O -J without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1338 ../src/curl -q --trace-ascii log/8/trace1338 --trace-time http://127.0.0.1:36007/1338 -J -O -D log/8/heads1338 --output-dir log/8 > log/8/stdout1338 2> log/8/stderr1338 1338: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1338 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1338 ../src/curl -q --trace-ascii log/8/trace1338 --trace-time http://127.0.0.1:36007/1338 -J -O -D log/8/heads1338 --output-dir log/8 > log/8/stdout1338 2> log/8/stderr1338 === End of file commands.log === Start of file http_server.log 10:33:35.433965 ====> Client connect 10:33:35.434471 accept_connection 3 returned 4 10:33:35.434738 accept_connection 3 returned 0 10:33:35.434945 Read 93 bytes 10:33:35.435052 Process 93 bytes request 10:33:35.435143 Got request: GET /verifiedserver HTTP/1.1 10:33:35.435207 Are-we-friendly question received 10:33:35.435440 Wrote request (93 bytes) input to log/8/server.input 10:33:35.435623 Identifying ourselves as friends 10:33:35.436482 Response sent (56 bytes) and written to log/8/server.response 10:33:35.436694 special request received, no persistency 10:33:35.436796 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 48174 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1338 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1338 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1339 ../src/curl -q --trace-ascii log/2/trace1339 --trace-time http://127.0.0.1:43789/1339 -J -O -D - --output-dir log/2 > log/2/stdout1339 2> log/2/stderr1339 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1340 ../src/curl -q --trace-ascii log/1/trace1340 --trace-time http://127.0.0.1:33601/1340 -J -O -D log/1/heads1340 -w "curl saved to filename %{filename_effective}\n" --output-dir log/1 > log/1/stdout1340 2> log/1/stderr1340 ix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1338 test 1339...[HTTP GET with -O -J without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1339 ../src/curl -q --trace-ascii log/2/trace1339 --trace-time http://127.0.0.1:43789/1339 -J -O -D - --output-dir log/2 > log/2/stdout1339 2> log/2/stderr1339 1339: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1339 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1339 ../src/curl -q --trace-ascii log/2/trace1339 --trace-time http://127.0.0.1:43789/1339 -J -O -D - --output-dir log/2 > log/2/stdout1339 2> log/2/stderr1339 === End of file commands.log === Start of file http_server.log 10:33:35.654748 ====> Client connect 10:33:35.655125 accept_connection 3 returned 4 10:33:35.655331 accept_connection 3 returned 0 10:33:35.656136 Read 93 bytes 10:33:35.656301 Process 93 bytes request 10:33:35.656393 Got request: GET /verifiedserver HTTP/1.1 10:33:35.656472 Are-we-friendly question received 10:33:35.656759 Wrote request (93 bytes) input to log/2/server.input 10:33:35.656959 Identifying ourselves as friends 10:33:35.657776 Response sent (56 bytes) and written to log/2/server.response 10:33:35.657966 special request received, no persistency 10:33:35.658061 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 46132 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1339 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1339 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1339 test 1340...[HTTP GET with -O -J and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1340 ../src/curl -q --trace-ascii log/1/trace1340 --trace-time http://127.0.0.1:33601/1340 -J -O -D log/1/heads1340 -w "curl saved to filename %{filename_effective}\n" --output-dir log/1 > log/1/stdout1340 2> log/1/stderr1340 1340: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1340 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1340 ../src/curl -q --trace-ascii log/1/trace1340 --trace-time http://127.0.0.1:33601/1340 -J -O -D log/1/heads1340 -w "curl saved to filename %{filename_effective}\n" --output-dir log/1 > log/1/stdout1340 2> log/1/stderr1340 === End of file commands.log === Start of file http_server.log 10:33:36.704286 ====> Client connect 10:33:36.704716 accept_connection 3 returned 4 10:33:36.705001 accept_connection 3 returned 0 10:33:36.705164 Read 93 bytes 10:33:36.705264 Process 93 bytes request 10:33:36.705362 Got request: GET /verifiedserver HTTP/1.1 10:33:36.705543 Are-we-friendly question received 10:33:36.705914 Wrote request (93 bytes) input to log/1/server.input 10:33:36.706150 Identifying ourselves as friends 10:33:36.707094 Response sent (57 bytes) and written to log/1/server.response 10:33:36.707300 special request received, no persistency 10:33:36.707409 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 59698 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1340 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1340 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: vaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1341 ../src/curl -q --trace-ascii log/5/trace1341 --trace-time http://127.0.0.1:41733/1341 -J -O -D - -w "curl saved to filename %{filename_effective}\n" --output-dir log/5 > log/5/stdout1341 2> log/5/stderr1341 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1343 ../src/curl -q --trace-ascii log/3/trace1343 --trace-time http://127.0.0.1:36933/1343 -i -O -D - --output-dir log/3 > log/3/stdout1343 2> log/3/stderr1343 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1342 ../src/curl -q --trace-ascii log/7/trace1342 --trace-time http://127.0.0.1:40129/1342 -i -O -D log/7/heads1342 --output-dir log/7 > log/7/stdout1342 2> log/7/stderr1342 lgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1340 test 1341...[HTTP GET with -O -J and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1341 ../src/curl -q --trace-ascii log/5/trace1341 --trace-time http://127.0.0.1:41733/1341 -J -O -D - -w "curl saved to filename %{filename_effective}\n" --output-dir log/5 > log/5/stdout1341 2> log/5/stderr1341 1341: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1341 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1341 ../src/curl -q --trace-ascii log/5/trace1341 --trace-time http://127.0.0.1:41733/1341 -J -O -D - -w "curl saved to filename %{filename_effective}\n" --output-dir log/5 > log/5/stdout1341 2> log/5/stderr1341 === End of file commands.log === Start of file http_server.log 10:33:36.788361 ====> Client connect 10:33:36.788857 accept_connection 3 returned 4 10:33:36.789143 accept_connection 3 returned 0 10:33:36.789338 Read 93 bytes 10:33:36.790224 Process 93 bytes request 10:33:36.790510 Got request: GET /verifiedserver HTTP/1.1 10:33:36.790642 Are-we-friendly question received 10:33:36.791018 Wrote request (93 bytes) input to log/5/server.input 10:33:36.791292 Identifying ourselves as friends 10:33:36.792341 Response sent (56 bytes) and written to log/5/server.response 10:33:36.792546 special request received, no persistency 10:33:36.792647 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 57796 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1341 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1341 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1341 test 1343...[HTTP GET with -O -i without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1343 ../src/curl -q --trace-ascii log/3/trace1343 --trace-time http://127.0.0.1:36933/1343 -i -O -D - --output-dir log/3 > log/3/stdout1343 2> log/3/stderr1343 1343: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1343 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1343 ../src/curl -q --trace-ascii log/3/trace1343 --trace-time http://127.0.0.1:36933/1343 -i -O -D - --output-dir log/3 > log/3/stdout1343 2> log/3/stderr1343 === End of file commands.log === Start of file http_server.log 10:33:36.154514 ====> Client connect 10:33:36.154845 accept_connection 3 returned 4 10:33:36.155041 accept_connection 3 returned 0 10:33:36.155214 Read 93 bytes 10:33:36.155335 Process 93 bytes request 10:33:36.155444 Got request: GET /verifiedserver HTTP/1.1 10:33:36.155532 Are-we-friendly question received 10:33:36.155790 Wrote request (93 bytes) input to log/3/server.input 10:33:36.156010 Identifying ourselves as friends 10:33:36.156798 Response sent (56 bytes) and written to log/3/server.response 10:33:36.156933 special request received, no persistency 10:33:36.157000 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 50000 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1343 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1343 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1343 test 1342...[HTTP GET with -O -i without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1342 ../src/curl -q --trace-asCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1344 ../src/curl -q --trace-ascii log/4/trace1344 --trace-time http://127.0.0.1:36757/1344 -i -O -D log/4/heads1344 --output-dir log/4 > log/4/stdout1344 2> log/4/stderr1344 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1345 ../src/curl -q --trace-ascii log/6/trace1345 --trace-time http://127.0.0.1:33363/1345 -i -O -D - --output-dir log/6 > log/6/stdout1345 2> log/6/stderr1345 cii log/7/trace1342 --trace-time http://127.0.0.1:40129/1342 -i -O -D log/7/heads1342 --output-dir log/7 > log/7/stdout1342 2> log/7/stderr1342 1342: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1342 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1342 ../src/curl -q --trace-ascii log/7/trace1342 --trace-time http://127.0.0.1:40129/1342 -i -O -D log/7/heads1342 --output-dir log/7 > log/7/stdout1342 2> log/7/stderr1342 === End of file commands.log === Start of file http_server.log 10:33:36.116960 ====> Client connect 10:33:36.117332 accept_connection 3 returned 4 10:33:36.117675 accept_connection 3 returned 0 10:33:36.117843 Read 93 bytes 10:33:36.117949 Process 93 bytes request 10:33:36.118042 Got request: GET /verifiedserver HTTP/1.1 10:33:36.118119 Are-we-friendly question received 10:33:36.118380 Wrote request (93 bytes) input to log/7/server.input 10:33:36.118596 Identifying ourselves as friends 10:33:36.119441 Response sent (56 bytes) and written to log/7/server.response 10:33:36.119589 special request received, no persistency 10:33:36.119672 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 53244 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1342 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1342 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1342 test 1344...[HTTP GET with -O -i and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1344 ../src/curl -q --trace-ascii log/4/trace1344 --trace-time http://127.0.0.1:36757/1344 -i -O -D log/4/heads1344 --output-dir log/4 > log/4/stdout1344 2> log/4/stderr1344 1344: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1344 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1344 ../src/curl -q --trace-ascii log/4/trace1344 --trace-time http://127.0.0.1:36757/1344 -i -O -D log/4/heads1344 --output-dir log/4 > log/4/stdout1344 2> log/4/stderr1344 === End of file commands.log === Start of file http_server.log 10:33:37.215895 ====> Client connect 10:33:37.216276 accept_connection 3 returned 4 10:33:37.216521 accept_connection 3 returned 0 10:33:37.216683 Read 93 bytes 10:33:37.216787 Process 93 bytes request 10:33:37.216881 Got request: GET /verifiedserver HTTP/1.1 10:33:37.216959 Are-we-friendly question received 10:33:37.217203 Wrote request (93 bytes) input to log/4/server.input 10:33:37.217632 Identifying ourselves as friends 10:33:37.218577 Response sent (56 bytes) and written to log/4/server.response 10:33:37.218730 special request received, no persistency 10:33:37.218810 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35380 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1344 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1344 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1344 test 1345...[HTTP GET with -O -i and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1345 ../src/curl -q --trace-ascii log/6/trace1345 --trace-time http://127.0.0.1:33363/1345 -i -O -D - --output-dir log/6 > log/6/stdout1345 2> log/6/stderr1345 1345: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1345 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1346 ../src/curl -q --trace-ascii log/8/trace1346 --trace-time http://127.0.0.1:36007/1346 -i -O --output-dir log/8 > log/8/stdout1346 2> log/8/stderr1346 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1347 ../src/curl -q --trace-ascii log/2/trace1347 --trace-time http://127.0.0.1:43789/1347 -i -O --output-dir log/2 > log/2/stdout1347 2> log/2/stderr1347 et --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1345 ../src/curl -q --trace-ascii log/6/trace1345 --trace-time http://127.0.0.1:33363/1345 -i -O -D - --output-dir log/6 > log/6/stdout1345 2> log/6/stderr1345 === End of file commands.log === Start of file http_server.log 10:33:36.289067 ====> Client connect 10:33:36.289397 accept_connection 3 returned 4 10:33:36.289962 accept_connection 3 returned 0 10:33:36.290117 Read 93 bytes 10:33:36.290212 Process 93 bytes request 10:33:36.290305 Got request: GET /verifiedserver HTTP/1.1 10:33:36.290391 Are-we-friendly question received 10:33:36.290658 Wrote request (93 bytes) input to log/6/server.input 10:33:36.290888 Identifying ourselves as friends 10:33:36.291625 Response sent (56 bytes) and written to log/6/server.response 10:33:36.291766 special request received, no persistency 10:33:36.291839 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 35110 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1345 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1345 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1345 test 1346...[HTTP GET with -O -i without Content-Disposition, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1346 ../src/curl -q --trace-ascii log/8/trace1346 --trace-time http://127.0.0.1:36007/1346 -i -O --output-dir log/8 > log/8/stdout1346 2> log/8/stderr1346 1346: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1346 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1346 ../src/curl -q --trace-ascii log/8/trace1346 --trace-time http://127.0.0.1:36007/1346 -i -O --output-dir log/8 > log/8/stdout1346 2> log/8/stderr1346 === End of file commands.log === Start of file http_server.log 10:33:36.449913 ====> Client connect 10:33:36.450320 accept_connection 3 returned 4 10:33:36.450559 accept_connection 3 returned 0 10:33:36.450725 Read 93 bytes 10:33:36.450831 Process 93 bytes request 10:33:36.450925 Got request: GET /verifiedserver HTTP/1.1 10:33:36.451011 Are-we-friendly question received 10:33:36.451292 Wrote request (93 bytes) input to log/8/server.input 10:33:36.451529 Identifying ourselves as friends 10:33:36.454350 Response sent (56 bytes) and written to log/8/server.response 10:33:36.454573 special request received, no persistency 10:33:36.454684 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 48190 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1346 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1346 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1346 test 1347...[HTTP GET with -O -i and Content-Disposition, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1347 ../src/curl -q --trace-ascii log/2/trace1347 --trace-time http://127.0.0.1:43789/1347 -i -O --output-dir log/2 > log/2/stdout1347 2> log/2/stderr1347 1347: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1347 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1347 ../src/curl -q --trace-ascii log/2/trace1347 --trace-time http://127.0.0.1:43789/1347 -i -O --output-dir log/2 > log/2/stdout1347 2> log/2/stderr1347 === End of file commands.log === Start of file http_server.log 10:33:36.623099 ====> Client connect 10:33:36.623393 accept_connection 3 returned 4 10:33:36.623552 accept_connection 3 returned 0 10:33:36.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1348 ../src/curl -q --trace-ascii log/1/trace1348 --trace-time ftp://127.0.0.1:38733/path/file1348 -O --output-dir log/1 > log/1/stdout1348 2> log/1/stderr1348 623702 Read 93 bytes 10:33:36.623806 Process 93 bytes request 10:33:36.623892 Got request: GET /verifiedserver HTTP/1.1 10:33:36.623971 Are-we-friendly question received 10:33:36.624211 Wrote request (93 bytes) input to log/2/server.input 10:33:36.624378 Identifying ourselves as friends 10:33:36.625078 Response sent (56 bytes) and written to log/2/server.response 10:33:36.625238 special request received, no persistency 10:33:36.625317 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 46140 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1347 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1347 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1347 test 1348...[FTP download, file without Content-Disposition inside, using -O] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1348 ../src/curl -q --trace-ascii log/1/trace1348 --trace-time ftp://127.0.0.1:38733/path/file1348 -O --output-dir log/1 > log/1/stdout1348 2> log/1/stderr1348 1348: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1348 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1348 ../src/curl -q --trace-ascii log/1/trace1348 --trace-time ftp://127.0.0.1:38733/path/file1348 -O --output-dir log/1 > log/1/stdout1348 2> log/1/stderr1348 === End of file commands.log === Start of file ftp_server.log 10:33:37.117679 ====> Client connect 10:33:37.118968 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:37.127668 < "USER anonymous" 10:33:37.128301 > "331 We are happy you popped in![CR][LF]" 10:33:37.134520 < "PASS ftp@example.com" 10:33:37.135240 > "230 Welcome you silly person[CR][LF]" 10:33:37.142994 < "PWD" 10:33:37.143660 > "257 "/" is current directory[CR][LF]" 10:33:37.150649 < "EPSV" 10:33:37.151137 ====> Passive DATA channel requested by client 10:33:37.151537 DATA sockfilt for passive data channel starting... 10:33:37.172514 DATA sockfilt for passive data channel started (pid 145252) 10:33:37.176116 DATA sockfilt for passive data channel listens on port 46871 10:33:37.177018 > "229 Entering Passive Mode (|||46871|)[LF]" 10:33:37.177613 Client has been notified that DATA conn will be accepted on port 46871 10:33:37.186335 Client connects to port 46871 10:33:37.186976 ====> Client established passive DATA connection on port 46871 10:33:37.188262 < "TYPE I" 10:33:37.189066 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:37.210090 < "SIZE verifiedserver" 10:33:37.210993 > "213 17[CR][LF]" 10:33:37.216052 < "RETR verifiedserver" 10:33:37.216969 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:37.218321 =====> Closing passive DATA connection... 10:33:37.218892 Server disconnects passive DATA connection 10:33:37.221441 Server disconnected passive DATA connection 10:33:37.221998 DATA sockfilt for passive data channel quits (pid 145252) 10:33:37.224475 DATA sockfilt for passive data channel quit (pid 145252) 10:33:37.224982 =====> Closed passive DATA connection 10:33:37.225619 > "226 File transfer complete[CR][LF]" 10:33:37.268812 < "QUIT" 10:33:37.269215 > "221 bye bye baby[CR][LF]" 10:33:37.272263 MAIN sockfilt said DISC 10:33:37.272795 ====> Client disconnected 10:33:37.273684 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:36.784738 ====> Client connect 10:33:36.788921 Received DATA (on stdin) 10:33:36.789236 > 160 bytes data, server => client 10:33:36.789369 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:36.789560 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:36.789661 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:36.793624 < 16 bytes data, client => server 10:33:36.793926 'USER anonymous\r\n' 10:33:36.796281 Received DATA (on stdin) 10:33:36.796512 > 33 bytes data, server => client 10:33:36.796641 '331 We are happy you popped in!\r\n' 10:33:36.798046 < 22 bytes data, client => server 10:33:36.798295 'PASS ftp@example.com\r\n' 10:33:36.806321 Received DATA (on stdin) 10:33:36.806563 > 30 bytes data, server => client 10:33:36.806670 '230 Welcome you silly person\r\n' 10:33:36.808531 < 5 bytes data, client => server 10:33:36.808740 'PWD\r\n' 10:33:36.811614 Received DATA (on stdin) 10:33:36.811830 > 30 bytes data, server => client 10:33:36.811928 '257 "/" is current directory\r\n' 10:33:36.814465 < 6 bytes data, client => server 10:33:36.814728 'EPSV\r\n' 10:33:36.849536 Received DATA (on stdin) 10:33:36.849865 > 38 bytes data, server => client 10:33:36.850043 '229 Entering Passive Mode (|||46871|)\n' 10:33:36.852957 < 8 bytes data, client => server 10:33:36.853219 'TYPE I\r\n' 10:33:36.856995 Received DATA (on stdin) 10:33:36.857302 > 33 bytes data, server => client 10:33:36.857556 '200 I modify TYPE as you wanted\r\n' 10:33:36.865610 < 21 bytes data, client => server 10:33:36.865969 'SIZE verifiedserver\r\n' 10:33:36.879011 Received DATA (on stdin) 10:33:36.879311 > 8 bytes data, server => client 10:33:36.879492 '213 17\r\n' 10:33:36.881724 < 21 bytes data, client => server 10:33:36.882056 'RETR verifiedserver\r\n' 10:33:36.884909 Received DATA (on stdin) 10:33:36.885214 > 29 bytes data, server => client 10:33:36.885443 '150 Binary junk (17 bytes).\r\n' 10:33:36.893516 Received DATA (on stdin) 10:33:36.893770 > 28 bytes data, server => client 10:33:36.893889 '226 File transfer complete\r\n' 10:33:36.933598 < 6 bytes data, client => server 10:33:36.933793 'QUIT\r\n' 10:33:36.937152 Received DATA (on stdin) 10:33:36.937335 > 18 bytes data, server => client 10:33:36.937557 '221 bye bye baby\r\n' 10:33:36.939811 ====> Client disconnect 10:33:36.940767 RecCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1349 ../src/curl -q --trace-ascii log/5/trace1349 --trace-time ftp://127.0.0.1:40501/path/file1349 -O -D log/5/heads1349 --output-dir log/5 > log/5/stdout1349 2> log/5/stderr1349 eived ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:37.835580 Running IPv4 version 10:33:37.836254 Listening on port 46871 10:33:37.836753 Wrote pid 145252 to log/1/server/ftp_sockdata.pid 10:33:37.839847 Received PING (on stdin) 10:33:37.841214 Received PORT (on stdin) 10:33:37.852479 ====> Client connect 10:33:37.887506 Received DATA (on stdin) 10:33:37.887831 > 17 bytes data, server => client 10:33:37.888038 'WE ROOLZ: 79585\r\n' 10:33:37.888484 Received DISC (on stdin) 10:33:37.888799 ====> Client forcibly disconnected 10:33:37.890411 Received QUIT (on stdin) 10:33:37.890664 quits 10:33:37.891299 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1348 === End of file server.cmd === Start of file valgrind1348 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1348 test 1349...[FTP download, file without C-D inside, using -O -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1349 ../src/curl -q --trace-ascii log/5/trace1349 --trace-time ftp://127.0.0.1:40501/path/file1349 -O -D log/5/heads1349 --output-dir log/5 > log/5/stdout1349 2> log/5/stderr1349 1349: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1349 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1349 ../src/curl -q --trace-ascii log/5/trace1349 --trace-time ftp://127.0.0.1:40501/path/file1349 -O -D log/5/heads1349 --output-dir log/5 > log/5/stdout1349 2> log/5/stderr1349 === End of file commands.log === Start of file ftp_server.log 10:33:37.238392 ====> Client connect 10:33:37.240090 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:37.242643 < "USER anonymous" 10:33:37.243373 > "331 We are happy you popped in![CR][LF]" 10:33:37.247119 < "PASS ftp@example.com" 10:33:37.247693 > "230 Welcome you silly person[CR][LF]" 10:33:37.250435 < "PWD" 10:33:37.251014 > "257 "/" is current directory[CR][LF]" 10:33:37.253772 < "EPSV" 10:33:37.254223 ====> Passive DATA channel requested by client 10:33:37.254505 DATA sockfilt for passive data channel starting... 10:33:37.268569 DATA sockfilt for passive data channel started (pid 145289) 10:33:37.270600 DATA sockfilt for passive data channel listens on port 36943 10:33:37.271244 > "229 Entering Passive Mode (|||36943|)[LF]" 10:33:37.271529 Client has been notified that DATA conn will be accepted on port 36943 10:33:37.275207 Client connects to port 36943 10:33:37.275730 ====> Client established passive DATA connection on port 36943 10:33:37.276924 < "TYPE I" 10:33:37.277589 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:37.280586 < "SIZE verifiedserver" 10:33:37.281668 > "213 18[CR][LF]" 10:33:37.283608 < "RETR verifiedserver" 10:33:37.284164 > "150 Binary junk (18 bytes).[CR][LF]" 10:33:37.286532 =====> Closing passive DATA connection... 10:33:37.286924 Server disconnects passive DATA connection 10:33:37.288272 Server disconnected passive DATA connection 10:33:37.288766 DATA sockfilt for passive data channel quits (pid 145289) 10:33:37.291685 DATA sockfilt for passive data channel quit (pid 145289) 10:33:37.292118 =====> Closed passive DATA connection 10:33:37.292480 > "226 File transfer complete[CR][LF]" 10:33:37.334266 < "QUIT" 10:33:37.334735 > "221 bye bye baby[CR][LF]" 10:33:37.336169 MAIN sockfilt said DISC 10:33:37.336542 ====> Client disconnected 10:33:37.337081 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:37.905552 ====> Client connect 10:33:37.908063 Received DATA (on stdin) 10:33:37.908318 > 160 bytes data, server => client 10:33:37.908457 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:37.908548 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:37.908626 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:37.909364 < 16 bytes data, client => server 10:33:37.909649 'USER anonymous\r\n' 10:33:37.911323 Received DATA (on stdin) 10:33:37.911597 > 33 bytes data, server => client 10:33:37.911702 '331 We are happy you popped in!\r\n' 10:33:37.913661 < 22 bytes data, client => server 10:33:37.913949 'PASS ftp@example.com\r\n' 10:33:37.916012 Received DATA (on stdin) 10:33:37.916198 > 30 bytes data, server => client 10:33:37.916289 '230 Welcome you silly person\r\n' 10:33:37.917320 < 5 bytes data, client => server 10:33:37.917702 'PWD\r\n' 10:33:37.919450 Received DATA (on stdin) 10:33:37.919669 > 30 bytes data, server => client 10:33:37.919776 '257 "/" is current directory\r\n' 10:33:37.920555 < 6 bytes data, client => server 10:33:37.920730 'EPSV\r\n' 10:33:37.939927 Received DATA (on stdin) 10:33:37.940066 > 38 bytes data, server => client 10:33:37.940187 '229 Entering Passive Mode (|||36943|)\n' 10:33:37.941995 < 8 bytes data, client => server 10:33:37.942177 'TYPE I\r\n' 10:33:37.946155 Received DATA (on stdin) 10:33:37.946399 > 33 bytes data, server => client 10:33:37.946537 '200 I modify TYPE as you wanted\r\n' 10:33:37.947423 < 21 bytes data, client => server 10:33:37.947630 'SIZE verifiedserver\r\n' 10:33:37.949061 Received DATA (on stdin) 10:33:37.949251 > 8 bytes data, server => client 10:33:37.950090 '213 18\r\n' 10:33:37.950867 < 21 bytes data, client => server 10:33:37.951060 'RETR verifiedserver\r\n' 10:33:37.952125 Received DATA (on stdin) 10:33:37.952360 > 29 bytes data, server => client 10:33:37.952511 '150 Binary junk (18 bytes).\r\n' 10:33:37.960418 Received DATA (on stdin) 10:33:37.960653 > 28 bytes data, server => client 10:33:37.960777 '226 File transfer complete\r\n' 10:33:37.997620 < 6 bytes data, client => server 10:33:37.997999 'QUIT\r\n' 10:33:38.002730 Received DATA (on stdin) 10:33:38.002968 > 18 bytes data, server => client 10:33:38.003084 '221 bye bye baby\r\n' 10:33:38.003725 ====> Client disconnect 10:33:38.004496 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:37.932463 Running IPv4 version 10:33:37.933129 Listening on port 36943 10:33:37.935809 Wrote pid 145289 to log/5/server/ftp_sockdata.pid 10:33:37.936068 Received PING (on stdin) 10:33:37.936994 Received PORT (on stdin) 10:33:37.942664 ====> Client connect 10:33:37.952619 Received DATA (on stdin) 10:3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1350 ../src/curl -q --trace-ascii log/3/trace1350 --trace-time ftp://127.0.0.1:33831/path/file1350 -O -D - --output-dir log/3 > log/3/stdout1350 2> log/3/stderr1350 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1351 ../src/curl -q --trace-ascii log/7/trace1351 --trace-time ftp://127.0.0.1:38253/path/file1351 -O -J -D log/7/heads1351 --output-dir log/7 > log/7/stdout1351 2> log/7/stderr1351 3:37.952774 > 18 bytes data, server => client 10:33:37.953044 'WE ROOLZ: 131615\r\n' 10:33:37.955288 Received DISC (on stdin) 10:33:37.955537 ====> Client forcibly disconnected 10:33:37.957216 Received QUIT (on stdin) 10:33:37.957595 quits 10:33:37.958184 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1349 === End of file server.cmd === Start of file valgrind1349 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1349 test 1350...[FTP download, file without C-D inside, using -O -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1350 ../src/curl -q --trace-ascii log/3/trace1350 --trace-time ftp://127.0.0.1:33831/path/file1350 -O -D - --output-dir log/3 > log/3/stdout1350 2> log/3/stderr1350 1350: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1350 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1350 ../src/curl -q --trace-ascii log/3/trace1350 --trace-time ftp://127.0.0.1:33831/path/file1350 -O -D - --output-dir log/3 > log/3/stdout1350 2> log/3/stderr1350 === End of file commands.log === Start of file ftp_server.log 10:33:37.479025 ====> Client connect 10:33:37.487064 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:37.492467 < "USER anonymous" 10:33:37.493188 > "331 We are happy you popped in![CR][LF]" 10:33:37.499522 < "PASS ftp@example.com" 10:33:37.500100 > "230 Welcome you silly person[CR][LF]" 10:33:37.502417 < "PWD" 10:33:37.503210 > "257 "/" is current directory[CR][LF]" 10:33:37.505379 < "EPSV" 10:33:37.505953 ====> Passive DATA channel requested by client 10:33:37.506310 DATA sockfilt for passive data channel starting... 10:33:37.523822 DATA sockfilt for passive data channel started (pid 145372) 10:33:37.528261 DATA sockfilt for passive data channel listens on port 33477 10:33:37.528900 > "229 Entering Passive Mode (|||33477|)[LF]" 10:33:37.529234 Client has been notified that DATA conn will be accepted on port 33477 10:33:37.534800 Client connects to port 33477 10:33:37.535353 ====> Client established passive DATA connection on port 33477 10:33:37.536309 < "TYPE I" 10:33:37.536821 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:37.544065 < "SIZE verifiedserver" 10:33:37.544592 > "213 17[CR][LF]" 10:33:37.552119 < "RETR verifiedserver" 10:33:37.552767 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:37.553712 =====> Closing passive DATA connection... 10:33:37.554030 Server disconnects passive DATA connection 10:33:37.555739 Server disconnected passive DATA connection 10:33:37.556204 DATA sockfilt for passive data channel quits (pid 145372) 10:33:37.558627 DATA sockfilt for passive data channel quit (pid 145372) 10:33:37.559132 =====> Closed passive DATA connection 10:33:37.559644 > "226 File transfer complete[CR][LF]" 10:33:37.603588 < "QUIT" 10:33:37.605250 > "221 bye bye baby[CR][LF]" 10:33:37.609641 MAIN sockfilt said DISC 10:33:37.610182 ====> Client disconnected 10:33:37.610842 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:37.145739 ====> Client connect 10:33:37.155018 Received DATA (on stdin) 10:33:37.155339 > 160 bytes data, server => client 10:33:37.155550 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:37.155723 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:37.155879 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:37.159175 < 16 bytes data, client => server 10:33:37.159416 'USER anonymous\r\n' 10:33:37.165498 Received DATA (on stdin) 10:33:37.165759 > 33 bytes data, server => client 10:33:37.165872 '331 We are happy you popped in!\r\n' 10:33:37.166691 < 22 bytes data, client => server 10:33:37.166913 'PASS ftp@example.com\r\n' 10:33:37.168041 Received DATA (on stdin) 10:33:37.168239 > 30 bytes data, server => client 10:33:37.168335 '230 Welcome you silly person\r\n' 10:33:37.169238 < 5 bytes data, client => server 10:33:37.169550 'PWD\r\n' 10:33:37.171182 Received DATA (on stdin) 10:33:37.171432 > 30 bytes data, server => client 10:33:37.171552 '257 "/" is current directory\r\n' 10:33:37.172469 < 6 bytes data, client => server 10:33:37.172745 'EPSV\r\n' 10:33:37.198164 Received DATA (on stdin) 10:33:37.198422 > 38 bytes data, server => client 10:33:37.198546 '229 Entering Passive Mode (|||33477|)\n' 10:33:37.202415 < 8 bytes data, client => server 10:33:37.202582 'TYPE I\r\n' 10:33:37.209599 Received DATA (on stdin) 10:33:37.209803 > 33 bytes data, server => client 10:33:37.209914 '200 I modify TYPE as you wanted\r\n' 10:33:37.210808 < 21 bytes data, client => server 10:33:37.210987 'SIZE verifiedserver\r\n' 10:33:37.212543 Received DATA (on stdin) 10:33:37.212727 > 8 bytes data, server => client 10:33:37.212822 '213 17\r\n' 10:33:37.213818 < 21 bytes data, client => server 10:33:37.213973 'RETR verifiedserver\r\n' 10:33:37.221110 Received DATA (on stdin) 10:33:37.221300 > 29 bytes data, server => client 10:33:37.221499 '150 Binary junk (17 bytes).\r\n' 10:33:37.228285 Received DATA (on stdin) 10:33:37.228503 > 28 bytes data, server => client 10:33:37.228609 '226 File transfer complete\r\n' 10:33:37.270146 < 6 bytes data, client => server 10:33:37.270448 'QUIT\r\n' 10:33:37.272071 Received DATA (on stdin) 10:33:37.272330 > 18 bytes data, server => client 10:33:37.272565 '221 bye bye baby\r\n' 10:33:37.274934 ====> Client disconnect 10:33:37.279234 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:37.188529 Running IPv4 version 10:33:37.189182 Listening on port 33477 10:33:37.191125 Wrote pid 145372 to log/3/server/ftp_sockdata.pid 10:33:37.191354 Received PING (on stdin) 10:33:37.195292 Received PORT (on stdin) 10:33:37.201899 ====> Client connect 10:33:37.221967 Received DATA (on stdin) 10:33:37.222114 > 17 bytes data, server => client 10:33:37.222207 'WE ROOLZ: 79555\r\n' 10:33:37.222533 Received DISC (on stdin) 10:33:37.222709 ====> Client forcibly disconnected 10:33:37.224727 Received QUIT (on stdin) 10:33:37.224947 quits 10:33:37.225565 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1350 === End of file server.cmd === Start of file valgrind1350 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1350 test 1351...[FTP download, file without C-D inside, using -O -J -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1351 ../src/curl -q --trace-ascii log/7/trace1351 --trace-time ftp://127.0.0.1:38253/path/file1351 -O -J -D log/7/heads1351 --output-dir log/7 > log/7/stdout1351 2> log/7/stderr1351 1351: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1351 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1351 ../src/curl -q --trace-ascii log/7/trace1351 --trace-time ftp://127.0.0.1:38253/path/file1351 -O -J -D log/7/heads1351 --output-dir log/7 > log/7/stdout1351 2> log/7/stderr1351 === End of file commands.log === Start of file ftp_server.log 10:33:37.535170 ====> Client connect 10:33:37.536497 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:37.539803 < "USER anonymous" 10:33:37.540875 > "331 We are happy you popped in![CR][LF]" 10:33:37.547006 < "PASS ftp@example.com" 10:33:37.548489 > "230 Welcome you silly person[CR][LF]" 10:33:37.550139 < "PWD" 10:33:37.551204 > "257 "/" is current directory[CR][LF]" 10:33:37.554243 < "EPSV" 10:33:37.554615 ====> Passive DATA channel requested by client 10:33:37.554857 DATA sockfilt for passive data channel starting... 10:33:37.571307 DATA sockfilt for passive data channel started (pid 145397) 10:33:37.572651 DATA sockfilt for passive data channel listens on port 38365 10:33:37.573287 > "229 Entering Passive Mode (|||38365|)[LF]" 10:33:37.573859 Client has been notified that DATA conn will be accepted on port 38365 10:33:37.575320 Client connects to port 38365 10:33:37.575777 ====> Client established passive DATA connection on port 38365 10:33:37.577129 < "TYPE I" 10:33:37.577831 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:37.581923 < "SIZE verifiedserver" 10:33:37.582581 > "213 17[CR][LF]" 10:33:37.588114 < "RETR verifiedserver" 10:33:37.588712 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:37.589702 =====> Closing passive DATA connection... 10:33:37.590153 Server disconnects passive DATA connection 10:33:37.591052 Server disconnected passive DATA connection 10:33:37.591503 DATA sockfilt for passive data channel quits (pid 145397) 10:33:37.599467 DATA sockfilt for passive data channel quit (pid 145397) 10:33:37.599970 =====> Closed passive DATA connection 10:33:37.600531 > "226 File transfer complete[CR][LF]" 10:33:37.638827 < "QUIT" 10:33:37.639431 > "221 bye bye baby[CR][LF]" 10:33:37.640874 MAIN sockfilt said DISC 10:33:37.641357 ====> Client disconnected 10:33:37.642217 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:38.202388 ====> Client connect 10:33:38.204909 Received DATA (on stdin) 10:33:38.205127 > 160 bytes data, server => client 10:33:38.205260 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:38.205353 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:38.205552 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:38.206388 < 16 bytes data, client => server 10:33:38.206598 'USER anonymous\r\n' 10:33:38.208274 Received DATA (on stdin) 10:33:38.208498 > 33 bytes data, server => client 10:33:38.209258 '331 We are happy you popped in!\r\n' 10:33:38.213737 < 22 bytes data, client => server 10:33:38.213973 'PASS ftp@example.com\r\n' 10:33:38.215463 Received DATA (on stdin) 10:33:38.215691 > 30 bytes data, server => client 10:33:38.215896 '230 Welcome you silly person\r\n' 10:33:38.216637 < 5 bytes data, client => server 10:33:38.216837 'PWD\r\n' 10:33:38.218664 Received DATA (on stdin) 10:33:38.218859 > 30 bytes data, server => client 10:33:38.219609 '257 "/" is current directory\r\n' 10:33:38.221160 < 6 bytes data, client => server 10:33:38.221315 'EPSV\r\n' 10:33:38.241257 Received DATA (on stdin) 10:33:38.241560 > 38 bytes data, server => client 10:33:38.241685 '229 Entering Passive Mode (|||38365|)\n' 10:33:38.244278 < 8 bytes data, client => server 10:33:38.244487 'TYPE I\r\n' 10:33:38.245787 Received DATA (on stdin) 10:33:38.245984 > 33 bytes data, server => client 10:33:38.246081 '200 I modify TYPE as you wanted\r\n' 10:33:38.248473 < 21 bytes data, client => server 10:33:38.248732 'SIZE verifiedserver\r\n' 10:33:38.253720 Received DATA (on stdin) 10:33:38.253948 > 8 bytes data, server => client 10:33:38.254042 '213 17\r\n' 10:33:38.254873 < 21 bytes data, client => server 10:33:38.255062 'RETR verifiedserver\r\n' 10:33:38.256652 Received DATA (on stdin) 10:33:38.256862 > 29 bytes data, server => client 10:33:38.256983 '150 Binary junk (17 bytes).\r\n' 10:33:38.273905 Received DATA (on stdin) 10:33:38.274191 > 28 bytes data, server => client 10:33:38.274321 '226 File transfer complete\r\n' 10:33:38.303316 < 6 bytes data, client => server 10:33:38.303633 'QUIT\r\n' 10:33:38.307417 Received DATA (on stdin) 10:33:38.307606 > 18 bytes data, server => client 10:33:38.307714 '221 bye bye baby\r\n' 10:33:38.308399 ====> Client disconnect 10:33:38.309334 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:37.236649 Running IPv4 version 10:33:37.237254 Listening on port 38365 10:33:37.238696 Wrote pid 145397 to log/7/server/ftp_sockdata.pid 10:33:37.238907 Received PING (on stdin) 10:33:37.239809 Received PORT (on stdin) 10:33:37.242854 ====> Client connect 10:33:37.257838 Received DATA (on stdin) 10:33:37.258043 > 17 bytes data, server => client 10:33:37.258169 'WE ROOLZ: 79543\r\n' 10:33:37.258578 Received DISC (on stdin) 10:33:37.258825 ====> Client forcibly disconnected 10:33:37.265210 Received QUIT (on stdin) 10:33:37.265665 quits 10:33:37.266248 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1351 === End of file server.cmd === Start of file valgrind1351 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1352 ../src/curl -q --trace-ascii log/4/trace1352 --trace-time ftp://127.0.0.1:42635/path/file1352 -O -J -D - --output-dir log/4 > log/4/stdout1352 2> log/4/stderr1352 whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1351 test 1352...[FTP download, file without C-D inside, using -O -J -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1352 ../src/curl -q --trace-ascii log/4/trace1352 --trace-time ftp://127.0.0.1:42635/path/file1352 -O -J -D - --output-dir log/4 > log/4/stdout1352 2> log/4/stderr1352 1352: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1352 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1352 ../src/curl -q --trace-ascii log/4/trace1352 --trace-time ftp://127.0.0.1:42635/path/file1352 -O -J -D - --output-dir log/4 > log/4/stdout1352 2> log/4/stderr1352 === End of file commands.log === Start of file ftp_server.log 10:33:37.622589 ====> Client connect 10:33:37.623894 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:37.626885 < "USER anonymous" 10:33:37.627497 > "331 We are happy you popped in![CR][LF]" 10:33:37.630629 < "PASS ftp@example.com" 10:33:37.631393 > "230 Welcome you silly person[CR][LF]" 10:33:37.636542 < "PWD" 10:33:37.637153 > "257 "/" is current directory[CR][LF]" 10:33:37.642580 < "EPSV" 10:33:37.643018 ====> Passive DATA channel requested by client 10:33:37.643317 DATA sockfilt for passive data channel starting... 10:33:37.661156 DATA sockfilt for passive data channel started (pid 145432) 10:33:37.662641 DATA sockfilt for passive data channel listens on port 43463 10:33:37.663243 > "229 Entering Passive Mode (|||43463|)[LF]" 10:33:37.663577 Client has been notified that DATA conn will be accepted on port 43463 10:33:37.666564 Client connects to port 43463 10:33:37.667034 ====> Client established passive DATA connection on port 43463 10:33:37.668108 < "TYPE I" 10:33:37.668593 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:37.672012 < "SIZE verifiedserver" 10:33:37.672572 > "213 17[CR][LF]" 10:33:37.676169 < "RETR verifiedserver" 10:33:37.676697 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:37.677575 =====> Closing passive DATA connection... 10:33:37.677954 Server disconnects passive DATA connection 10:33:37.683256 Server disconnected passive DATA connection 10:33:37.683788 DATA sockfilt for passive data channel quits (pid 145432) 10:33:37.686636 DATA sockfilt for passive data channel quit (pid 145432) 10:33:37.686970 =====> Closed passive DATA connection 10:33:37.687283 > "226 File transfer complete[CR][LF]" 10:33:37.730321 < "QUIT" 10:33:37.730747 > "221 bye bye baby[CR][LF]" 10:33:37.736958 MAIN sockfilt said DISC 10:33:37.737449 ====> Client disconnected 10:33:37.738252 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:38.289338 ====> Client connect 10:33:38.291866 Received DATA (on stdin) 10:33:38.292598 > 160 bytes data, server => client 10:33:38.292773 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:38.292873 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:38.292950 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:38.293882 < 16 bytes data, client => server 10:33:38.294105 'USER anonymous\r\n' 10:33:38.295448 Received DATA (on stdin) 10:33:38.295685 > 33 bytes data, server => client 10:33:38.295805 '331 We are happy you popped in!\r\n' 10:33:38.296701 < 22 bytes data, client => server 10:33:38.296940 'PASS ftp@example.com\r\n' 10:33:38.299345 Received DATA (on stdin) 10:33:38.299626 > 30 bytes data, server => client 10:33:38.299826 '230 Welcome you silly person\r\n' 10:33:38.301119 < 5 bytes data, client => server 10:33:38.301926 'PWD\r\n' 10:33:38.305111 Received DATA (on stdin) 10:33:38.305371 > 30 bytes data, server => client 10:33:38.305844 '257 "/" is current directory\r\n' 10:33:38.307036 < 6 bytes data, client => server 10:33:38.307253 'EPSV\r\n' 10:33:38.331184 Received DATA (on stdin) 10:33:38.331455 > 38 bytes data, server => client 10:33:38.331637 '229 Entering Passive Mode (|||43463|)\n' 10:33:38.333987 < 8 bytes data, client => server 10:33:38.334274 'TYPE I\r\n' 10:33:38.337805 Received DATA (on stdin) 10:33:38.338025 > 33 bytes data, server => client 10:33:38.338159 '200 I modify TYPE as you wanted\r\n' 10:33:38.339086 < 21 bytes data, client => server 10:33:38.339296 'SIZE verifiedserver\r\n' 10:33:38.340525 Received DATA (on stdin) 10:33:38.340771 > 8 bytes data, server => client 10:33:38.340876 '213 17\r\n' 10:33:38.343432 < 21 bytes data, client => server 10:33:38.343677 'RETR verifiedserver\r\n' 10:33:38.345663 Received DATA (on stdin) 10:33:38.345848 > 29 bytes data, server => client 10:33:38.345976 '150 Binary junk (17 bytes).\r\n' 10:33:38.356468 Received DATA (on stdin) 10:33:38.356633 > 28 bytes data, server => client 10:33:38.356713 '226 File transfer complete\r\n' 10:33:38.394345 < 6 bytes data, client => server 10:33:38.394607 'QUIT\r\n' 10:33:38.398708 Received DATA (on stdin) 10:33:38.398866 > 18 bytes data, server => client 10:33:38.398958 '221 bye bye baby\r\n' 10:33:38.404443 ====> Client disconnect 10:33:38.406466 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:37.326237 Running IPv4 version 10:33:37.327215 Listening on port 43463 10:33:37.327971 Wrote pid 145432 to log/4/server/ftp_sockdata.pid 10:33:37.328539 Received PING (on stdin) 10:33:37.329787 Received PORT (on stdin) 10:33:37.333536 ====> Client connect 10:33:37.349511 Received DATA (on stdin) 10:33:37.349735 > 17 bytes data, server => client 10:33:37.349827 'WE ROOLZ: 79516\r\n' 10:33:37.350151 Received DISC (on stdin) 10:33:37.350371 ====> Client forcibly disconnected 10:33:37.352114 Received QUIT (on stdin) 10:33:37.352308 quits 10:33:37.352740 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1352 === End of file server.cmd === Start of file valgrind1352 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exportCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1353 ../src/curl -q --trace-ascii log/6/trace1353 --trace-time ftp://127.0.0.1:33323/path/file1353 -O -i -D log/6/heads1353 --output-dir log/6 > log/6/stdout1353 2> log/6/stderr1353 s the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1352 test 1353...[FTP download, file without C-D inside, using -O -i -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1353 ../src/curl -q --trace-ascii log/6/trace1353 --trace-time ftp://127.0.0.1:33323/path/file1353 -O -i -D log/6/heads1353 --output-dir log/6 > log/6/stdout1353 2> log/6/stderr1353 1353: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1353 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1353 ../src/curl -q --trace-ascii log/6/trace1353 --trace-time ftp://127.0.0.1:33323/path/file1353 -O -i -D log/6/heads1353 --output-dir log/6 > log/6/stdout1353 2> log/6/stderr1353 === End of file commands.log === Start of file ftp_server.log 10:33:37.651521 ====> Client connect 10:33:37.655326 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:37.658642 < "USER anonymous" 10:33:37.659340 > "331 We are happy you popped in![CR][LF]" 10:33:37.662587 < "PASS ftp@example.com" 10:33:37.663257 > "230 Welcome you silly person[CR][LF]" 10:33:37.666728 < "PWD" 10:33:37.667216 > "257 "/" is current directory[CR][LF]" 10:33:37.670181 < "EPSV" 10:33:37.670569 ====> Passive DATA channel requested by client 10:33:37.670861 DATA sockfilt for passive data channel starting... 10:33:37.686655 DATA sockfilt for passive data channel started (pid 145441) 10:33:37.687557 DATA sockfilt for passive data channel listens on port 37469 10:33:37.687996 > "229 Entering Passive Mode (|||37469|)[LF]" 10:33:37.688247 Client has been notified that DATA conn will be accepted on port 37469 10:33:37.691102 Client connects to port 37469 10:33:37.691582 ====> Client established passive DATA connection on port 37469 10:33:37.692615 < "TYPE I" 10:33:37.694464 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:37.696221 < "SIZE verifiedserver" 10:33:37.697195 > "213 17[CR][LF]" 10:33:37.699932 < "RETR verifiedserver" 10:33:37.700662 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:37.701666 =====> Closing passive DATA connection... 10:33:37.702006 Server disconnects passive DATA connection 10:33:37.703106 Server disconnected passive DATA connection 10:33:37.703580 DATA sockfilt for passive data channel quits (pid 145441) 10:33:37.710498 DATA sockfilt for passive data channel quit (pid 145441) 10:33:37.710917 =====> Closed passive DATA connection 10:33:37.711366 > "226 File transfer complete[CR][LF]" 10:33:37.749228 < "QUIT" 10:33:37.749758 > "221 bye bye baby[CR][LF]" 10:33:37.753642 MAIN sockfilt said DISC 10:33:37.754180 ====> Client disconnected 10:33:37.754808 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:38.318597 ====> Client connect 10:33:38.321182 Received DATA (on stdin) 10:33:38.321555 > 160 bytes data, server => client 10:33:38.321967 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:38.322229 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:38.322440 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:38.324752 < 16 bytes data, client => server 10:33:38.325020 'USER anonymous\r\n' 10:33:38.327809 Received DATA (on stdin) 10:33:38.328026 > 33 bytes data, server => client 10:33:38.328129 '331 We are happy you popped in!\r\n' 10:33:38.329168 < 22 bytes data, client => server 10:33:38.329377 'PASS ftp@example.com\r\n' 10:33:38.331636 Received DATA (on stdin) 10:33:38.331767 > 30 bytes data, server => client 10:33:38.331910 '230 Welcome you silly person\r\n' 10:33:38.332919 < 5 bytes data, client => server 10:33:38.333206 'PWD\r\n' 10:33:38.335500 Received DATA (on stdin) 10:33:38.335769 > 30 bytes data, server => client 10:33:38.335879 '257 "/" is current directory\r\n' 10:33:38.336774 < 6 bytes data, client => server 10:33:38.336934 'EPSV\r\n' 10:33:38.356905 Received DATA (on stdin) 10:33:38.357028 > 38 bytes data, server => client 10:33:38.357105 '229 Entering Passive Mode (|||37469|)\n' 10:33:38.358552 < 8 bytes data, client => server 10:33:38.358753 'TYPE I\r\n' 10:33:38.361140 Received DATA (on stdin) 10:33:38.361345 > 33 bytes data, server => client 10:33:38.361626 '200 I modify TYPE as you wanted\r\n' 10:33:38.363074 < 21 bytes data, client => server 10:33:38.363274 'SIZE verifiedserver\r\n' 10:33:38.364720 Received DATA (on stdin) 10:33:38.364920 > 8 bytes data, server => client 10:33:38.365694 '213 17\r\n' 10:33:38.366654 < 21 bytes data, client => server 10:33:38.366882 'RETR verifiedserver\r\n' 10:33:38.369631 Received DATA (on stdin) 10:33:38.369863 > 29 bytes data, server => client 10:33:38.369977 '150 Binary junk (17 bytes).\r\n' 10:33:38.380808 Received DATA (on stdin) 10:33:38.381019 > 28 bytes data, server => client 10:33:38.381118 '226 File transfer complete\r\n' 10:33:38.416502 < 6 bytes data, client => server 10:33:38.416774 'QUIT\r\n' 10:33:38.417680 Received DATA (on stdin) 10:33:38.417901 > 18 bytes data, server => client 10:33:38.418012 '221 bye bye baby\r\n' 10:33:38.418562 ====> Client disconnect 10:33:38.422178 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:37.349192 Running IPv4 version 10:33:37.351975 Listening on port 37469 10:33:37.354104 Wrote pid 145441 to log/6/server/ftp_sockdata.pid 10:33:37.354298 Received PING (on stdin) 10:33:37.354981 Received PORT (on stdin) 10:33:37.358177 ====> Client connect 10:33:37.369165 Received DATA (on stdin) 10:33:37.369715 > 17 bytes data, server => client 10:33:37.369868 'WE ROOLZ: 79480\r\n' 10:33:37.370210 Received DISC (on stdin) 10:33:37.370419 ====> Client forcibly disconnected 10:33:37.372662 Received QUIT (on stdin) 10:33:37.372925 quits 10:33:37.377497 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1353 === End of file server.cmd === Start of file valgrind1353 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 biCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1354 ../src/curl -q --trace-ascii log/8/trace1354 --trace-time ftp://127.0.0.1:42977/path/file1354 -O -i -D - --output-dir log/8 > log/8/stdout1354 2> log/8/stderr1354 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1355 ../src/curl -q --trace-ascii log/2/trace1355 --trace-time ftp://127.0.0.1:37959/path/file1355 -O -i --output-dir log/2 > log/2/stdout1355 2> log/2/stderr1355 t system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1353 test 1354...[FTP download, file without C-D inside, using -O -i -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1354 ../src/curl -q --trace-ascii log/8/trace1354 --trace-time ftp://127.0.0.1:42977/path/file1354 -O -i -D - --output-dir log/8 > log/8/stdout1354 2> log/8/stderr1354 1354: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1354 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1354 ../src/curl -q --trace-ascii log/8/trace1354 --trace-time ftp://127.0.0.1:42977/path/file1354 -O -i -D - --output-dir log/8 > log/8/stdout1354 2> log/8/stderr1354 === End of file commands.log === Start of file ftp_server.log 10:33:37.791305 ====> Client connect 10:33:37.792580 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:37.800712 < "USER anonymous" 10:33:37.801276 > "331 We are happy you popped in![CR][LF]" 10:33:37.807232 < "PASS ftp@example.com" 10:33:37.807844 > "230 Welcome you silly person[CR][LF]" 10:33:37.811609 < "PWD" 10:33:37.812234 > "257 "/" is current directory[CR][LF]" 10:33:37.815627 < "EPSV" 10:33:37.816036 ====> Passive DATA channel requested by client 10:33:37.816319 DATA sockfilt for passive data channel starting... 10:33:37.828970 DATA sockfilt for passive data channel started (pid 145499) 10:33:37.830493 DATA sockfilt for passive data channel listens on port 38041 10:33:37.831114 > "229 Entering Passive Mode (|||38041|)[LF]" 10:33:37.831531 Client has been notified that DATA conn will be accepted on port 38041 10:33:37.838074 Client connects to port 38041 10:33:37.838528 ====> Client established passive DATA connection on port 38041 10:33:37.839550 < "TYPE I" 10:33:37.840193 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:37.843474 < "SIZE verifiedserver" 10:33:37.844171 > "213 17[CR][LF]" 10:33:37.847164 < "RETR verifiedserver" 10:33:37.847776 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:37.848672 =====> Closing passive DATA connection... 10:33:37.848955 Server disconnects passive DATA connection 10:33:37.850255 Server disconnected passive DATA connection 10:33:37.850743 DATA sockfilt for passive data channel quits (pid 145499) 10:33:37.853578 DATA sockfilt for passive data channel quit (pid 145499) 10:33:37.854054 =====> Closed passive DATA connection 10:33:37.855504 > "226 File transfer complete[CR][LF]" 10:33:37.899752 < "QUIT" 10:33:37.900233 > "221 bye bye baby[CR][LF]" 10:33:37.901917 MAIN sockfilt said DISC 10:33:37.902322 ====> Client disconnected 10:33:37.902899 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:37.456384 ====> Client connect 10:33:37.461317 Received DATA (on stdin) 10:33:37.461705 > 160 bytes data, server => client 10:33:37.461837 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:37.461927 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:37.462007 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:37.469612 < 16 bytes data, client => server 10:33:37.469820 'USER anonymous\r\n' 10:33:37.469976 Received DATA (on stdin) 10:33:37.470077 > 33 bytes data, server => client 10:33:37.470164 '331 We are happy you popped in!\r\n' 10:33:37.474315 < 22 bytes data, client => server 10:33:37.474579 'PASS ftp@example.com\r\n' 10:33:37.476774 Received DATA (on stdin) 10:33:37.477056 > 30 bytes data, server => client 10:33:37.477270 '230 Welcome you silly person\r\n' 10:33:37.478098 < 5 bytes data, client => server 10:33:37.478331 'PWD\r\n' 10:33:37.481599 Received DATA (on stdin) 10:33:37.481866 > 30 bytes data, server => client 10:33:37.481999 '257 "/" is current directory\r\n' 10:33:37.482840 < 6 bytes data, client => server 10:33:37.483045 'EPSV\r\n' 10:33:37.501531 Received DATA (on stdin) 10:33:37.501826 > 38 bytes data, server => client 10:33:37.501983 '229 Entering Passive Mode (|||38041|)\n' 10:33:37.503511 < 8 bytes data, client => server 10:33:37.503756 'TYPE I\r\n' 10:33:37.508143 Received DATA (on stdin) 10:33:37.508359 > 33 bytes data, server => client 10:33:37.508470 '200 I modify TYPE as you wanted\r\n' 10:33:37.509267 < 21 bytes data, client => server 10:33:37.509546 'SIZE verifiedserver\r\n' 10:33:37.512617 Received DATA (on stdin) 10:33:37.512937 > 8 bytes data, server => client 10:33:37.513078 '213 17\r\n' 10:33:37.513986 < 21 bytes data, client => server 10:33:37.514213 'RETR verifiedserver\r\n' 10:33:37.517250 Received DATA (on stdin) 10:33:37.517511 > 29 bytes data, server => client 10:33:37.517671 '150 Binary junk (17 bytes).\r\n' 10:33:37.522504 Received DATA (on stdin) 10:33:37.522758 > 28 bytes data, server => client 10:33:37.523009 '226 File transfer complete\r\n' 10:33:37.566586 < 6 bytes data, client => server 10:33:37.566827 'QUIT\r\n' 10:33:37.568530 Received DATA (on stdin) 10:33:37.568730 > 18 bytes data, server => client 10:33:37.568824 '221 bye bye baby\r\n' 10:33:37.569476 ====> Client disconnect 10:33:37.571245 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:37.494523 Running IPv4 version 10:33:37.495104 Listening on port 38041 10:33:37.495552 Wrote pid 145499 to log/8/server/ftp_sockdata.pid 10:33:37.496518 Received PING (on stdin) 10:33:37.497372 Received PORT (on stdin) 10:33:37.505532 ====> Client connect 10:33:37.516250 Received DATA (on stdin) 10:33:37.516480 > 17 bytes data, server => client 10:33:37.516599 'WE ROOLZ: 86552\r\n' 10:33:37.517212 Received DISC (on stdin) 10:33:37.517795 ====> Client forcibly disconnected 10:33:37.519144 Received QUIT (on stdin) 10:33:37.519413 quits 10:33:37.519928 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1354 === End of file server.cmd === Start of file valgrind1354 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1354 test 1355...[FTP download, file without C-D inside, using -O -i, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1356 ../src/curl -q --trace-ascii log/1/trace1356 --trace-time ftp://127.0.0.1:38733/path/file1356 -O --output-dir log/1 > log/1/stdout1356 2> log/1/stderr1356 ers=16 --log-file=log/2/valgrind1355 ../src/curl -q --trace-ascii log/2/trace1355 --trace-time ftp://127.0.0.1:37959/path/file1355 -O -i --output-dir log/2 > log/2/stdout1355 2> log/2/stderr1355 1355: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1355 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1355 ../src/curl -q --trace-ascii log/2/trace1355 --trace-time ftp://127.0.0.1:37959/path/file1355 -O -i --output-dir log/2 > log/2/stdout1355 2> log/2/stderr1355 === End of file commands.log === Start of file ftp_server.log 10:33:37.908277 ====> Client connect 10:33:37.909844 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:37.912419 < "USER anonymous" 10:33:37.912869 > "331 We are happy you popped in![CR][LF]" 10:33:37.914669 < "PASS ftp@example.com" 10:33:37.915183 > "230 Welcome you silly person[CR][LF]" 10:33:37.922223 < "PWD" 10:33:37.922702 > "257 "/" is current directory[CR][LF]" 10:33:37.926706 < "EPSV" 10:33:37.927120 ====> Passive DATA channel requested by client 10:33:37.927405 DATA sockfilt for passive data channel starting... 10:33:37.942711 DATA sockfilt for passive data channel started (pid 145560) 10:33:37.943941 DATA sockfilt for passive data channel listens on port 35097 10:33:37.944554 > "229 Entering Passive Mode (|||35097|)[LF]" 10:33:37.944912 Client has been notified that DATA conn will be accepted on port 35097 10:33:37.947629 Client connects to port 35097 10:33:37.948153 ====> Client established passive DATA connection on port 35097 10:33:37.949438 < "TYPE I" 10:33:37.950218 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:37.966528 < "SIZE verifiedserver" 10:33:37.967146 > "213 17[CR][LF]" 10:33:37.969380 < "RETR verifiedserver" 10:33:37.970218 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:37.971358 =====> Closing passive DATA connection... 10:33:37.971788 Server disconnects passive DATA connection 10:33:37.973872 Fancy that; client wants to DISC, too 10:33:37.974570 Server disconnected passive DATA connection 10:33:37.974965 DATA sockfilt for passive data channel quits (pid 145560) 10:33:37.976927 DATA sockfilt for passive data channel quit (pid 145560) 10:33:37.977377 =====> Closed passive DATA connection 10:33:37.978299 > "226 File transfer complete[CR][LF]" 10:33:38.020721 < "QUIT" 10:33:38.021973 > "221 bye bye baby[CR][LF]" 10:33:38.024135 MAIN sockfilt said DISC 10:33:38.024648 ====> Client disconnected 10:33:38.025364 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:37.574041 ====> Client connect 10:33:37.577846 Received DATA (on stdin) 10:33:37.578105 > 160 bytes data, server => client 10:33:37.578249 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:37.578350 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:37.578433 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:37.579423 < 16 bytes data, client => server 10:33:37.579678 'USER anonymous\r\n' 10:33:37.580808 Received DATA (on stdin) 10:33:37.581006 > 33 bytes data, server => client 10:33:37.581106 '331 We are happy you popped in!\r\n' 10:33:37.581903 < 22 bytes data, client => server 10:33:37.582146 'PASS ftp@example.com\r\n' 10:33:37.585695 Received DATA (on stdin) 10:33:37.585983 > 30 bytes data, server => client 10:33:37.586096 '230 Welcome you silly person\r\n' 10:33:37.586762 < 5 bytes data, client => server 10:33:37.586932 'PWD\r\n' 10:33:37.590658 Received DATA (on stdin) 10:33:37.590873 > 30 bytes data, server => client 10:33:37.591002 '257 "/" is current directory\r\n' 10:33:37.591983 < 6 bytes data, client => server 10:33:37.592199 'EPSV\r\n' 10:33:37.613005 Received DATA (on stdin) 10:33:37.613180 > 38 bytes data, server => client 10:33:37.613299 '229 Entering Passive Mode (|||35097|)\n' 10:33:37.614880 < 8 bytes data, client => server 10:33:37.615196 'TYPE I\r\n' 10:33:37.619799 Received DATA (on stdin) 10:33:37.620090 > 33 bytes data, server => client 10:33:37.620210 '200 I modify TYPE as you wanted\r\n' 10:33:37.629587 < 21 bytes data, client => server 10:33:37.629917 'SIZE verifiedserver\r\n' 10:33:37.635147 Received DATA (on stdin) 10:33:37.635367 > 8 bytes data, server => client 10:33:37.635520 '213 17\r\n' 10:33:37.636427 < 21 bytes data, client => server 10:33:37.636721 'RETR verifiedserver\r\n' 10:33:37.638185 Received DATA (on stdin) 10:33:37.638455 > 29 bytes data, server => client 10:33:37.638611 '150 Binary junk (17 bytes).\r\n' 10:33:37.649628 Received DATA (on stdin) 10:33:37.649936 > 28 bytes data, server => client 10:33:37.650082 '226 File transfer complete\r\n' 10:33:37.686916 < 6 bytes data, client => server 10:33:37.687209 'QUIT\r\n' 10:33:37.689368 Received DATA (on stdin) 10:33:37.689724 > 18 bytes data, server => client 10:33:37.689854 '221 bye bye baby\r\n' 10:33:37.690853 ====> Client disconnect 10:33:37.692617 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:37.605370 Running IPv4 version 10:33:37.606102 Listening on port 35097 10:33:37.606569 Wrote pid 145560 to log/2/server/ftp_sockdata.pid 10:33:37.610180 Received PING (on stdin) 10:33:37.611213 Received PORT (on stdin) 10:33:37.615210 ====> Client connect 10:33:37.638805 Received DATA (on stdin) 10:33:37.639077 > 17 bytes data, server => client 10:33:37.639241 'WE ROOLZ: 79558\r\n' 10:33:37.639939 ====> Client disconnect 10:33:37.640255 Received DISC (on stdin) 10:33:37.640463 Crikey! Client also wants to disconnect 10:33:37.642566 Received ACKD (on stdin) 10:33:37.643207 Received QUIT (on stdin) 10:33:37.643392 quits 10:33:37.643850 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1355 === End of file server.cmd === Start of file valgrind1355 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1355 test 1356...[FTP download, file with Content-Disposition inside, using -O] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1356 ../src/curl -q --trace-ascii log/1/trace1356 --trace-time ftp://127.0.0.1:38733/path/file1356 -O --output-dir log/1 > log/1/stdout1356 2> log/1/stderr1356 1356: protocol FAILED! There was no content at all in the file log/1/server.input. Server gliCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1357 ../src/curl -q --trace-ascii log/5/trace1357 --trace-time ftp://127.0.0.1:40501/path/file1357 -O -D log/5/heads1357 --output-dir log/5 > log/5/stdout1357 2> log/5/stderr1357 tch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1356 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1356 ../src/curl -q --trace-ascii log/1/trace1356 --trace-time ftp://127.0.0.1:38733/path/file1356 -O --output-dir log/1 > log/1/stdout1356 2> log/1/stderr1356 === End of file commands.log === Start of file ftp_server.log 10:33:38.332743 ====> Client connect 10:33:38.334280 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:38.337175 < "USER anonymous" 10:33:38.337875 > "331 We are happy you popped in![CR][LF]" 10:33:38.342553 < "PASS ftp@example.com" 10:33:38.343069 > "230 Welcome you silly person[CR][LF]" 10:33:38.344963 < "PWD" 10:33:38.345530 > "257 "/" is current directory[CR][LF]" 10:33:38.347339 < "EPSV" 10:33:38.347688 ====> Passive DATA channel requested by client 10:33:38.347858 DATA sockfilt for passive data channel starting... 10:33:38.360650 DATA sockfilt for passive data channel started (pid 145789) 10:33:38.363170 DATA sockfilt for passive data channel listens on port 41903 10:33:38.363772 > "229 Entering Passive Mode (|||41903|)[LF]" 10:33:38.364059 Client has been notified that DATA conn will be accepted on port 41903 10:33:38.366105 Client connects to port 41903 10:33:38.366553 ====> Client established passive DATA connection on port 41903 10:33:38.367563 < "TYPE I" 10:33:38.368083 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:38.370166 < "SIZE verifiedserver" 10:33:38.370789 > "213 17[CR][LF]" 10:33:38.373590 < "RETR verifiedserver" 10:33:38.374197 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:38.375068 =====> Closing passive DATA connection... 10:33:38.375363 Server disconnects passive DATA connection 10:33:38.381033 Server disconnected passive DATA connection 10:33:38.381625 DATA sockfilt for passive data channel quits (pid 145789) 10:33:38.383855 DATA sockfilt for passive data channel quit (pid 145789) 10:33:38.384348 =====> Closed passive DATA connection 10:33:38.384884 > "226 File transfer complete[CR][LF]" 10:33:38.426844 < "QUIT" 10:33:38.427494 > "221 bye bye baby[CR][LF]" 10:33:38.428986 MAIN sockfilt said DISC 10:33:38.429543 ====> Client disconnected 10:33:38.430239 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:37.999996 ====> Client connect 10:33:38.002148 Received DATA (on stdin) 10:33:38.002423 > 160 bytes data, server => client 10:33:38.002543 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:38.002651 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:38.002729 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:38.003877 < 16 bytes data, client => server 10:33:38.004199 'USER anonymous\r\n' 10:33:38.007400 Received DATA (on stdin) 10:33:38.007639 > 33 bytes data, server => client 10:33:38.007744 '331 We are happy you popped in!\r\n' 10:33:38.009611 < 22 bytes data, client => server 10:33:38.009877 'PASS ftp@example.com\r\n' 10:33:38.010977 Received DATA (on stdin) 10:33:38.011189 > 30 bytes data, server => client 10:33:38.011305 '230 Welcome you silly person\r\n' 10:33:38.012128 < 5 bytes data, client => server 10:33:38.012366 'PWD\r\n' 10:33:38.013439 Received DATA (on stdin) 10:33:38.013661 > 30 bytes data, server => client 10:33:38.013771 '257 "/" is current directory\r\n' 10:33:38.014535 < 6 bytes data, client => server 10:33:38.014759 'EPSV\r\n' 10:33:38.031703 Received DATA (on stdin) 10:33:38.031907 > 38 bytes data, server => client 10:33:38.032009 '229 Entering Passive Mode (|||41903|)\n' 10:33:38.034008 < 8 bytes data, client => server 10:33:38.034138 'TYPE I\r\n' 10:33:38.035972 Received DATA (on stdin) 10:33:38.036184 > 33 bytes data, server => client 10:33:38.036295 '200 I modify TYPE as you wanted\r\n' 10:33:38.037037 < 21 bytes data, client => server 10:33:38.037243 'SIZE verifiedserver\r\n' 10:33:38.038697 Received DATA (on stdin) 10:33:38.038908 > 8 bytes data, server => client 10:33:38.038990 '213 17\r\n' 10:33:38.040689 < 21 bytes data, client => server 10:33:38.040807 'RETR verifiedserver\r\n' 10:33:38.042129 Received DATA (on stdin) 10:33:38.042323 > 29 bytes data, server => client 10:33:38.042436 '150 Binary junk (17 bytes).\r\n' 10:33:38.053328 Received DATA (on stdin) 10:33:38.053966 > 28 bytes data, server => client 10:33:38.054110 '226 File transfer complete\r\n' 10:33:38.093598 < 6 bytes data, client => server 10:33:38.093917 'QUIT\r\n' 10:33:38.095458 Received DATA (on stdin) 10:33:38.095739 > 18 bytes data, server => client 10:33:38.095863 '221 bye bye baby\r\n' 10:33:38.096487 ====> Client disconnect 10:33:38.097463 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:38.025259 Running IPv4 version 10:33:38.025902 Listening on port 41903 10:33:38.026335 Wrote pid 145789 to log/1/server/ftp_sockdata.pid 10:33:38.026514 Received PING (on stdin) 10:33:38.029022 Received PORT (on stdin) 10:33:38.033682 ====> Client connect 10:33:38.042954 Received DATA (on stdin) 10:33:38.043127 > 17 bytes data, server => client 10:33:38.043224 'WE ROOLZ: 79585\r\n' 10:33:38.043559 Received DISC (on stdin) 10:33:38.043750 ====> Client forcibly disconnected 10:33:38.050036 Received QUIT (on stdin) 10:33:38.050263 quits 10:33:38.050775 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1356 === End of file server.cmd === Start of file valgrind1356 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1356 test 1357...[FTP download, file with C-D inside, using -O -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1357 ../src/curl -q --trace-ascii log/5/trace1357 --trace-time ftp://127.0.0.1:40501/path/file1357 -O -D log/5/heads1357 --output-dir log/5 > log/5/stdout1357 2> log/5/stderr1357 1357: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1357 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1357 ../src/curl -q --trace-ascii log/5/trace1357 --trace-time ftp://127.0.0.1:40501/path/file1357 -O -D log/5/heads1357CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1358 ../src/curl -q --trace-ascii log/3/trace1358 --trace-time ftp://127.0.0.1:33831/path/file1358 -O -D - --output-dir log/3 > log/3/stdout1358 2> log/3/stderr1358 --output-dir log/5 > log/5/stdout1357 2> log/5/stderr1357 === End of file commands.log === Start of file ftp_server.log 10:33:38.354456 ====> Client connect 10:33:38.356083 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:38.359692 < "USER anonymous" 10:33:38.360211 > "331 We are happy you popped in![CR][LF]" 10:33:38.362017 < "PASS ftp@example.com" 10:33:38.362462 > "230 Welcome you silly person[CR][LF]" 10:33:38.371866 < "PWD" 10:33:38.372459 > "257 "/" is current directory[CR][LF]" 10:33:38.376656 < "EPSV" 10:33:38.377219 ====> Passive DATA channel requested by client 10:33:38.377576 DATA sockfilt for passive data channel starting... 10:33:38.391667 DATA sockfilt for passive data channel started (pid 145798) 10:33:38.394511 DATA sockfilt for passive data channel listens on port 39959 10:33:38.395121 > "229 Entering Passive Mode (|||39959|)[LF]" 10:33:38.395531 Client has been notified that DATA conn will be accepted on port 39959 10:33:38.399526 Client connects to port 39959 10:33:38.399968 ====> Client established passive DATA connection on port 39959 10:33:38.402943 < "TYPE I" 10:33:38.403578 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:38.405740 < "SIZE verifiedserver" 10:33:38.406592 > "213 18[CR][LF]" 10:33:38.408842 < "RETR verifiedserver" 10:33:38.409927 > "150 Binary junk (18 bytes).[CR][LF]" 10:33:38.410960 =====> Closing passive DATA connection... 10:33:38.411346 Server disconnects passive DATA connection 10:33:38.414519 Server disconnected passive DATA connection 10:33:38.415135 DATA sockfilt for passive data channel quits (pid 145798) 10:33:38.417537 DATA sockfilt for passive data channel quit (pid 145798) 10:33:38.418750 =====> Closed passive DATA connection 10:33:38.419499 > "226 File transfer complete[CR][LF]" 10:33:38.455189 < "QUIT" 10:33:38.455739 > "221 bye bye baby[CR][LF]" 10:33:38.476437 MAIN sockfilt said DISC 10:33:38.477009 ====> Client disconnected 10:33:38.479605 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:39.021601 ====> Client connect 10:33:39.024044 Received DATA (on stdin) 10:33:39.024306 > 160 bytes data, server => client 10:33:39.024485 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:39.024611 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:39.024709 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:39.025921 < 16 bytes data, client => server 10:33:39.026061 'USER anonymous\r\n' 10:33:39.028166 Received DATA (on stdin) 10:33:39.028342 > 33 bytes data, server => client 10:33:39.028446 '331 We are happy you popped in!\r\n' 10:33:39.029096 < 22 bytes data, client => server 10:33:39.029200 'PASS ftp@example.com\r\n' 10:33:39.033560 Received DATA (on stdin) 10:33:39.033842 > 30 bytes data, server => client 10:33:39.033981 '230 Welcome you silly person\r\n' 10:33:39.038099 < 5 bytes data, client => server 10:33:39.038348 'PWD\r\n' 10:33:39.040392 Received DATA (on stdin) 10:33:39.040677 > 30 bytes data, server => client 10:33:39.040806 '257 "/" is current directory\r\n' 10:33:39.042859 < 6 bytes data, client => server 10:33:39.043122 'EPSV\r\n' 10:33:39.064614 Received DATA (on stdin) 10:33:39.064884 > 38 bytes data, server => client 10:33:39.065000 '229 Entering Passive Mode (|||39959|)\n' 10:33:39.070071 < 8 bytes data, client => server 10:33:39.070333 'TYPE I\r\n' 10:33:39.071496 Received DATA (on stdin) 10:33:39.071759 > 33 bytes data, server => client 10:33:39.071887 '200 I modify TYPE as you wanted\r\n' 10:33:39.072653 < 21 bytes data, client => server 10:33:39.072924 'SIZE verifiedserver\r\n' 10:33:39.074728 Received DATA (on stdin) 10:33:39.074922 > 8 bytes data, server => client 10:33:39.075036 '213 18\r\n' 10:33:39.075852 < 21 bytes data, client => server 10:33:39.076124 'RETR verifiedserver\r\n' 10:33:39.077504 Received DATA (on stdin) 10:33:39.077779 > 29 bytes data, server => client 10:33:39.077950 '150 Binary junk (18 bytes).\r\n' 10:33:39.087809 Received DATA (on stdin) 10:33:39.088021 > 28 bytes data, server => client 10:33:39.092466 '226 File transfer complete\r\n' 10:33:39.122334 < 6 bytes data, client => server 10:33:39.122586 'QUIT\r\n' 10:33:39.138889 Received DATA (on stdin) 10:33:39.139130 > 18 bytes data, server => client 10:33:39.139225 '221 bye bye baby\r\n' 10:33:39.139800 ====> Client disconnect 10:33:39.144974 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:38.055976 Running IPv4 version 10:33:38.056692 Listening on port 39959 10:33:38.057193 Wrote pid 145798 to log/5/server/ftp_sockdata.pid 10:33:38.058982 Received PING (on stdin) 10:33:38.061553 Received PORT (on stdin) 10:33:38.066995 ====> Client connect 10:33:38.080159 Received DATA (on stdin) 10:33:38.080423 > 18 bytes data, server => client 10:33:38.080531 'WE ROOLZ: 131615\r\n' 10:33:38.080949 Received DISC (on stdin) 10:33:38.081207 ====> Client forcibly disconnected 10:33:38.083486 Received QUIT (on stdin) 10:33:38.083682 quits 10:33:38.084171 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1357 === End of file server.cmd === Start of file valgrind1357 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1357 test 1358...[FTP download, file with C-D inside, using -O -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1358 ../src/curl -q --trace-ascii log/3/trace1358 --trace-time ftp://127.0.0.1:33831/path/file1358 -O -D - --output-dir log/3 > log/3/stdout1358 2> log/3/stderr1358 1358: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1358 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1358 ../src/curl -q --trace-ascii log/3/trace1358 --trace-time ftp://127.0.0.1:33831/path/file1358 -O -D - --output-dir log/3 > log/3/stdout1358 2> log/3/stderr1358 === End of file commands.log === Start of file ftp_server.log 10:33:38.617616 ====> Client connect 10:33:38.619186 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:38.623490 < "USER anonymous" 10:33:38.625005 > "331 WeCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1360 ../src/curl -q --trace-ascii log/4/trace1360 --trace-time ftp://127.0.0.1:42635/path/file1360 -O -J -D - --output-dir log/4 > log/4/stdout1360 2> log/4/stderr1360 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1359 ../src/curl -q --trace-ascii log/7/trace1359 --trace-time ftp://127.0.0.1:38253/path/file1359 -O -J -D log/7/heads1359 --output-dir log/7 > log/7/stdout1359 2> log/7/stderr1359 are happy you popped in![CR][LF]" 10:33:38.627361 < "PASS ftp@example.com" 10:33:38.628036 > "230 Welcome you silly person[CR][LF]" 10:33:38.631615 < "PWD" 10:33:38.634210 > "257 "/" is current directory[CR][LF]" 10:33:38.635809 < "EPSV" 10:33:38.636262 ====> Passive DATA channel requested by client 10:33:38.636536 DATA sockfilt for passive data channel starting... 10:33:38.651613 DATA sockfilt for passive data channel started (pid 145883) 10:33:38.654167 DATA sockfilt for passive data channel listens on port 33005 10:33:38.654746 > "229 Entering Passive Mode (|||33005|)[LF]" 10:33:38.655113 Client has been notified that DATA conn will be accepted on port 33005 10:33:38.659247 Client connects to port 33005 10:33:38.659810 ====> Client established passive DATA connection on port 33005 10:33:38.660830 < "TYPE I" 10:33:38.661301 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:38.664359 < "SIZE verifiedserver" 10:33:38.667781 > "213 17[CR][LF]" 10:33:38.669160 < "RETR verifiedserver" 10:33:38.670503 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:38.672928 =====> Closing passive DATA connection... 10:33:38.673446 Server disconnects passive DATA connection 10:33:38.676085 Fancy that; client wants to DISC, too 10:33:38.677914 Server disconnected passive DATA connection 10:33:38.678558 DATA sockfilt for passive data channel quits (pid 145883) 10:33:38.681121 DATA sockfilt for passive data channel quit (pid 145883) 10:33:38.681673 =====> Closed passive DATA connection 10:33:38.682314 > "226 File transfer complete[CR][LF]" 10:33:38.723854 < "QUIT" 10:33:38.729686 > "221 bye bye baby[CR][LF]" 10:33:38.735752 MAIN sockfilt said DISC 10:33:38.736522 ====> Client disconnected 10:33:38.740108 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:38.280834 ====> Client connect 10:33:38.287549 Received DATA (on stdin) 10:33:38.287795 > 160 bytes data, server => client 10:33:38.287932 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:38.288029 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:38.288114 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:38.289225 < 16 bytes data, client => server 10:33:38.289570 'USER anonymous\r\n' 10:33:38.291960 Received DATA (on stdin) 10:33:38.292166 > 33 bytes data, server => client 10:33:38.292408 '331 We are happy you popped in!\r\n' 10:33:38.294082 < 22 bytes data, client => server 10:33:38.294303 'PASS ftp@example.com\r\n' 10:33:38.296793 Received DATA (on stdin) 10:33:38.297081 > 30 bytes data, server => client 10:33:38.297257 '230 Welcome you silly person\r\n' 10:33:38.298278 < 5 bytes data, client => server 10:33:38.298571 'PWD\r\n' 10:33:38.300054 Received DATA (on stdin) 10:33:38.300271 > 30 bytes data, server => client 10:33:38.300513 '257 "/" is current directory\r\n' 10:33:38.301359 < 6 bytes data, client => server 10:33:38.301639 'EPSV\r\n' 10:33:38.323553 Received DATA (on stdin) 10:33:38.323834 > 38 bytes data, server => client 10:33:38.323973 '229 Entering Passive Mode (|||33005|)\n' 10:33:38.326078 < 8 bytes data, client => server 10:33:38.326397 'TYPE I\r\n' 10:33:38.329711 Received DATA (on stdin) 10:33:38.329965 > 33 bytes data, server => client 10:33:38.330088 '200 I modify TYPE as you wanted\r\n' 10:33:38.331063 < 21 bytes data, client => server 10:33:38.331236 'SIZE verifiedserver\r\n' 10:33:38.332987 Received DATA (on stdin) 10:33:38.333233 > 8 bytes data, server => client 10:33:38.334000 '213 17\r\n' 10:33:38.335046 < 21 bytes data, client => server 10:33:38.335303 'RETR verifiedserver\r\n' 10:33:38.339467 Received DATA (on stdin) 10:33:38.339642 > 29 bytes data, server => client 10:33:38.339774 '150 Binary junk (17 bytes).\r\n' 10:33:38.350789 Received DATA (on stdin) 10:33:38.351012 > 28 bytes data, server => client 10:33:38.351137 '226 File transfer complete\r\n' 10:33:38.390368 < 6 bytes data, client => server 10:33:38.390593 'QUIT\r\n' 10:33:38.392515 Received DATA (on stdin) 10:33:38.392776 > 18 bytes data, server => client 10:33:38.398031 '221 bye bye baby\r\n' 10:33:38.403020 ====> Client disconnect 10:33:38.406298 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:38.317700 Running IPv4 version 10:33:38.318507 Listening on port 33005 10:33:38.318968 Wrote pid 145883 to log/3/server/ftp_sockdata.pid 10:33:38.319171 Received PING (on stdin) 10:33:38.320120 Received PORT (on stdin) 10:33:38.326716 ====> Client connect 10:33:38.339010 Received DATA (on stdin) 10:33:38.339242 > 17 bytes data, server => client 10:33:38.341888 'WE ROOLZ: 79555\r\n' 10:33:38.343331 ====> Client disconnect 10:33:38.344476 Received DISC (on stdin) 10:33:38.344731 Crikey! Client also wants to disconnect 10:33:38.344985 Received ACKD (on stdin) 10:33:38.347250 Received QUIT (on stdin) 10:33:38.347489 quits 10:33:38.347968 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1358 === End of file server.cmd === Start of file valgrind1358 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1358 test 1360...[FTP download, file with C-D inside, using -O -J -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1360 ../src/curl -q --trace-ascii log/4/trace1360 --trace-time ftp://127.0.0.1:42635/path/file1360 -O -J -D - --output-dir log/4 > log/4/stdout1360 2> log/4/stderr1360 1360: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1360 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1360 ../src/curl -q --trace-ascii log/4/trace1360 --trace-time ftp://127.0.0.1:42635/path/file1360 -O -J -D - --output-dir log/4 > log/4/stdout1360 2> log/4/stderr1360 === End of file commands.log === Start of file ftp_server.log 10:33:38.715816 ====> Client connect 10:33:38.717093 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:38.719269 < "USER anonymous" 10:33:38.719789 > "331 We are happy you popped in![CR][LF]" 10:33:38.722107 < "PASS ftp@example.com" 10:33:38.722798 > "230 Welcome you silly person[CR][LF]" 10:33:38.728786 < "PWD" 10:33:38.729385 > "257 "/" is current directory[CR][LF]" 10:33:38.731525 < "EPSV" 10:33:38.732036 ====> Passive DATA channel requested by client 10:33:38.732334 DATA sockfilt for passive data channel starting... 10:33:38.746274 DATA sockfilt for passive data channel started (pid 145914) 10:33:38.747600 DATA sockfilt for passive data channel listens on port 43771 10:33:38.748191 > "229 Entering Passive Mode (|||43771|)[LF]" 10:33:38.748671 Client has been notified that DATA conn will be accepted on port 43771 10:33:38.751756 Client connects to port 43771 10:33:38.752323 ====> Client established passive DATA connection on port 43771 10:33:38.754088 < "TYPE I" 10:33:38.754814 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:38.758278 < "SIZE verifiedserver" 10:33:38.761065 > "213 17[CR][LF]" 10:33:38.762394 < "RETR verifiedserver" 10:33:38.763029 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:38.763940 =====> Closing passive DATA connection... 10:33:38.764285 Server disconnects passive DATA connection 10:33:38.765387 Server disconnected passive DATA connection 10:33:38.766142 DATA sockfilt for passive data channel quits (pid 145914) 10:33:38.768088 DATA sockfilt for passive data channel quit (pid 145914) 10:33:38.768541 =====> Closed passive DATA connection 10:33:38.769034 > "226 File transfer complete[CR][LF]" 10:33:38.810342 < "QUIT" 10:33:38.810781 > "221 bye bye baby[CR][LF]" 10:33:38.815729 MAIN sockfilt said DISC 10:33:38.816203 ====> Client disconnected 10:33:38.816814 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:39.383107 ====> Client connect 10:33:39.384960 Received DATA (on stdin) 10:33:39.385217 > 160 bytes data, server => client 10:33:39.385330 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:39.385515 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:39.385608 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:39.386177 < 16 bytes data, client => server 10:33:39.386378 'USER anonymous\r\n' 10:33:39.387709 Received DATA (on stdin) 10:33:39.387887 > 33 bytes data, server => client 10:33:39.387994 '331 We are happy you popped in!\r\n' 10:33:39.388825 < 22 bytes data, client => server 10:33:39.389150 'PASS ftp@example.com\r\n' 10:33:39.392514 Received DATA (on stdin) 10:33:39.392776 > 30 bytes data, server => client 10:33:39.392891 '230 Welcome you silly person\r\n' 10:33:39.394375 < 5 bytes data, client => server 10:33:39.394653 'PWD\r\n' 10:33:39.397300 Received DATA (on stdin) 10:33:39.397620 > 30 bytes data, server => client 10:33:39.397745 '257 "/" is current directory\r\n' 10:33:39.398530 < 6 bytes data, client => server 10:33:39.398743 'EPSV\r\n' 10:33:39.417494 Received DATA (on stdin) 10:33:39.417725 > 38 bytes data, server => client 10:33:39.417873 '229 Entering Passive Mode (|||43771|)\n' 10:33:39.419637 < 8 bytes data, client => server 10:33:39.419930 'TYPE I\r\n' 10:33:39.423147 Received DATA (on stdin) 10:33:39.423405 > 33 bytes data, server => client 10:33:39.423538 '200 I modify TYPE as you wanted\r\n' 10:33:39.424631 < 21 bytes data, client => server 10:33:39.424943 'SIZE verifiedserver\r\n' 10:33:39.426830 Received DATA (on stdin) 10:33:39.427108 > 8 bytes data, server => client 10:33:39.427395 '213 17\r\n' 10:33:39.428347 < 21 bytes data, client => server 10:33:39.428621 'RETR verifiedserver\r\n' 10:33:39.431041 Received DATA (on stdin) 10:33:39.431217 > 29 bytes data, server => client 10:33:39.431312 '150 Binary junk (17 bytes).\r\n' 10:33:39.436980 Received DATA (on stdin) 10:33:39.437227 > 28 bytes data, server => client 10:33:39.437345 '226 File transfer complete\r\n' 10:33:39.477653 < 6 bytes data, client => server 10:33:39.477930 'QUIT\r\n' 10:33:39.478723 Received DATA (on stdin) 10:33:39.478888 > 18 bytes data, server => client 10:33:39.478974 '221 bye bye baby\r\n' 10:33:39.479537 ====> Client disconnect 10:33:39.484171 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:38.411574 Running IPv4 version 10:33:38.412181 Listening on port 43771 10:33:38.412762 Wrote pid 145914 to log/4/server/ftp_sockdata.pid 10:33:38.413650 Received PING (on stdin) 10:33:38.414853 Received PORT (on stdin) 10:33:38.419200 ====> Client connect 10:33:38.431400 Received DATA (on stdin) 10:33:38.431605 > 17 bytes data, server => client 10:33:38.431752 'WE ROOLZ: 79516\r\n' 10:33:38.432496 Received DISC (on stdin) 10:33:38.432691 ====> Client forcibly disconnected 10:33:38.434405 Received QUIT (on stdin) 10:33:38.434587 quits 10:33:38.435095 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1360 === End of file server.cmd === Start of file valgrind1360 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1360 test 1359...[FTP download, file with C-D inside, using -O -J -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1359 ../src/curl -q --trace-ascii log/7/trace1359 --trace-time ftp://127.0.0.1:38253/path/file1359 -O -J -D log/7/heads1359 --output-dir log/7 > log/7/stdout1359 2> log/7/stderr1359 1359: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1359 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1359 ../src/curl -q --trace-ascii log/7/trace1359 --trace-time ftp://127.0.0.1:38253/path/file1359 -O -J -D log/7/heads1359 --output-dir log/7 > log/7/stdout1359 2> log/7/stderr1359 === End of file commands.log === Start of file ftp_server.log 10:33:38.652301 ====> Client connect 10:33:38.653836 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:38.657429 < "USER anonymous" 10:33:38.658270 > "331 We are happy you popped in![CR][LF]" 10:33:38.661232 < "PASS ftp@example.com" 10:33:38.662385 > "230 Welcome you silly person[CR][LF]" 10:33:38.665159 < "PWD" 10:33:38.666306 > "257 "/" is current directory[CR][LF]" 10:33:38.668996 < "EPSV" 10:33:38.669378 ====> Passive DATA channel requested by client 10:33:38.669783 DATA sockfilt for passive data channel starting... 10:33:38.685004 DATA sockfilt for passive data channel started (pid 145892) 10:33:38.686462 DATA sockfilt for passive data channel listens on port 40623 10:33:38.687020 > "229 Entering Passive Mode (|||40623|)[LF]" 10:33:38.687273 Client has been notified that DATA conn will be accepted on port 40623CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1361 ../src/curl -q --trace-ascii log/6/trace1361 --trace-time ftp://127.0.0.1:33323/path/file1361 -O -i -D log/6/heads1361 --output-dir log/6 > log/6/stdout1361 2> log/6/stderr1361 10:33:38.691339 Client connects to port 40623 10:33:38.691956 ====> Client established passive DATA connection on port 40623 10:33:38.693146 < "TYPE I" 10:33:38.693807 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:38.696764 < "SIZE verifiedserver" 10:33:38.698175 > "213 17[CR][LF]" 10:33:38.700882 < "RETR verifiedserver" 10:33:38.701891 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:38.702970 =====> Closing passive DATA connection... 10:33:38.703333 Server disconnects passive DATA connection 10:33:38.705351 Server disconnected passive DATA connection 10:33:38.705843 DATA sockfilt for passive data channel quits (pid 145892) 10:33:38.707616 DATA sockfilt for passive data channel quit (pid 145892) 10:33:38.708002 =====> Closed passive DATA connection 10:33:38.708466 > "226 File transfer complete[CR][LF]" 10:33:38.747974 < "QUIT" 10:33:38.749204 > "221 bye bye baby[CR][LF]" 10:33:38.757674 MAIN sockfilt said DISC 10:33:38.758264 ====> Client disconnected 10:33:38.759088 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:39.318347 ====> Client connect 10:33:39.321702 Received DATA (on stdin) 10:33:39.322113 > 160 bytes data, server => client 10:33:39.322285 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:39.322393 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:39.322494 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:39.323619 < 16 bytes data, client => server 10:33:39.323828 'USER anonymous\r\n' 10:33:39.326700 Received DATA (on stdin) 10:33:39.326920 > 33 bytes data, server => client 10:33:39.327063 '331 We are happy you popped in!\r\n' 10:33:39.328053 < 22 bytes data, client => server 10:33:39.328266 'PASS ftp@example.com\r\n' 10:33:39.329744 Received DATA (on stdin) 10:33:39.329965 > 30 bytes data, server => client 10:33:39.330929 '230 Welcome you silly person\r\n' 10:33:39.331898 < 5 bytes data, client => server 10:33:39.332133 'PWD\r\n' 10:33:39.333588 Received DATA (on stdin) 10:33:39.333866 > 30 bytes data, server => client 10:33:39.334724 '257 "/" is current directory\r\n' 10:33:39.335793 < 6 bytes data, client => server 10:33:39.336035 'EPSV\r\n' 10:33:39.356022 Received DATA (on stdin) 10:33:39.356327 > 38 bytes data, server => client 10:33:39.356472 '229 Entering Passive Mode (|||40623|)\n' 10:33:39.358227 < 8 bytes data, client => server 10:33:39.358496 'TYPE I\r\n' 10:33:39.362305 Received DATA (on stdin) 10:33:39.362480 > 33 bytes data, server => client 10:33:39.362566 '200 I modify TYPE as you wanted\r\n' 10:33:39.363416 < 21 bytes data, client => server 10:33:39.363621 'SIZE verifiedserver\r\n' 10:33:39.365500 Received DATA (on stdin) 10:33:39.365790 > 8 bytes data, server => client 10:33:39.366544 '213 17\r\n' 10:33:39.367484 < 21 bytes data, client => server 10:33:39.367779 'RETR verifiedserver\r\n' 10:33:39.371659 Received DATA (on stdin) 10:33:39.371923 > 29 bytes data, server => client 10:33:39.372035 '150 Binary junk (17 bytes).\r\n' 10:33:39.376923 Received DATA (on stdin) 10:33:39.377160 > 28 bytes data, server => client 10:33:39.377276 '226 File transfer complete\r\n' 10:33:39.414583 < 6 bytes data, client => server 10:33:39.414774 'QUIT\r\n' 10:33:39.416494 Received DATA (on stdin) 10:33:39.416740 > 18 bytes data, server => client 10:33:39.417994 '221 bye bye baby\r\n' 10:33:39.421798 ====> Client disconnect 10:33:39.427411 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:38.351355 Running IPv4 version 10:33:38.351930 Listening on port 40623 10:33:38.352437 Wrote pid 145892 to log/7/server/ftp_sockdata.pid 10:33:38.352614 Received PING (on stdin) 10:33:38.353684 Received PORT (on stdin) 10:33:38.357890 ====> Client connect 10:33:38.371729 Received DATA (on stdin) 10:33:38.371923 > 17 bytes data, server => client 10:33:38.372031 'WE ROOLZ: 79543\r\n' 10:33:38.372363 Received DISC (on stdin) 10:33:38.372571 ====> Client forcibly disconnected 10:33:38.374076 Received QUIT (on stdin) 10:33:38.374252 quits 10:33:38.374674 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1359 === End of file server.cmd === Start of file valgrind1359 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1359 test 1361...[FTP download, file with C-D inside, using -O -i -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1361 ../src/curl -q --trace-ascii log/6/trace1361 --trace-time ftp://127.0.0.1:33323/path/file1361 -O -i -D log/6/heads1361 --output-dir log/6 > log/6/stdout1361 2> log/6/stderr1361 1361: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1361 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1361 ../src/curl -q --trace-ascii log/6/trace1361 --trace-time ftp://127.0.0.1:33323/path/file1361 -O -i -D log/6/heads1361 --output-dir log/6 > log/6/stdout1361 2> log/6/stderr1361 === End of file commands.log === Start of file ftp_server.log 10:33:38.802741 ====> Client connect 10:33:38.803767 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:38.810539 < "USER anonymous" 10:33:38.810905 > "331 We are happy you popped in![CR][LF]" 10:33:38.813079 < "PASS ftp@example.com" 10:33:38.813649 > "230 Welcome you silly person[CR][LF]" 10:33:38.816540 < "PWD" 10:33:38.817068 > "257 "/" is current directory[CR][LF]" 10:33:38.824029 < "EPSV" 10:33:38.824484 ====> Passive DATA channel requested by client 10:33:38.824774 DATA sockfilt for passive data channel starting... 10:33:38.843001 DATA sockfilt for passive data channel started (pid 145946) 10:33:38.846721 DATA sockfilt for passive data channel listens on port 38383 10:33:38.847342 > "229 Entering Passive Mode (|||38383|)[LF]" 10:33:38.847678 Client has been notified that DATA conn will be accepted on port 38383 10:33:38.852324 Client connects to port 38383 10:33:38.852751 ====> Client established passive DATA connection on port 38383 10:33:38.853772 < "TYPE I" 10:33:38.854295 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:38.856501 < "SIZE verifiedserver" 10:33:38.856994 > "213 17[CR][LF]" 10:33:38.863420 < "RETR verifiedserver" 10:33:38.864041 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1362 ../src/curl -q --trace-ascii log/8/trace1362 --trace-time ftp://127.0.0.1:42977/path/file1362 -O -i -D - --output-dir log/8 > log/8/stdout1362 2> log/8/stderr1362 38.864937 =====> Closing passive DATA connection... 10:33:38.865182 Server disconnects passive DATA connection 10:33:38.866536 Server disconnected passive DATA connection 10:33:38.866941 DATA sockfilt for passive data channel quits (pid 145946) 10:33:38.868903 DATA sockfilt for passive data channel quit (pid 145946) 10:33:38.869297 =====> Closed passive DATA connection 10:33:38.869793 > "226 File transfer complete[CR][LF]" 10:33:38.909889 < "QUIT" 10:33:38.910412 > "221 bye bye baby[CR][LF]" 10:33:38.920223 MAIN sockfilt said DISC 10:33:38.921353 ====> Client disconnected 10:33:38.922170 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:39.470106 ====> Client connect 10:33:39.471666 Received DATA (on stdin) 10:33:39.471891 > 160 bytes data, server => client 10:33:39.471994 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:39.472070 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:39.472142 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:39.473040 < 16 bytes data, client => server 10:33:39.473282 'USER anonymous\r\n' 10:33:39.479075 Received DATA (on stdin) 10:33:39.479223 > 33 bytes data, server => client 10:33:39.479314 '331 We are happy you popped in!\r\n' 10:33:39.479939 < 22 bytes data, client => server 10:33:39.480137 'PASS ftp@example.com\r\n' 10:33:39.482026 Received DATA (on stdin) 10:33:39.482279 > 30 bytes data, server => client 10:33:39.482386 '230 Welcome you silly person\r\n' 10:33:39.483266 < 5 bytes data, client => server 10:33:39.483512 'PWD\r\n' 10:33:39.485151 Received DATA (on stdin) 10:33:39.485310 > 30 bytes data, server => client 10:33:39.485718 '257 "/" is current directory\r\n' 10:33:39.490671 < 6 bytes data, client => server 10:33:39.490909 'EPSV\r\n' 10:33:39.518157 Received DATA (on stdin) 10:33:39.518481 > 38 bytes data, server => client 10:33:39.518637 '229 Entering Passive Mode (|||38383|)\n' 10:33:39.520128 < 8 bytes data, client => server 10:33:39.520328 'TYPE I\r\n' 10:33:39.522231 Received DATA (on stdin) 10:33:39.522447 > 33 bytes data, server => client 10:33:39.522547 '200 I modify TYPE as you wanted\r\n' 10:33:39.523214 < 21 bytes data, client => server 10:33:39.523432 'SIZE verifiedserver\r\n' 10:33:39.528934 Received DATA (on stdin) 10:33:39.529210 > 8 bytes data, server => client 10:33:39.529312 '213 17\r\n' 10:33:39.530213 < 21 bytes data, client => server 10:33:39.530441 'RETR verifiedserver\r\n' 10:33:39.532460 Received DATA (on stdin) 10:33:39.532716 > 29 bytes data, server => client 10:33:39.532843 '150 Binary junk (17 bytes).\r\n' 10:33:39.538345 Received DATA (on stdin) 10:33:39.538644 > 28 bytes data, server => client 10:33:39.538775 '226 File transfer complete\r\n' 10:33:39.576550 < 6 bytes data, client => server 10:33:39.576782 'QUIT\r\n' 10:33:39.581974 Received DATA (on stdin) 10:33:39.582236 > 18 bytes data, server => client 10:33:39.582332 '221 bye bye baby\r\n' 10:33:39.587711 ====> Client disconnect 10:33:39.588617 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:38.503759 Running IPv4 version 10:33:38.504324 Listening on port 38383 10:33:38.504762 Wrote pid 145946 to log/6/server/ftp_sockdata.pid 10:33:38.509486 Received PING (on stdin) 10:33:38.513755 Received PORT (on stdin) 10:33:38.519822 ====> Client connect 10:33:38.533252 Received DATA (on stdin) 10:33:38.533541 > 17 bytes data, server => client 10:33:38.533674 'WE ROOLZ: 79480\r\n' 10:33:38.534048 Received DISC (on stdin) 10:33:38.534316 ====> Client forcibly disconnected 10:33:38.535187 Received QUIT (on stdin) 10:33:38.535375 quits 10:33:38.535858 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1361 === End of file server.cmd === Start of file valgrind1361 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1361 test 1362...[FTP download, file with C-D inside, using -O -i -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1362 ../src/curl -q --trace-ascii log/8/trace1362 --trace-time ftp://127.0.0.1:42977/path/file1362 -O -i -D - --output-dir log/8 > log/8/stdout1362 2> log/8/stderr1362 1362: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1362 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1362 ../src/curl -q --trace-ascii log/8/trace1362 --trace-time ftp://127.0.0.1:42977/path/file1362 -O -i -D - --output-dir log/8 > log/8/stdout1362 2> log/8/stderr1362 === End of file commands.log === Start of file ftp_server.log 10:33:38.950242 ====> Client connect 10:33:38.952149 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:38.958415 < "USER anonymous" 10:33:38.958877 > "331 We are happy you popped in![CR][LF]" 10:33:38.960544 < "PASS ftp@example.com" 10:33:38.960981 > "230 Welcome you silly person[CR][LF]" 10:33:38.968407 < "PWD" 10:33:38.968906 > "257 "/" is current directory[CR][LF]" 10:33:38.971614 < "EPSV" 10:33:38.971952 ====> Passive DATA channel requested by client 10:33:38.972170 DATA sockfilt for passive data channel starting... 10:33:38.986465 DATA sockfilt for passive data channel started (pid 146010) 10:33:38.990808 DATA sockfilt for passive data channel listens on port 34869 10:33:38.991459 > "229 Entering Passive Mode (|||34869|)[LF]" 10:33:38.991876 Client has been notified that DATA conn will be accepted on port 34869 10:33:39.002766 Client connects to port 34869 10:33:39.003241 ====> Client established passive DATA connection on port 34869 10:33:39.004190 < "TYPE I" 10:33:39.004718 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:39.014469 < "SIZE verifiedserver" 10:33:39.015178 > "213 17[CR][LF]" 10:33:39.022591 < "RETR verifiedserver" 10:33:39.023261 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:39.024142 =====> Closing passive DATA connection... 10:33:39.024468 Server disconnects passive DATA connection 10:33:39.027940 Server disconnected passive DATA connection 10:33:39.028442 DATA sockfilt for passive data channel quits (pid 146010) 10:33:39.033731 DATA sockfilt for passive data channel quit (pid 146010) 10:33:39.034187 =====> Closed passive DATA connection 10:33:39.034668 > "226 File transfer complete[CCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1363 ../src/curl -q --trace-ascii log/2/trace1363 --trace-time ftp://127.0.0.1:37959/path/file1363 -O -i --output-dir log/2 > log/2/stdout1363 2> log/2/stderr1363 R][LF]" 10:33:39.068490 < "QUIT" 10:33:39.068865 > "221 bye bye baby[CR][LF]" 10:33:39.074399 MAIN sockfilt said DISC 10:33:39.074831 ====> Client disconnected 10:33:39.075373 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:38.617526 ====> Client connect 10:33:38.619266 Received DATA (on stdin) 10:33:38.619537 > 160 bytes data, server => client 10:33:38.620009 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:38.620182 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:38.620267 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:38.623321 < 16 bytes data, client => server 10:33:38.623572 'USER anonymous\r\n' 10:33:38.626821 Received DATA (on stdin) 10:33:38.626995 > 33 bytes data, server => client 10:33:38.627089 '331 We are happy you popped in!\r\n' 10:33:38.627755 < 22 bytes data, client => server 10:33:38.627937 'PASS ftp@example.com\r\n' 10:33:38.628918 Received DATA (on stdin) 10:33:38.629123 > 30 bytes data, server => client 10:33:38.629216 '230 Welcome you silly person\r\n' 10:33:38.631462 < 5 bytes data, client => server 10:33:38.631696 'PWD\r\n' 10:33:38.636807 Received DATA (on stdin) 10:33:38.637029 > 30 bytes data, server => client 10:33:38.637133 '257 "/" is current directory\r\n' 10:33:38.638862 < 6 bytes data, client => server 10:33:38.639101 'EPSV\r\n' 10:33:38.660881 Received DATA (on stdin) 10:33:38.661125 > 38 bytes data, server => client 10:33:38.661265 '229 Entering Passive Mode (|||34869|)\n' 10:33:38.667360 < 8 bytes data, client => server 10:33:38.667559 'TYPE I\r\n' 10:33:38.672675 Received DATA (on stdin) 10:33:38.672918 > 33 bytes data, server => client 10:33:38.673051 '200 I modify TYPE as you wanted\r\n' 10:33:38.677600 < 21 bytes data, client => server 10:33:38.677874 'SIZE verifiedserver\r\n' 10:33:38.683104 Received DATA (on stdin) 10:33:38.683380 > 8 bytes data, server => client 10:33:38.683499 '213 17\r\n' 10:33:38.688143 < 21 bytes data, client => server 10:33:38.688373 'RETR verifiedserver\r\n' 10:33:38.691164 Received DATA (on stdin) 10:33:38.691389 > 29 bytes data, server => client 10:33:38.691471 '150 Binary junk (17 bytes).\r\n' 10:33:38.702582 Received DATA (on stdin) 10:33:38.702859 > 28 bytes data, server => client 10:33:38.703001 '226 File transfer complete\r\n' 10:33:38.735663 < 6 bytes data, client => server 10:33:38.735899 'QUIT\r\n' 10:33:38.736746 Received DATA (on stdin) 10:33:38.736904 > 18 bytes data, server => client 10:33:38.736991 '221 bye bye baby\r\n' 10:33:38.741510 ====> Client disconnect 10:33:38.745462 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:38.652523 Running IPv4 version 10:33:38.653120 Listening on port 34869 10:33:38.653777 Wrote pid 146010 to log/8/server/ftp_sockdata.pid 10:33:38.653999 Received PING (on stdin) 10:33:38.654944 Received PORT (on stdin) 10:33:38.666923 ====> Client connect 10:33:38.691881 Received DATA (on stdin) 10:33:38.692093 > 17 bytes data, server => client 10:33:38.692198 'WE ROOLZ: 86552\r\n' 10:33:38.694091 Received DISC (on stdin) 10:33:38.694350 ====> Client forcibly disconnected 10:33:38.696745 Received QUIT (on stdin) 10:33:38.696959 quits 10:33:38.697533 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1362 === End of file server.cmd === Start of file valgrind1362 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1362 test 1363...[FTP download, file with C-D inside, using -O -i, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1363 ../src/curl -q --trace-ascii log/2/trace1363 --trace-time ftp://127.0.0.1:37959/path/file1363 -O -i --output-dir log/2 > log/2/stdout1363 2> log/2/stderr1363 1363: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1363 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1363 ../src/curl -q --trace-ascii log/2/trace1363 --trace-time ftp://127.0.0.1:37959/path/file1363 -O -i --output-dir log/2 > log/2/stdout1363 2> log/2/stderr1363 === End of file commands.log === Start of file ftp_server.log 10:33:39.001642 ====> Client connect 10:33:39.003111 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:39.017445 < "USER anonymous" 10:33:39.018162 > "331 We are happy you popped in![CR][LF]" 10:33:39.028533 < "PASS ftp@example.com" 10:33:39.028990 > "230 Welcome you silly person[CR][LF]" 10:33:39.030986 < "PWD" 10:33:39.031528 > "257 "/" is current directory[CR][LF]" 10:33:39.036900 < "EPSV" 10:33:39.037337 ====> Passive DATA channel requested by client 10:33:39.037735 DATA sockfilt for passive data channel starting... 10:33:39.051531 DATA sockfilt for passive data channel started (pid 146039) 10:33:39.052988 DATA sockfilt for passive data channel listens on port 43715 10:33:39.053646 > "229 Entering Passive Mode (|||43715|)[LF]" 10:33:39.054066 Client has been notified that DATA conn will be accepted on port 43715 10:33:39.056292 Client connects to port 43715 10:33:39.056842 ====> Client established passive DATA connection on port 43715 10:33:39.058332 < "TYPE I" 10:33:39.058906 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:39.062350 < "SIZE verifiedserver" 10:33:39.062851 > "213 17[CR][LF]" 10:33:39.064388 < "RETR verifiedserver" 10:33:39.064933 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:39.065812 =====> Closing passive DATA connection... 10:33:39.066239 Server disconnects passive DATA connection 10:33:39.068014 Server disconnected passive DATA connection 10:33:39.068429 DATA sockfilt for passive data channel quits (pid 146039) 10:33:39.070503 DATA sockfilt for passive data channel quit (pid 146039) 10:33:39.070919 =====> Closed passive DATA connection 10:33:39.071362 > "226 File transfer complete[CR][LF]" 10:33:39.114423 < "QUIT" 10:33:39.115135 > "221 bye bye baby[CR][LF]" 10:33:39.118706 MAIN sockfilt said DISC 10:33:39.119324 ====> Client disconnected 10:33:39.120197 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:38.667626 ====> Client connect 10:33:38.673655 Received DATA (on stdin) 10:33:38.673975 > 160 bytes data, server => client 10:33:38.674099 '220- _ _ ___CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1364 ../src/curl -q --trace-ascii log/1/trace1364 --trace-time http://127.0.0.1:33601/1364 -o log/1/outfile1364 -D log/1/heads1364 > log/1/stdout1364 2> log/1/stderr1364 _ _ \r\n220- ___| | | | _ \| | ' 10:33:38.674200 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:38.674283 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:38.678429 < 16 bytes data, client => server 10:33:38.678699 'USER anonymous\r\n' 10:33:38.689706 Received DATA (on stdin) 10:33:38.689995 > 33 bytes data, server => client 10:33:38.690146 '331 We are happy you popped in!\r\n' 10:33:38.691314 < 22 bytes data, client => server 10:33:38.691453 'PASS ftp@example.com\r\n' 10:33:38.696894 Received DATA (on stdin) 10:33:38.697045 > 30 bytes data, server => client 10:33:38.697146 '230 Welcome you silly person\r\n' 10:33:38.697989 < 5 bytes data, client => server 10:33:38.698171 'PWD\r\n' 10:33:38.699451 Received DATA (on stdin) 10:33:38.699678 > 30 bytes data, server => client 10:33:38.699801 '257 "/" is current directory\r\n' 10:33:38.703727 < 6 bytes data, client => server 10:33:38.703991 'EPSV\r\n' 10:33:38.721706 Received DATA (on stdin) 10:33:38.721922 > 38 bytes data, server => client 10:33:38.722056 '229 Entering Passive Mode (|||43715|)\n' 10:33:38.723611 < 8 bytes data, client => server 10:33:38.723818 'TYPE I\r\n' 10:33:38.727329 Received DATA (on stdin) 10:33:38.727537 > 33 bytes data, server => client 10:33:38.727662 '200 I modify TYPE as you wanted\r\n' 10:33:38.728932 < 21 bytes data, client => server 10:33:38.729166 'SIZE verifiedserver\r\n' 10:33:38.730784 Received DATA (on stdin) 10:33:38.730945 > 8 bytes data, server => client 10:33:38.731041 '213 17\r\n' 10:33:38.731656 < 21 bytes data, client => server 10:33:38.731853 'RETR verifiedserver\r\n' 10:33:38.732850 Received DATA (on stdin) 10:33:38.733039 > 29 bytes data, server => client 10:33:38.733141 '150 Binary junk (17 bytes).\r\n' 10:33:38.741707 Received DATA (on stdin) 10:33:38.741936 > 28 bytes data, server => client 10:33:38.742043 '226 File transfer complete\r\n' 10:33:38.778697 < 6 bytes data, client => server 10:33:38.779020 'QUIT\r\n' 10:33:38.783075 Received DATA (on stdin) 10:33:38.783365 > 18 bytes data, server => client 10:33:38.783531 '221 bye bye baby\r\n' 10:33:38.786071 ====> Client disconnect 10:33:38.792645 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:39.716823 Running IPv4 version 10:33:39.718408 Listening on port 43715 10:33:39.718941 Wrote pid 146039 to log/2/server/ftp_sockdata.pid 10:33:39.719125 Received PING (on stdin) 10:33:39.720029 Received PORT (on stdin) 10:33:39.723243 ====> Client connect 10:33:39.734546 Received DATA (on stdin) 10:33:39.734760 > 17 bytes data, server => client 10:33:39.734868 'WE ROOLZ: 79558\r\n' 10:33:39.735225 Received DISC (on stdin) 10:33:39.735446 ====> Client forcibly disconnected 10:33:39.736706 Received QUIT (on stdin) 10:33:39.736895 quits 10:33:39.737337 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1363 === End of file server.cmd === Start of file valgrind1363 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1363 test 1364...[HTTP GET -o fname without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1364 ../src/curl -q --trace-ascii log/1/trace1364 --trace-time http://127.0.0.1:33601/1364 -o log/1/outfile1364 -D log/1/heads1364 > log/1/stdout1364 2> log/1/stderr1364 1364: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1364 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1364 ../src/curl -q --trace-ascii log/1/trace1364 --trace-time http://127.0.0.1:33601/1364 -o log/1/outfile1364 -D log/1/heads1364 > log/1/stdout1364 2> log/1/stderr1364 === End of file commands.log === Start of file http_server.log 10:33:40.078552 ====> Client connect 10:33:40.078909 accept_connection 3 returned 4 10:33:40.079189 accept_connection 3 returned 0 10:33:40.080537 Read 93 bytes 10:33:40.080736 Process 93 bytes request 10:33:40.080828 Got request: GET /verifiedserver HTTP/1.1 10:33:40.080905 Are-we-friendly question received 10:33:40.081207 Wrote request (93 bytes) input to log/1/server.input 10:33:40.081477 Identifying ourselves as friends 10:33:40.082817 Response sent (57 bytes) and written to log/1/server.response 10:33:40.083004 special request received, no persistency 10:33:40.083081 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 59708 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1364 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1364 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1365 ../src/curl -q --trace-ascii log/5/trace1365 --trace-time http://127.0.0.1:41733/1365 -o log/5/outfile1365 -D - > log/5/stdout1365 2> log/5/stderr1365 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1366 ../src/curl -q --trace-ascii log/3/trace1366 --trace-time http://127.0.0.1:36933/1366 -o log/3/outfile1366 -D log/3/heads1366 > log/3/stdout1366 2> log/3/stderr1366 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1367 ../src/curl -q --trace-ascii log/7/trace1367 --trace-time http://127.0.0.1:40129/1367 -o log/7/outfile1367 -D - > log/7/stdout1367 2> log/7/stderr1367 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1364 test 1365...[HTTP GET -o fname without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1365 ../src/curl -q --trace-ascii log/5/trace1365 --trace-time http://127.0.0.1:41733/1365 -o log/5/outfile1365 -D - > log/5/stdout1365 2> log/5/stderr1365 1365: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1365 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1365 ../src/curl -q --trace-ascii log/5/trace1365 --trace-time http://127.0.0.1:41733/1365 -o log/5/outfile1365 -D - > log/5/stdout1365 2> log/5/stderr1365 === End of file commands.log === Start of file http_server.log 10:33:40.220697 ====> Client connect 10:33:40.221094 accept_connection 3 returned 4 10:33:40.221298 accept_connection 3 returned 0 10:33:40.221625 Read 93 bytes 10:33:40.221741 Process 93 bytes request 10:33:40.221833 Got request: GET /verifiedserver HTTP/1.1 10:33:40.221931 Are-we-friendly question received 10:33:40.222264 Wrote request (93 bytes) input to log/5/server.input 10:33:40.222587 Identifying ourselves as friends 10:33:40.223569 Response sent (56 bytes) and written to log/5/server.response 10:33:40.223751 special request received, no persistency 10:33:40.223833 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 57808 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1365 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1365 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1365 test 1366...[HTTP GET -o fname and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1366 ../src/curl -q --trace-ascii log/3/trace1366 --trace-time http://127.0.0.1:36933/1366 -o log/3/outfile1366 -D log/3/heads1366 > log/3/stdout1366 2> log/3/stderr1366 1366: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1366 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1366 ../src/curl -q --trace-ascii log/3/trace1366 --trace-time http://127.0.0.1:36933/1366 -o log/3/outfile1366 -D log/3/heads1366 > log/3/stdout1366 2> log/3/stderr1366 === End of file commands.log === Start of file http_server.log 10:33:39.468715 ====> Client connect 10:33:39.469151 accept_connection 3 returned 4 10:33:39.469955 accept_connection 3 returned 0 10:33:39.470266 Read 93 bytes 10:33:39.470399 Process 93 bytes request 10:33:39.470524 Got request: GET /verifiedserver HTTP/1.1 10:33:39.470646 Are-we-friendly question received 10:33:39.470995 Wrote request (93 bytes) input to log/3/server.input 10:33:39.471283 Identifying ourselves as friends 10:33:39.472371 Response sent (56 bytes) and written to log/3/server.response 10:33:39.472583 special request received, no persistency 10:33:39.472670 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 50016 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1366 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1366 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1366 test 1367...[HTTP GET -o fname and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1367 ../src/curl -q --trace-ascii log/7/trace1367 --trace-tCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1368 ../src/curl -q --trace-ascii log/4/trace1368 --trace-time http://127.0.0.1:36757/1368 -J -o log/4/outfile1368 -D log/4/heads1368 > log/4/stdout1368 2> log/4/stderr1368 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1369 ../src/curl -q --trace-ascii log/6/trace1369 --trace-time http://127.0.0.1:33363/1369 -J -o log/6/outfile1369 -D - > log/6/stdout1369 2> log/6/stderr1369 ime http://127.0.0.1:40129/1367 -o log/7/outfile1367 -D - > log/7/stdout1367 2> log/7/stderr1367 1367: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1367 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1367 ../src/curl -q --trace-ascii log/7/trace1367 --trace-time http://127.0.0.1:40129/1367 -o log/7/outfile1367 -D - > log/7/stdout1367 2> log/7/stderr1367 === End of file commands.log === Start of file http_server.log 10:33:39.498962 ====> Client connect 10:33:39.499399 accept_connection 3 returned 4 10:33:39.499644 accept_connection 3 returned 0 10:33:39.499814 Read 93 bytes 10:33:39.499909 Process 93 bytes request 10:33:39.500002 Got request: GET /verifiedserver HTTP/1.1 10:33:39.500067 Are-we-friendly question received 10:33:39.500287 Wrote request (93 bytes) input to log/7/server.input 10:33:39.500441 Identifying ourselves as friends 10:33:39.501089 Response sent (56 bytes) and written to log/7/server.response 10:33:39.501202 special request received, no persistency 10:33:39.501289 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 53246 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1367 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1367 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1367 test 1368...[HTTP GET -o fname -J without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1368 ../src/curl -q --trace-ascii log/4/trace1368 --trace-time http://127.0.0.1:36757/1368 -J -o log/4/outfile1368 -D log/4/heads1368 > log/4/stdout1368 2> log/4/stderr1368 1368: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1368 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1368 ../src/curl -q --trace-ascii log/4/trace1368 --trace-time http://127.0.0.1:36757/1368 -J -o log/4/outfile1368 -D log/4/heads1368 > log/4/stdout1368 2> log/4/stderr1368 === End of file commands.log === Start of file http_server.log 10:33:40.570666 ====> Client connect 10:33:40.571103 accept_connection 3 returned 4 10:33:40.571411 accept_connection 3 returned 0 10:33:40.571592 Read 93 bytes 10:33:40.571691 Process 93 bytes request 10:33:40.571806 Got request: GET /verifiedserver HTTP/1.1 10:33:40.571911 Are-we-friendly question received 10:33:40.572159 Wrote request (93 bytes) input to log/4/server.input 10:33:40.572440 Identifying ourselves as friends 10:33:40.573646 Response sent (56 bytes) and written to log/4/server.response 10:33:40.573866 special request received, no persistency 10:33:40.573958 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35390 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1368 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1368 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1368 test 1369...[HTTP GET -o fname -J without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1369 ../src/curl -q --trace-ascii log/6/trace1369 --trace-time http://127.0.0.1:33363/1369 -J -o log/6/outfile1369 -D - > log/6/stdout1369 2> log/6/stderr1369 1369: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1369 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/teCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1370 ../src/curl -q --trace-ascii log/8/trace1370 --trace-time http://127.0.0.1:36007/1370 -J -o log/8/outfile1370 -D log/8/heads1370 > log/8/stdout1370 2> log/8/stderr1370 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1371 ../src/curl -q --trace-ascii log/2/trace1371 --trace-time http://127.0.0.1:43789/1371 -J -o log/2/outfile1371 -D - > log/2/stdout1371 2> log/2/stderr1371 sts/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1369 ../src/curl -q --trace-ascii log/6/trace1369 --trace-time http://127.0.0.1:33363/1369 -J -o log/6/outfile1369 -D - > log/6/stdout1369 2> log/6/stderr1369 === End of file commands.log === Start of file http_server.log 10:33:39.665042 ====> Client connect 10:33:39.665428 accept_connection 3 returned 4 10:33:39.665686 accept_connection 3 returned 0 10:33:39.665849 Read 93 bytes 10:33:39.665943 Process 93 bytes request 10:33:39.666031 Got request: GET /verifiedserver HTTP/1.1 10:33:39.666118 Are-we-friendly question received 10:33:39.666356 Wrote request (93 bytes) input to log/6/server.input 10:33:39.666539 Identifying ourselves as friends 10:33:39.667232 Response sent (56 bytes) and written to log/6/server.response 10:33:39.667344 special request received, no persistency 10:33:39.667417 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 35118 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1369 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1369 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1369 test 1370...[HTTP GET -o fname -J and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1370 ../src/curl -q --trace-ascii log/8/trace1370 --trace-time http://127.0.0.1:36007/1370 -J -o log/8/outfile1370 -D log/8/heads1370 > log/8/stdout1370 2> log/8/stderr1370 1370: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1370 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1370 ../src/curl -q --trace-ascii log/8/trace1370 --trace-time http://127.0.0.1:36007/1370 -J -o log/8/outfile1370 -D log/8/heads1370 > log/8/stdout1370 2> log/8/stderr1370 === End of file commands.log === Start of file http_server.log 10:33:39.749032 ====> Client connect 10:33:39.749507 accept_connection 3 returned 4 10:33:39.749794 accept_connection 3 returned 0 10:33:39.749973 Read 93 bytes 10:33:39.750099 Process 93 bytes request 10:33:39.750211 Got request: GET /verifiedserver HTTP/1.1 10:33:39.750312 Are-we-friendly question received 10:33:39.750555 Wrote request (93 bytes) input to log/8/server.input 10:33:39.750726 Identifying ourselves as friends 10:33:39.751521 Response sent (56 bytes) and written to log/8/server.response 10:33:39.751701 special request received, no persistency 10:33:39.751785 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 39602 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1370 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1370 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1370 test 1371...[HTTP GET -o fname -J and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1371 ../src/curl -q --trace-ascii log/2/trace1371 --trace-time http://127.0.0.1:43789/1371 -J -o log/2/outfile1371 -D - > log/2/stdout1371 2> log/2/stderr1371 1371: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1371 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1371 ../src/curl -q --trace-ascii log/2/trace1371 --trace-time http://127.0.0.1:43789/1371 -J -o log/2/outfile1371 -D - > log/2/stdout1371 2> log/2/stderr1371 === End of file commands.log === Start of file http_server.log 10:33:39.842461 ====> Client connect 10:33:39.842917 accept_connection 3 returned 4 10:33:39.843195 accept_connection 3 returned 0 10:33:39.844184 Read 93 bytesCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1372 ../src/curl -q --trace-ascii log/1/trace1372 --trace-time http://127.0.0.1:33601/1372 -i -o log/1/outfile1372 -D log/1/heads1372 > log/1/stdout1372 2> log/1/stderr1372 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1373 ../src/curl -q --trace-ascii log/5/trace1373 --trace-time http://127.0.0.1:41733/1373 -i -o log/5/outfile1373 -D - > log/5/stdout1373 2> log/5/stderr1373 10:33:39.844471 Process 93 bytes request 10:33:39.844615 Got request: GET /verifiedserver HTTP/1.1 10:33:39.844705 Are-we-friendly question received 10:33:39.845010 Wrote request (93 bytes) input to log/2/server.input 10:33:39.845265 Identifying ourselves as friends 10:33:39.846208 Response sent (56 bytes) and written to log/2/server.response 10:33:39.846432 special request received, no persistency 10:33:39.846525 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50790 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1371 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1371 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1371 test 1372...[HTTP GET -o fname -i without Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1372 ../src/curl -q --trace-ascii log/1/trace1372 --trace-time http://127.0.0.1:33601/1372 -i -o log/1/outfile1372 -D log/1/heads1372 > log/1/stdout1372 2> log/1/stderr1372 1372: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1372 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1372 ../src/curl -q --trace-ascii log/1/trace1372 --trace-time http://127.0.0.1:33601/1372 -i -o log/1/outfile1372 -D log/1/heads1372 > log/1/stdout1372 2> log/1/stderr1372 === End of file commands.log === Start of file http_server.log 10:33:41.157614 ====> Client connect 10:33:41.158741 accept_connection 3 returned 4 10:33:41.159068 accept_connection 3 returned 0 10:33:41.159282 Read 93 bytes 10:33:41.159423 Process 93 bytes request 10:33:41.159542 Got request: GET /verifiedserver HTTP/1.1 10:33:41.159636 Are-we-friendly question received 10:33:41.159986 Wrote request (93 bytes) input to log/1/server.input 10:33:41.160289 Identifying ourselves as friends 10:33:41.165515 Response sent (57 bytes) and written to log/1/server.response 10:33:41.165745 special request received, no persistency 10:33:41.165844 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 58158 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1372 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1372 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1372 test 1373...[HTTP GET -o fname -i without Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1373 ../src/curl -q --trace-ascii log/5/trace1373 --trace-time http://127.0.0.1:41733/1373 -i -o log/5/outfile1373 -D - > log/5/stdout1373 2> log/5/stderr1373 1373: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1373 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1373 ../src/curl -q --trace-ascii log/5/trace1373 --trace-time http://127.0.0.1:41733/1373 -i -o log/5/outfile1373 -D - > log/5/stdout1373 2> log/5/stderr1373 === End of file commands.log === Start of file http_server.log 10:33:41.255103 ====> Client connect 10:33:41.255586 accept_connection 3 returned 4 10:33:41.255789 accept_connection 3 returned 0 10:33:41.255945 Read 93 bytes 10:33:41.256049 Process 93 bytes request 10:33:41.256147 Got request: GET /verifiedserver HTTP/1.1 10:33:41.256224 Are-we-friendly question received 10:33:41.256469 Wrote request (93 bytes) input to log/5/server.input 10:33:41.256754 Identifying ourselves as friends 10:33:41.257847 Response sent (56 bytes) and written to log/5/server.response 10:33:41.258021 special request received, no persistency 10:33:41.258124 ====> Client disconnect 0 === End of filCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1374 ../src/curl -q --trace-ascii log/3/trace1374 --trace-time http://127.0.0.1:36933/1374 -i -o log/3/outfile1374 -D log/3/heads1374 > log/3/stdout1374 2> log/3/stderr1374 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1375 ../src/curl -q --trace-ascii log/7/trace1375 --trace-time http://127.0.0.1:40129/1375 -i -o log/7/outfile1375 -D - > log/7/stdout1375 2> log/7/stderr1375 e http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 34524 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1373 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1373 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1373 test 1374...[HTTP GET -o fname -i and Content-Disposition, -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1374 ../src/curl -q --trace-ascii log/3/trace1374 --trace-time http://127.0.0.1:36933/1374 -i -o log/3/outfile1374 -D log/3/heads1374 > log/3/stdout1374 2> log/3/stderr1374 1374: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1374 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1374 ../src/curl -q --trace-ascii log/3/trace1374 --trace-time http://127.0.0.1:36933/1374 -i -o log/3/outfile1374 -D log/3/heads1374 > log/3/stdout1374 2> log/3/stderr1374 === End of file commands.log === Start of file http_server.log 10:33:40.475940 ====> Client connect 10:33:40.476337 accept_connection 3 returned 4 10:33:40.476578 accept_connection 3 returned 0 10:33:40.476745 Read 93 bytes 10:33:40.476877 Process 93 bytes request 10:33:40.476997 Got request: GET /verifiedserver HTTP/1.1 10:33:40.477086 Are-we-friendly question received 10:33:40.481626 Wrote request (93 bytes) input to log/3/server.input 10:33:40.481961 Identifying ourselves as friends 10:33:40.482823 Response sent (56 bytes) and written to log/3/server.response 10:33:40.483022 special request received, no persistency 10:33:40.483141 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 50128 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1374 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1374 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1374 test 1375...[HTTP GET -o fname -i and Content-Disposition, -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1375 ../src/curl -q --trace-ascii log/7/trace1375 --trace-time http://127.0.0.1:40129/1375 -i -o log/7/outfile1375 -D - > log/7/stdout1375 2> log/7/stderr1375 1375: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1375 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1375 ../src/curl -q --trace-ascii log/7/trace1375 --trace-time http://127.0.0.1:40129/1375 -i -o log/7/outfile1375 -D - > log/7/stdout1375 2> log/7/stderr1375 === End of file commands.log === Start of file http_server.log 10:33:40.546173 ====> Client connect 10:33:40.546638 accept_connection 3 returned 4 10:33:40.546879 accept_connection 3 returned 0 10:33:40.547046 Read 93 bytes 10:33:40.547163 Process 93 bytes request 10:33:40.547261 Got request: GET /verifiedserver HTTP/1.1 10:33:40.547353 Are-we-friendly question received 10:33:40.547616 Wrote request (93 bytes) input to log/7/server.input 10:33:40.547820 Identifying ourselves as friends 10:33:40.548628 Response sent (56 bytes) and written to log/7/server.response 10:33:40.548826 special request received, no persistency 10:33:40.548928 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46286 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === EndCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1376 ../src/curl -q --trace-ascii log/4/trace1376 --trace-time http://127.0.0.1:36757/1376 -i -o log/4/outfile1376 > log/4/stdout1376 2> log/4/stderr1376 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1377 ../src/curl -q --trace-ascii log/6/trace1377 --trace-time http://127.0.0.1:33363/1377 -i -o log/6/outfile1377 > log/6/stdout1377 2> log/6/stderr1377 of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1375 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1375 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1375 test 1376...[HTTP GET -o fname -i without Content-Disposition, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1376 ../src/curl -q --trace-ascii log/4/trace1376 --trace-time http://127.0.0.1:36757/1376 -i -o log/4/outfile1376 > log/4/stdout1376 2> log/4/stderr1376 1376: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1376 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1376 ../src/curl -q --trace-ascii log/4/trace1376 --trace-time http://127.0.0.1:36757/1376 -i -o log/4/outfile1376 > log/4/stdout1376 2> log/4/stderr1376 === End of file commands.log === Start of file http_server.log 10:33:41.595072 ====> Client connect 10:33:41.595404 accept_connection 3 returned 4 10:33:41.595626 accept_connection 3 returned 0 10:33:41.595761 Read 93 bytes 10:33:41.595839 Process 93 bytes request 10:33:41.595924 Got request: GET /verifiedserver HTTP/1.1 10:33:41.595991 Are-we-friendly question received 10:33:41.596208 Wrote request (93 bytes) input to log/4/server.input 10:33:41.596370 Identifying ourselves as friends 10:33:41.597018 Response sent (56 bytes) and written to log/4/server.response 10:33:41.597172 special request received, no persistency 10:33:41.597250 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 58656 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1376 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1376 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1376 test 1377...[HTTP GET -o fname -i and Content-Disposition, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1377 ../src/curl -q --trace-ascii log/6/trace1377 --trace-time http://127.0.0.1:33363/1377 -i -o log/6/outfile1377 > log/6/stdout1377 2> log/6/stderr1377 1377: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1377 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1377 ../src/curl -q --trace-ascii log/6/trace1377 --trace-time http://127.0.0.1:33363/1377 -i -o log/6/outfile1377 > log/6/stdout1377 2> log/6/stderr1377 === End of file commands.log === Start of file http_server.log 10:33:40.704511 ====> Client connect 10:33:40.704866 accept_connection 3 returned 4 10:33:40.705076 accept_connection 3 returned 0 10:33:40.705249 Read 93 bytes 10:33:40.705456 Process 93 bytes request 10:33:40.705604 Got request: GET /verifiedserver HTTP/1.1 10:33:40.705691 Are-we-friendly question received 10:33:40.705954 Wrote request (93 bytes) input to log/6/server.input 10:33:40.706165 Identifying ourselves as friends 10:33:40.706917 Response sent (56 bytes) and written to log/6/server.response 10:33:40.707073 special request received, no persistency 10:33:40.707142 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 54970 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1377 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1377 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. DCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1378 ../src/curl -q --trace-ascii log/8/trace1378 --trace-time ftp://127.0.0.1:42977/path/file1378 -o log/8/download1378 > log/8/stdout1378 2> log/8/stderr1378 etails of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1377 test 1378...[FTP DL, file without Content-Disposition inside, using -o fname] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1378 ../src/curl -q --trace-ascii log/8/trace1378 --trace-time ftp://127.0.0.1:42977/path/file1378 -o log/8/download1378 > log/8/stdout1378 2> log/8/stderr1378 1378: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1378 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1378 ../src/curl -q --trace-ascii log/8/trace1378 --trace-time ftp://127.0.0.1:42977/path/file1378 -o log/8/download1378 > log/8/stdout1378 2> log/8/stderr1378 === End of file commands.log === Start of file ftp_server.log 10:33:41.132651 ====> Client connect 10:33:41.134338 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:41.138593 < "USER anonymous" 10:33:41.139155 > "331 We are happy you popped in![CR][LF]" 10:33:41.146494 < "PASS ftp@example.com" 10:33:41.147028 > "230 Welcome you silly person[CR][LF]" 10:33:41.153816 < "PWD" 10:33:41.154421 > "257 "/" is current directory[CR][LF]" 10:33:41.160438 < "EPSV" 10:33:41.160891 ====> Passive DATA channel requested by client 10:33:41.161157 DATA sockfilt for passive data channel starting... 10:33:41.175210 DATA sockfilt for passive data channel started (pid 147046) 10:33:41.176540 DATA sockfilt for passive data channel listens on port 44193 10:33:41.177115 > "229 Entering Passive Mode (|||44193|)[LF]" 10:33:41.177574 Client has been notified that DATA conn will be accepted on port 44193 10:33:41.184266 Client connects to port 44193 10:33:41.184841 ====> Client established passive DATA connection on port 44193 10:33:41.189328 < "TYPE I" 10:33:41.189852 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:41.193583 < "SIZE verifiedserver" 10:33:41.194200 > "213 17[CR][LF]" 10:33:41.202393 < "RETR verifiedserver" 10:33:41.203015 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:41.203913 =====> Closing passive DATA connection... 10:33:41.204322 Server disconnects passive DATA connection 10:33:41.208786 Server disconnected passive DATA connection 10:33:41.209369 DATA sockfilt for passive data channel quits (pid 147046) 10:33:41.211841 DATA sockfilt for passive data channel quit (pid 147046) 10:33:41.212278 =====> Closed passive DATA connection 10:33:41.212766 > "226 File transfer complete[CR][LF]" 10:33:41.247931 < "QUIT" 10:33:41.248669 > "221 bye bye baby[CR][LF]" 10:33:41.255377 MAIN sockfilt said DISC 10:33:41.256037 ====> Client disconnected 10:33:41.256894 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:40.797893 ====> Client connect 10:33:40.802172 Received DATA (on stdin) 10:33:40.802520 > 160 bytes data, server => client 10:33:40.802656 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:40.802752 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:40.802835 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:40.805094 < 16 bytes data, client => server 10:33:40.805463 'USER anonymous\r\n' 10:33:40.808996 Received DATA (on stdin) 10:33:40.809265 > 33 bytes data, server => client 10:33:40.809511 '331 We are happy you popped in!\r\n' 10:33:40.813204 < 22 bytes data, client => server 10:33:40.813507 'PASS ftp@example.com\r\n' 10:33:40.814916 Received DATA (on stdin) 10:33:40.817867 > 30 bytes data, server => client 10:33:40.818000 '230 Welcome you silly person\r\n' 10:33:40.819958 < 5 bytes data, client => server 10:33:40.820177 'PWD\r\n' 10:33:40.822293 Received DATA (on stdin) 10:33:40.822535 > 30 bytes data, server => client 10:33:40.822657 '257 "/" is current directory\r\n' 10:33:40.825572 < 6 bytes data, client => server 10:33:40.825814 'EPSV\r\n' 10:33:40.846858 Received DATA (on stdin) 10:33:40.847105 > 38 bytes data, server => client 10:33:40.847211 '229 Entering Passive Mode (|||44193|)\n' 10:33:40.856479 < 8 bytes data, client => server 10:33:40.856711 'TYPE I\r\n' 10:33:40.859398 Received DATA (on stdin) 10:33:40.859634 > 33 bytes data, server => client 10:33:40.859723 '200 I modify TYPE as you wanted\r\n' 10:33:40.860608 < 21 bytes data, client => server 10:33:40.860851 'SIZE verifiedserver\r\n' 10:33:40.862055 Received DATA (on stdin) 10:33:40.862300 > 8 bytes data, server => client 10:33:40.862431 '213 17\r\n' 10:33:40.868477 < 21 bytes data, client => server 10:33:40.868760 'RETR verifiedserver\r\n' 10:33:40.870924 Received DATA (on stdin) 10:33:40.871142 > 29 bytes data, server => client 10:33:40.871259 '150 Binary junk (17 bytes).\r\n' 10:33:40.880672 Received DATA (on stdin) 10:33:40.880879 > 28 bytes data, server => client 10:33:40.881015 '226 File transfer complete\r\n' 10:33:40.914614 < 6 bytes data, client => server 10:33:40.914948 'QUIT\r\n' 10:33:40.916563 Received DATA (on stdin) 10:33:40.916858 > 18 bytes data, server => client 10:33:40.916984 '221 bye bye baby\r\n' 10:33:40.921834 ====> Client disconnect 10:33:40.925412 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:41.841454 Running IPv4 version 10:33:41.842088 Listening on port 44193 10:33:41.842575 Wrote pid 147046 to log/8/server/ftp_sockdata.pid 10:33:41.842775 Received PING (on stdin) 10:33:41.843677 Received PORT (on stdin) 10:33:41.851694 ====> Client connect 10:33:41.875074 Received DATA (on stdin) 10:33:41.875334 > 17 bytes data, server => client 10:33:41.875441 'WE ROOLZ: 86552\r\n' 10:33:41.875892 Received DISC (on stdin) 10:33:41.876132 ====> Client forcibly disconnected 10:33:41.877822 Received QUIT (on stdin) 10:33:41.878044 quits 10:33:41.878619 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1378 === End of file server.cmd === Start of file valgrind1378 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1379 ../src/curl -q --trace-ascii log/2/trace1379 --trace-time ftp://127.0.0.1:37959/path/file1379 -o log/2/download1379 -D log/2/heads1379 > log/2/stdout1379 2> log/2/stderr1379 package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1378 test 1379...[FTP DL, file without C-D inside, using -o fname -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1379 ../src/curl -q --trace-ascii log/2/trace1379 --trace-time ftp://127.0.0.1:37959/path/file1379 -o log/2/download1379 -D log/2/heads1379 > log/2/stdout1379 2> log/2/stderr1379 1379: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1379 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1379 ../src/curl -q --trace-ascii log/2/trace1379 --trace-time ftp://127.0.0.1:37959/path/file1379 -o log/2/download1379 -D log/2/heads1379 > log/2/stdout1379 2> log/2/stderr1379 === End of file commands.log === Start of file ftp_server.log 10:33:41.294515 ====> Client connect 10:33:41.296450 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:41.310849 < "USER anonymous" 10:33:41.312618 > "331 We are happy you popped in![CR][LF]" 10:33:41.315647 < "PASS ftp@example.com" 10:33:41.318355 > "230 Welcome you silly person[CR][LF]" 10:33:41.322597 < "PWD" 10:33:41.323335 > "257 "/" is current directory[CR][LF]" 10:33:41.330657 < "EPSV" 10:33:41.331315 ====> Passive DATA channel requested by client 10:33:41.331828 DATA sockfilt for passive data channel starting... 10:33:41.351218 DATA sockfilt for passive data channel started (pid 147134) 10:33:41.352793 DATA sockfilt for passive data channel listens on port 38447 10:33:41.353537 > "229 Entering Passive Mode (|||38447|)[LF]" 10:33:41.353991 Client has been notified that DATA conn will be accepted on port 38447 10:33:41.357459 Client connects to port 38447 10:33:41.358167 ====> Client established passive DATA connection on port 38447 10:33:41.359465 < "TYPE I" 10:33:41.360118 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:41.366373 < "SIZE verifiedserver" 10:33:41.366904 > "213 17[CR][LF]" 10:33:41.375421 < "RETR verifiedserver" 10:33:41.376107 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:41.377125 =====> Closing passive DATA connection... 10:33:41.377550 Server disconnects passive DATA connection 10:33:41.380293 Server disconnected passive DATA connection 10:33:41.380743 DATA sockfilt for passive data channel quits (pid 147134) 10:33:41.383018 DATA sockfilt for passive data channel quit (pid 147134) 10:33:41.383450 =====> Closed passive DATA connection 10:33:41.383863 > "226 File transfer complete[CR][LF]" 10:33:41.423392 < "QUIT" 10:33:41.423929 > "221 bye bye baby[CR][LF]" 10:33:41.428769 MAIN sockfilt said DISC 10:33:41.429229 ====> Client disconnected 10:33:41.430248 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:40.961529 ====> Client connect 10:33:40.967530 Received DATA (on stdin) 10:33:40.967807 > 160 bytes data, server => client 10:33:40.967955 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:40.968054 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:40.968134 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:40.973536 < 16 bytes data, client => server 10:33:40.973813 'USER anonymous\r\n' 10:33:40.979322 Received DATA (on stdin) 10:33:40.979597 > 33 bytes data, server => client 10:33:40.979838 '331 We are happy you popped in!\r\n' 10:33:40.982044 < 22 bytes data, client => server 10:33:40.982347 'PASS ftp@example.com\r\n' 10:33:40.986251 Received DATA (on stdin) 10:33:40.986553 > 30 bytes data, server => client 10:33:40.986691 '230 Welcome you silly person\r\n' 10:33:40.987655 < 5 bytes data, client => server 10:33:40.987959 'PWD\r\n' 10:33:40.991234 Received DATA (on stdin) 10:33:40.991509 > 30 bytes data, server => client 10:33:40.991696 '257 "/" is current directory\r\n' 10:33:40.993809 < 6 bytes data, client => server 10:33:40.994107 'EPSV\r\n' 10:33:41.022491 Received DATA (on stdin) 10:33:41.022767 > 38 bytes data, server => client 10:33:41.022904 '229 Entering Passive Mode (|||38447|)\n' 10:33:41.024491 < 8 bytes data, client => server 10:33:41.024732 'TYPE I\r\n' 10:33:41.028100 Received DATA (on stdin) 10:33:41.028383 > 33 bytes data, server => client 10:33:41.028545 '200 I modify TYPE as you wanted\r\n' 10:33:41.029461 < 21 bytes data, client => server 10:33:41.029745 'SIZE verifiedserver\r\n' 10:33:41.035431 Received DATA (on stdin) 10:33:41.035681 > 8 bytes data, server => client 10:33:41.035799 '213 17\r\n' 10:33:41.041650 < 21 bytes data, client => server 10:33:41.041893 'RETR verifiedserver\r\n' 10:33:41.045478 Received DATA (on stdin) 10:33:41.045715 > 29 bytes data, server => client 10:33:41.045824 '150 Binary junk (17 bytes).\r\n' 10:33:41.051775 Received DATA (on stdin) 10:33:41.051955 > 28 bytes data, server => client 10:33:41.052067 '226 File transfer complete\r\n' 10:33:41.090437 < 6 bytes data, client => server 10:33:41.090729 'QUIT\r\n' 10:33:41.093452 Received DATA (on stdin) 10:33:41.093686 > 18 bytes data, server => client 10:33:41.093787 '221 bye bye baby\r\n' 10:33:41.094469 ====> Client disconnect 10:33:41.097157 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:41.015922 Running IPv4 version 10:33:41.016643 Listening on port 38447 10:33:41.017126 Wrote pid 147134 to log/2/server/ftp_sockdata.pid 10:33:41.017429 Received PING (on stdin) 10:33:41.019830 Received PORT (on stdin) 10:33:41.024975 ====> Client connect 10:33:41.045859 Received DATA (on stdin) 10:33:41.046016 > 17 bytes data, server => client 10:33:41.046168 'WE ROOLZ: 79558\r\n' 10:33:41.046526 Received DISC (on stdin) 10:33:41.046814 ====> Client forcibly disconnected 10:33:41.049067 Received QUIT (on stdin) 10:33:41.049273 quits 10:33:41.049875 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1379 === End of file server.cmd === Start of file valgrind1379 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1380 ../src/curl -q --trace-ascii log/1/trace1380 --trace-time ftp://127.0.0.1:38733/path/file1380 -o log/1/download1380 -D - > log/1/stdout1380 2> log/1/stderr1380 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1381 ../src/curl -q --trace-ascii log/5/trace1381 --trace-time ftp://127.0.0.1:40501/path/file1381 -o log/5/download1381 -J -D log/5/heads1381 > log/5/stdout1381 2> log/5/stderr1381 : valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1379 test 1380...[FTP DL, file without C-D inside, using -o fname -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1380 ../src/curl -q --trace-ascii log/1/trace1380 --trace-time ftp://127.0.0.1:38733/path/file1380 -o log/1/download1380 -D - > log/1/stdout1380 2> log/1/stderr1380 1380: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1380 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1380 ../src/curl -q --trace-ascii log/1/trace1380 --trace-time ftp://127.0.0.1:38733/path/file1380 -o log/1/download1380 -D - > log/1/stdout1380 2> log/1/stderr1380 === End of file commands.log === Start of file ftp_server.log 10:33:41.562303 ====> Client connect 10:33:41.564289 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:41.573436 < "USER anonymous" 10:33:41.575072 > "331 We are happy you popped in![CR][LF]" 10:33:41.580641 < "PASS ftp@example.com" 10:33:41.581403 > "230 Welcome you silly person[CR][LF]" 10:33:41.590586 < "PWD" 10:33:41.591244 > "257 "/" is current directory[CR][LF]" 10:33:41.593376 < "EPSV" 10:33:41.593902 ====> Passive DATA channel requested by client 10:33:41.594399 DATA sockfilt for passive data channel starting... 10:33:41.607904 DATA sockfilt for passive data channel started (pid 147262) 10:33:41.609416 DATA sockfilt for passive data channel listens on port 37299 10:33:41.610130 > "229 Entering Passive Mode (|||37299|)[LF]" 10:33:41.610544 Client has been notified that DATA conn will be accepted on port 37299 10:33:41.612788 Client connects to port 37299 10:33:41.613268 ====> Client established passive DATA connection on port 37299 10:33:41.615091 < "TYPE I" 10:33:41.615865 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:41.620081 < "SIZE verifiedserver" 10:33:41.620743 > "213 17[CR][LF]" 10:33:41.625514 < "RETR verifiedserver" 10:33:41.626307 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:41.627393 =====> Closing passive DATA connection... 10:33:41.627871 Server disconnects passive DATA connection 10:33:41.629878 Server disconnected passive DATA connection 10:33:41.630379 DATA sockfilt for passive data channel quits (pid 147262) 10:33:41.632842 DATA sockfilt for passive data channel quit (pid 147262) 10:33:41.633332 =====> Closed passive DATA connection 10:33:41.633897 > "226 File transfer complete[CR][LF]" 10:33:41.676430 < "QUIT" 10:33:41.677779 > "221 bye bye baby[CR][LF]" 10:33:41.684796 MAIN sockfilt said DISC 10:33:41.685239 ====> Client disconnected 10:33:41.685991 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:41.228415 ====> Client connect 10:33:41.232161 Received DATA (on stdin) 10:33:41.232521 > 160 bytes data, server => client 10:33:41.232707 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:41.232820 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:41.232909 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:41.235403 < 16 bytes data, client => server 10:33:41.235671 'USER anonymous\r\n' 10:33:41.242955 Received DATA (on stdin) 10:33:41.243206 > 33 bytes data, server => client 10:33:41.243369 '331 We are happy you popped in!\r\n' 10:33:41.247362 < 22 bytes data, client => server 10:33:41.247634 'PASS ftp@example.com\r\n' 10:33:41.253483 Received DATA (on stdin) 10:33:41.253791 > 30 bytes data, server => client 10:33:41.253943 '230 Welcome you silly person\r\n' 10:33:41.254828 < 5 bytes data, client => server 10:33:41.255122 'PWD\r\n' 10:33:41.259150 Received DATA (on stdin) 10:33:41.259417 > 30 bytes data, server => client 10:33:41.259580 '257 "/" is current directory\r\n' 10:33:41.260459 < 6 bytes data, client => server 10:33:41.260681 'EPSV\r\n' 10:33:41.278011 Received DATA (on stdin) 10:33:41.278287 > 38 bytes data, server => client 10:33:41.278416 '229 Entering Passive Mode (|||37299|)\n' 10:33:41.280238 < 8 bytes data, client => server 10:33:41.280445 'TYPE I\r\n' 10:33:41.283872 Received DATA (on stdin) 10:33:41.284095 > 33 bytes data, server => client 10:33:41.284236 '200 I modify TYPE as you wanted\r\n' 10:33:41.285603 < 21 bytes data, client => server 10:33:41.285871 'SIZE verifiedserver\r\n' 10:33:41.291127 Received DATA (on stdin) 10:33:41.291363 > 8 bytes data, server => client 10:33:41.291462 '213 17\r\n' 10:33:41.292436 < 21 bytes data, client => server 10:33:41.292729 'RETR verifiedserver\r\n' 10:33:41.297429 Received DATA (on stdin) 10:33:41.297627 > 29 bytes data, server => client 10:33:41.297723 '150 Binary junk (17 bytes).\r\n' 10:33:41.301764 Received DATA (on stdin) 10:33:41.302049 > 28 bytes data, server => client 10:33:41.302174 '226 File transfer complete\r\n' 10:33:41.342270 < 6 bytes data, client => server 10:33:41.342476 'QUIT\r\n' 10:33:41.349416 Received DATA (on stdin) 10:33:41.349645 > 18 bytes data, server => client 10:33:41.349747 '221 bye bye baby\r\n' 10:33:41.350396 ====> Client disconnect 10:33:41.353137 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:41.273458 Running IPv4 version 10:33:41.274099 Listening on port 37299 10:33:41.274547 Wrote pid 147262 to log/1/server/ftp_sockdata.pid 10:33:41.274757 Received PING (on stdin) 10:33:41.276476 Received PORT (on stdin) 10:33:41.280297 ====> Client connect 10:33:41.296252 Received DATA (on stdin) 10:33:41.296495 > 17 bytes data, server => client 10:33:41.296604 'WE ROOLZ: 79585\r\n' 10:33:41.296987 Received DISC (on stdin) 10:33:41.297222 ====> Client forcibly disconnected 10:33:41.298717 Received QUIT (on stdin) 10:33:41.298960 quits 10:33:41.299429 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1380 === End of file server.cmd === Start of file valgrind1380 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1380 test 1381...[FCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1383 ../src/curl -q --trace-ascii log/7/trace1383 --trace-time ftp://127.0.0.1:38253/path/file1383 -o log/7/download1383 -i -D log/7/heads1383 > log/7/stdout1383 2> log/7/stderr1383 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1382 ../src/curl -q --trace-ascii log/3/trace1382 --trace-time ftp://127.0.0.1:33831/path/file1382 -o log/3/download1382 -J -D - > log/3/stdout1382 2> log/3/stderr1382 TP DL, file without C-D inside, using -o fname -J -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1381 ../src/curl -q --trace-ascii log/5/trace1381 --trace-time ftp://127.0.0.1:40501/path/file1381 -o log/5/download1381 -J -D log/5/heads1381 > log/5/stdout1381 2> log/5/stderr1381 1381: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1381 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1381 ../src/curl -q --trace-ascii log/5/trace1381 --trace-time ftp://127.0.0.1:40501/path/file1381 -o log/5/download1381 -J -D log/5/heads1381 > log/5/stdout1381 2> log/5/stderr1381 === End of file commands.log === Start of file ftp_server.log 10:33:41.669742 ====> Client connect 10:33:41.671179 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:41.674578 < "USER anonymous" 10:33:41.675061 > "331 We are happy you popped in![CR][LF]" 10:33:41.679420 < "PASS ftp@example.com" 10:33:41.679993 > "230 Welcome you silly person[CR][LF]" 10:33:41.683547 < "PWD" 10:33:41.684058 > "257 "/" is current directory[CR][LF]" 10:33:41.686927 < "EPSV" 10:33:41.687301 ====> Passive DATA channel requested by client 10:33:41.687499 DATA sockfilt for passive data channel starting... 10:33:41.699491 DATA sockfilt for passive data channel started (pid 147281) 10:33:41.700594 DATA sockfilt for passive data channel listens on port 45927 10:33:41.701156 > "229 Entering Passive Mode (|||45927|)[LF]" 10:33:41.701455 Client has been notified that DATA conn will be accepted on port 45927 10:33:41.707662 Client connects to port 45927 10:33:41.708065 ====> Client established passive DATA connection on port 45927 10:33:41.709250 < "TYPE I" 10:33:41.710008 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:41.712708 < "SIZE verifiedserver" 10:33:41.713289 > "213 18[CR][LF]" 10:33:41.720357 < "RETR verifiedserver" 10:33:41.720930 > "150 Binary junk (18 bytes).[CR][LF]" 10:33:41.721741 =====> Closing passive DATA connection... 10:33:41.722032 Server disconnects passive DATA connection 10:33:41.723424 Server disconnected passive DATA connection 10:33:41.723969 DATA sockfilt for passive data channel quits (pid 147281) 10:33:41.731750 DATA sockfilt for passive data channel quit (pid 147281) 10:33:41.732207 =====> Closed passive DATA connection 10:33:41.732675 > "226 File transfer complete[CR][LF]" 10:33:41.771643 < "QUIT" 10:33:41.772275 > "221 bye bye baby[CR][LF]" 10:33:41.777746 MAIN sockfilt said DISC 10:33:41.778314 ====> Client disconnected 10:33:41.778991 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:42.336704 ====> Client connect 10:33:42.339060 Received DATA (on stdin) 10:33:42.339336 > 160 bytes data, server => client 10:33:42.339471 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:42.339568 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:42.339651 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:42.340666 < 16 bytes data, client => server 10:33:42.340881 'USER anonymous\r\n' 10:33:42.343520 Received DATA (on stdin) 10:33:42.343741 > 33 bytes data, server => client 10:33:42.343846 '331 We are happy you popped in!\r\n' 10:33:42.346071 < 22 bytes data, client => server 10:33:42.346280 'PASS ftp@example.com\r\n' 10:33:42.348257 Received DATA (on stdin) 10:33:42.348448 > 30 bytes data, server => client 10:33:42.348546 '230 Welcome you silly person\r\n' 10:33:42.349364 < 5 bytes data, client => server 10:33:42.349638 'PWD\r\n' 10:33:42.352332 Received DATA (on stdin) 10:33:42.352526 > 30 bytes data, server => client 10:33:42.352620 '257 "/" is current directory\r\n' 10:33:42.354046 < 6 bytes data, client => server 10:33:42.354225 'EPSV\r\n' 10:33:42.373715 Received DATA (on stdin) 10:33:42.373986 > 38 bytes data, server => client 10:33:42.374072 '229 Entering Passive Mode (|||45927|)\n' 10:33:42.375371 < 8 bytes data, client => server 10:33:42.375526 'TYPE I\r\n' 10:33:42.377851 Received DATA (on stdin) 10:33:42.378117 > 33 bytes data, server => client 10:33:42.378252 '200 I modify TYPE as you wanted\r\n' 10:33:42.379283 < 21 bytes data, client => server 10:33:42.379546 'SIZE verifiedserver\r\n' 10:33:42.381166 Received DATA (on stdin) 10:33:42.381467 > 8 bytes data, server => client 10:33:42.381612 '213 18\r\n' 10:33:42.382828 < 21 bytes data, client => server 10:33:42.383063 'RETR verifiedserver\r\n' 10:33:42.389065 Received DATA (on stdin) 10:33:42.389254 > 29 bytes data, server => client 10:33:42.389456 '150 Binary junk (18 bytes).\r\n' 10:33:42.400590 Received DATA (on stdin) 10:33:42.400838 > 28 bytes data, server => client 10:33:42.400951 '226 File transfer complete\r\n' 10:33:42.434939 < 6 bytes data, client => server 10:33:42.435148 'QUIT\r\n' 10:33:42.440156 Received DATA (on stdin) 10:33:42.440986 > 18 bytes data, server => client 10:33:42.441172 '221 bye bye baby\r\n' 10:33:42.442970 ====> Client disconnect 10:33:42.449486 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:41.364722 Running IPv4 version 10:33:41.365420 Listening on port 45927 10:33:41.365883 Wrote pid 147281 to log/5/server/ftp_sockdata.pid 10:33:41.366926 Received PING (on stdin) 10:33:41.367819 Received PORT (on stdin) 10:33:41.375122 ====> Client connect 10:33:41.389513 Received DATA (on stdin) 10:33:41.389712 > 18 bytes data, server => client 10:33:41.389819 'WE ROOLZ: 131615\r\n' 10:33:41.390167 Received DISC (on stdin) 10:33:41.390396 ====> Client forcibly disconnected 10:33:41.396280 Received QUIT (on stdin) 10:33:41.396607 quits 10:33:41.397178 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1381 === End of file server.cmd === Start of file valgrind1381 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1381 test 1383...[FTP DL, file without C-D inside, using -o fname -i -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1383 ../src/curl -q --trace-ascii log/7/trace1383 --trace-time ftp://127.0.0.1:38253/path/file1383 -o log/7/download1383 -i -D log/7/heads1383 > log/7/stCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1384 ../src/curl -q --trace-ascii log/4/trace1384 --trace-time ftp://127.0.0.1:42635/path/file1384 -o log/4/download1384 -i -D - > log/4/stdout1384 2> log/4/stderr1384 dout1383 2> log/7/stderr1383 1383: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1383 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1383 ../src/curl -q --trace-ascii log/7/trace1383 --trace-time ftp://127.0.0.1:38253/path/file1383 -o log/7/download1383 -i -D log/7/heads1383 > log/7/stdout1383 2> log/7/stderr1383 === End of file commands.log === Start of file ftp_server.log 10:33:41.865990 ====> Client connect 10:33:41.867128 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:41.873847 < "USER anonymous" 10:33:41.874248 > "331 We are happy you popped in![CR][LF]" 10:33:41.877361 < "PASS ftp@example.com" 10:33:41.878061 > "230 Welcome you silly person[CR][LF]" 10:33:41.881883 < "PWD" 10:33:41.882897 > "257 "/" is current directory[CR][LF]" 10:33:41.885170 < "EPSV" 10:33:41.885642 ====> Passive DATA channel requested by client 10:33:41.885910 DATA sockfilt for passive data channel starting... 10:33:41.899309 DATA sockfilt for passive data channel started (pid 147372) 10:33:41.900695 DATA sockfilt for passive data channel listens on port 40243 10:33:41.901166 > "229 Entering Passive Mode (|||40243|)[LF]" 10:33:41.901599 Client has been notified that DATA conn will be accepted on port 40243 10:33:41.904592 Client connects to port 40243 10:33:41.905099 ====> Client established passive DATA connection on port 40243 10:33:41.906696 < "TYPE I" 10:33:41.907842 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:41.910235 < "SIZE verifiedserver" 10:33:41.911134 > "213 17[CR][LF]" 10:33:41.913376 < "RETR verifiedserver" 10:33:41.914053 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:41.915103 =====> Closing passive DATA connection... 10:33:41.915426 Server disconnects passive DATA connection 10:33:41.916906 Server disconnected passive DATA connection 10:33:41.917351 DATA sockfilt for passive data channel quits (pid 147372) 10:33:41.920551 DATA sockfilt for passive data channel quit (pid 147372) 10:33:41.920974 =====> Closed passive DATA connection 10:33:41.921400 > "226 File transfer complete[CR][LF]" 10:33:41.960529 < "QUIT" 10:33:41.961024 > "221 bye bye baby[CR][LF]" 10:33:41.968657 MAIN sockfilt said DISC 10:33:41.969056 ====> Client disconnected 10:33:41.969851 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:42.533154 ====> Client connect 10:33:42.537509 Received DATA (on stdin) 10:33:42.537805 > 160 bytes data, server => client 10:33:42.537945 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:42.538036 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:42.538121 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:42.538911 < 16 bytes data, client => server 10:33:42.539043 'USER anonymous\r\n' 10:33:42.542119 Received DATA (on stdin) 10:33:42.542273 > 33 bytes data, server => client 10:33:42.542369 '331 We are happy you popped in!\r\n' 10:33:42.543912 < 22 bytes data, client => server 10:33:42.544127 'PASS ftp@example.com\r\n' 10:33:42.546380 Received DATA (on stdin) 10:33:42.546569 > 30 bytes data, server => client 10:33:42.546667 '230 Welcome you silly person\r\n' 10:33:42.548533 < 5 bytes data, client => server 10:33:42.548747 'PWD\r\n' 10:33:42.550245 Received DATA (on stdin) 10:33:42.550469 > 30 bytes data, server => client 10:33:42.551189 '257 "/" is current directory\r\n' 10:33:42.552061 < 6 bytes data, client => server 10:33:42.552253 'EPSV\r\n' 10:33:42.569917 Received DATA (on stdin) 10:33:42.570115 > 38 bytes data, server => client 10:33:42.570234 '229 Entering Passive Mode (|||40243|)\n' 10:33:42.573491 < 8 bytes data, client => server 10:33:42.573663 'TYPE I\r\n' 10:33:42.575085 Received DATA (on stdin) 10:33:42.575364 > 33 bytes data, server => client 10:33:42.576011 '200 I modify TYPE as you wanted\r\n' 10:33:42.576901 < 21 bytes data, client => server 10:33:42.577010 'SIZE verifiedserver\r\n' 10:33:42.578602 Received DATA (on stdin) 10:33:42.578769 > 8 bytes data, server => client 10:33:42.579351 '213 17\r\n' 10:33:42.580209 < 21 bytes data, client => server 10:33:42.580432 'RETR verifiedserver\r\n' 10:33:42.582854 Received DATA (on stdin) 10:33:42.583134 > 29 bytes data, server => client 10:33:42.583242 '150 Binary junk (17 bytes).\r\n' 10:33:42.589273 Received DATA (on stdin) 10:33:42.589988 > 28 bytes data, server => client 10:33:42.590082 '226 File transfer complete\r\n' 10:33:42.627484 < 6 bytes data, client => server 10:33:42.627722 'QUIT\r\n' 10:33:42.631242 Received DATA (on stdin) 10:33:42.631373 > 18 bytes data, server => client 10:33:42.631485 '221 bye bye baby\r\n' 10:33:42.632486 ====> Client disconnect 10:33:42.636957 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:41.564778 Running IPv4 version 10:33:41.565360 Listening on port 40243 10:33:41.565829 Wrote pid 147372 to log/7/server/ftp_sockdata.pid 10:33:41.566821 Received PING (on stdin) 10:33:41.567753 Received PORT (on stdin) 10:33:41.572021 ====> Client connect 10:33:41.583624 Received DATA (on stdin) 10:33:41.583816 > 17 bytes data, server => client 10:33:41.583905 'WE ROOLZ: 79543\r\n' 10:33:41.584245 Received DISC (on stdin) 10:33:41.584426 ====> Client forcibly disconnected 10:33:41.586562 Received QUIT (on stdin) 10:33:41.586660 quits 10:33:41.587090 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1383 === End of file server.cmd === Start of file valgrind1383 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1383 test 1382...[FTP DL, file without C-D inside, using -o fname -J -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1382 ../src/curl -q --trace-ascii log/3/trace1382 --trace-time ftp://127.0.0.1:33831/path/file1382 -o log/3/download1382 -J -D - > log/3/stdout1382 2> log/3/stderr1382 1382: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1382 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1382 ../src/curl -q --trace-ascii log/3/trace1382 --trace-time ftp://127.0.0.1:33831/path/file1382 -o log/3/download1382 -J -D - > log/3/stdout1382 2> log/3/stderr1382 === End of file commands.log === Start of file ftp_server.log 10:33:41.853378 ====> Client connect 10:33:41.854702 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:41.861458 < "USER anonymous" 10:33:41.863068 > "331 We are happy you popped in![CR][LF]" 10:33:41.866502 < "PASS ftp@example.com" 10:33:41.866916 > "230 Welcome you silly person[CR][LF]" 10:33:41.870243 < "PWD" 10:33:41.871553 > "257 "/" is current directory[CR][LF]" 10:33:41.873595 < "EPSV" 10:33:41.873966 ====> Passive DATA channel requested by client 10:33:41.874132 DATA sockfilt for passive data channel starting... 10:33:41.886037 DATA sockfilt for passive data channel started (pid 147369) 10:33:41.887267 DATA sockfilt for passive data channel listens on port 36859 10:33:41.887868 > "229 Entering Passive Mode (|||36859|)[LF]" 10:33:41.888230 Client has been notified that DATA conn will be accepted on port 36859 10:33:41.890975 Client connects to port 36859 10:33:41.891442 ====> Client established passive DATA connection on port 36859 10:33:41.892365 < "TYPE I" 10:33:41.892927 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:41.896151 < "SIZE verifiedserver" 10:33:41.897308 > "213 17[CR][LF]" 10:33:41.899919 < "RETR verifiedserver" 10:33:41.900497 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:41.901555 =====> Closing passive DATA connection... 10:33:41.901888 Server disconnects passive DATA connection 10:33:41.904932 Server disconnected passive DATA connection 10:33:41.905346 DATA sockfilt for passive data channel quits (pid 147369) 10:33:41.907462 DATA sockfilt for passive data channel quit (pid 147369) 10:33:41.907811 =====> Closed passive DATA connection 10:33:41.908247 > "226 File transfer complete[CR][LF]" 10:33:41.948416 < "QUIT" 10:33:41.949122 > "221 bye bye baby[CR][LF]" 10:33:41.958178 MAIN sockfilt said DISC 10:33:41.962050 ====> Client disconnected 10:33:41.962880 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:41.520589 ====> Client connect 10:33:41.524375 Received DATA (on stdin) 10:33:41.524659 > 160 bytes data, server => client 10:33:41.524788 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:41.524904 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:41.525001 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:41.527968 < 16 bytes data, client => server 10:33:41.528211 'USER anonymous\r\n' 10:33:41.529992 Received DATA (on stdin) 10:33:41.530226 > 33 bytes data, server => client 10:33:41.530428 '331 We are happy you popped in!\r\n' 10:33:41.533108 < 22 bytes data, client => server 10:33:41.533436 'PASS ftp@example.com\r\n' 10:33:41.535571 Received DATA (on stdin) 10:33:41.535791 > 30 bytes data, server => client 10:33:41.535894 '230 Welcome you silly person\r\n' 10:33:41.536744 < 5 bytes data, client => server 10:33:41.536951 'PWD\r\n' 10:33:41.538533 Received DATA (on stdin) 10:33:41.538770 > 30 bytes data, server => client 10:33:41.538972 '257 "/" is current directory\r\n' 10:33:41.540302 < 6 bytes data, client => server 10:33:41.540497 'EPSV\r\n' 10:33:41.555732 Received DATA (on stdin) 10:33:41.555998 > 38 bytes data, server => client 10:33:41.556120 '229 Entering Passive Mode (|||36859|)\n' 10:33:41.557811 < 8 bytes data, client => server 10:33:41.558158 'TYPE I\r\n' 10:33:41.561256 Received DATA (on stdin) 10:33:41.561601 > 33 bytes data, server => client 10:33:41.561725 '200 I modify TYPE as you wanted\r\n' 10:33:41.562629 < 21 bytes data, client => server 10:33:41.562898 'SIZE verifiedserver\r\n' 10:33:41.564627 Received DATA (on stdin) 10:33:41.564852 > 8 bytes data, server => client 10:33:41.565649 '213 17\r\n' 10:33:41.566553 < 21 bytes data, client => server 10:33:41.566775 'RETR verifiedserver\r\n' 10:33:41.570182 Received DATA (on stdin) 10:33:41.570302 > 29 bytes data, server => client 10:33:41.570399 '150 Binary junk (17 bytes).\r\n' 10:33:41.576526 Received DATA (on stdin) 10:33:41.576763 > 28 bytes data, server => client 10:33:41.576879 '226 File transfer complete\r\n' 10:33:41.614593 < 6 bytes data, client => server 10:33:41.614947 'QUIT\r\n' 10:33:41.617622 Received DATA (on stdin) 10:33:41.617975 > 18 bytes data, server => client 10:33:41.618292 '221 bye bye baby\r\n' 10:33:41.625490 ====> Client disconnect 10:33:41.626685 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:41.552169 Running IPv4 version 10:33:41.552722 Listening on port 36859 10:33:41.553193 Wrote pid 147369 to log/3/server/ftp_sockdata.pid 10:33:41.553507 Received PING (on stdin) 10:33:41.554418 Received PORT (on stdin) 10:33:41.558399 ====> Client connect 10:33:41.570750 Received DATA (on stdin) 10:33:41.571012 > 17 bytes data, server => client 10:33:41.571142 'WE ROOLZ: 79555\r\n' 10:33:41.571411 Received DISC (on stdin) 10:33:41.571630 ====> Client forcibly disconnected 10:33:41.573785 Received QUIT (on stdin) 10:33:41.573926 quits 10:33:41.574390 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1382 === End of file server.cmd === Start of file valgrind1382 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1382 test 1384...[FTP DL, file without C-D inside, using -o fname -i -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1384 ../src/curl -q --trace-ascii log/4/trace1384 --trace-time ftp://127.0.0.1:42635/path/file1384 -o log/4/download1384 -i -D - > log/4/stdout1384 2> log/4/stderr1384 1384: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1384 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1384 ../src/curl -q --trace-ascii log/4/trace1384 --trace-time ftp://127.0.0.1:42635/path/file1384 -o log/4/download1384 -i -D - > log/4/stdout1384 2> log/4/stderr1384 === End of file commands.log === Start of file ftp_server.log 10:33:41.917053 ====> Client connect 10:33:41.918353 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CRCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1385 ../src/curl -q --trace-ascii log/6/trace1385 --trace-time ftp://127.0.0.1:33323/path/file1385 -o log/6/download1385 -i > log/6/stdout1385 2> log/6/stderr1385 ][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:41.921065 < "USER anonymous" 10:33:41.921537 > "331 We are happy you popped in![CR][LF]" 10:33:41.926139 < "PASS ftp@example.com" 10:33:41.926781 > "230 Welcome you silly person[CR][LF]" 10:33:41.930120 < "PWD" 10:33:41.930812 > "257 "/" is current directory[CR][LF]" 10:33:41.935805 < "EPSV" 10:33:41.936267 ====> Passive DATA channel requested by client 10:33:41.936611 DATA sockfilt for passive data channel starting... 10:33:41.950873 DATA sockfilt for passive data channel started (pid 147392) 10:33:41.952635 DATA sockfilt for passive data channel listens on port 43847 10:33:41.953385 > "229 Entering Passive Mode (|||43847|)[LF]" 10:33:41.953992 Client has been notified that DATA conn will be accepted on port 43847 10:33:41.960296 Client connects to port 43847 10:33:41.960860 ====> Client established passive DATA connection on port 43847 10:33:41.962588 < "TYPE I" 10:33:41.963630 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:41.967338 < "SIZE verifiedserver" 10:33:41.967982 > "213 17[CR][LF]" 10:33:41.972320 < "RETR verifiedserver" 10:33:41.973016 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:41.974060 =====> Closing passive DATA connection... 10:33:41.974474 Server disconnects passive DATA connection 10:33:41.976362 Server disconnected passive DATA connection 10:33:41.976833 DATA sockfilt for passive data channel quits (pid 147392) 10:33:41.979117 DATA sockfilt for passive data channel quit (pid 147392) 10:33:41.979563 =====> Closed passive DATA connection 10:33:41.980031 > "226 File transfer complete[CR][LF]" 10:33:42.022315 < "QUIT" 10:33:42.022885 > "221 bye bye baby[CR][LF]" 10:33:42.026194 MAIN sockfilt said DISC 10:33:42.026670 ====> Client disconnected 10:33:42.027468 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:42.583772 ====> Client connect 10:33:42.586203 Received DATA (on stdin) 10:33:42.586448 > 160 bytes data, server => client 10:33:42.586553 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:42.586634 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:42.586706 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:42.587786 < 16 bytes data, client => server 10:33:42.588041 'USER anonymous\r\n' 10:33:42.589621 Received DATA (on stdin) 10:33:42.589844 > 33 bytes data, server => client 10:33:42.589943 '331 We are happy you popped in!\r\n' 10:33:42.592140 < 22 bytes data, client => server 10:33:42.592450 'PASS ftp@example.com\r\n' 10:33:42.595223 Received DATA (on stdin) 10:33:42.595496 > 30 bytes data, server => client 10:33:42.595619 '230 Welcome you silly person\r\n' 10:33:42.596508 < 5 bytes data, client => server 10:33:42.596783 'PWD\r\n' 10:33:42.599181 Received DATA (on stdin) 10:33:42.599451 > 30 bytes data, server => client 10:33:42.599587 '257 "/" is current directory\r\n' 10:33:42.602171 < 6 bytes data, client => server 10:33:42.602490 'EPSV\r\n' 10:33:42.622574 Received DATA (on stdin) 10:33:42.622877 > 38 bytes data, server => client 10:33:42.623125 '229 Entering Passive Mode (|||43847|)\n' 10:33:42.629229 < 8 bytes data, client => server 10:33:42.629502 'TYPE I\r\n' 10:33:42.630998 Received DATA (on stdin) 10:33:42.631204 > 33 bytes data, server => client 10:33:42.631915 '200 I modify TYPE as you wanted\r\n' 10:33:42.634159 < 21 bytes data, client => server 10:33:42.634415 'SIZE verifiedserver\r\n' 10:33:42.636317 Received DATA (on stdin) 10:33:42.636593 > 8 bytes data, server => client 10:33:42.636705 '213 17\r\n' 10:33:42.639027 < 21 bytes data, client => server 10:33:42.639274 'RETR verifiedserver\r\n' 10:33:42.640843 Received DATA (on stdin) 10:33:42.641156 > 29 bytes data, server => client 10:33:42.641284 '150 Binary junk (17 bytes).\r\n' 10:33:42.648267 Received DATA (on stdin) 10:33:42.648531 > 28 bytes data, server => client 10:33:42.648662 '226 File transfer complete\r\n' 10:33:42.688285 < 6 bytes data, client => server 10:33:42.688519 'QUIT\r\n' 10:33:42.690897 Received DATA (on stdin) 10:33:42.691124 > 18 bytes data, server => client 10:33:42.691262 '221 bye bye baby\r\n' 10:33:42.693609 ====> Client disconnect 10:33:42.697103 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:41.615244 Running IPv4 version 10:33:41.616076 Listening on port 43847 10:33:41.616661 Wrote pid 147392 to log/4/server/ftp_sockdata.pid 10:33:41.618300 Received PING (on stdin) 10:33:41.619414 Received PORT (on stdin) 10:33:41.627723 ====> Client connect 10:33:41.642726 Received DATA (on stdin) 10:33:41.642972 > 17 bytes data, server => client 10:33:41.643087 'WE ROOLZ: 79516\r\n' 10:33:41.643451 Received DISC (on stdin) 10:33:41.643673 ====> Client forcibly disconnected 10:33:41.645112 Received QUIT (on stdin) 10:33:41.645405 quits 10:33:41.645906 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1384 === End of file server.cmd === Start of file valgrind1384 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1384 test 1385...[FTP DL, file without C-D inside, using -o fname -i, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1385 ../src/curl -q --trace-ascii log/6/trace1385 --trace-time ftp://127.0.0.1:33323/path/file1385 -o log/6/download1385 -i > log/6/stdout1385 2> log/6/stderr1385 1385: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1385 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1385 ../src/curl -q --trace-ascii log/6/trace1385 --trace-time ftp://127.0.0.1:33323/path/file1385 -o log/6/download1385 -i > log/6/stdout1385 2> log/6/stderr1385 === End of file commands.log === Start of file ftp_server.log 10:33:42.027176 ====> Client connect 10:33:42.029358 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:42.033971 < "USER anonymous" 10:33:42.034572 > "331 We are happy you popped in![CR][LF]" 10:33:42.036289 < "PASS ftp@example.com" 10:33:42.036732 > "230 Welcome you silly person[CR][LF]" 10:33:42.038092 < "PWD" 10:33:42.038528 > "257 "/" is current directory[CR][LF]" 10:33:42.040725 < "EPSV" 10:33:42.041089 ====> Passive DATA channCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1386 ../src/curl -q --trace-ascii log/8/trace1386 --trace-time ftp://127.0.0.1:42977/path/file1386 -o log/8/download1386 > log/8/stdout1386 2> log/8/stderr1386 el requested by client 10:33:42.041351 DATA sockfilt for passive data channel starting... 10:33:42.057621 DATA sockfilt for passive data channel started (pid 147436) 10:33:42.058964 DATA sockfilt for passive data channel listens on port 38471 10:33:42.059556 > "229 Entering Passive Mode (|||38471|)[LF]" 10:33:42.059943 Client has been notified that DATA conn will be accepted on port 38471 10:33:42.061873 Client connects to port 38471 10:33:42.062278 ====> Client established passive DATA connection on port 38471 10:33:42.063242 < "TYPE I" 10:33:42.063686 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:42.067086 < "SIZE verifiedserver" 10:33:42.067674 > "213 17[CR][LF]" 10:33:42.070070 < "RETR verifiedserver" 10:33:42.070615 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:42.071516 =====> Closing passive DATA connection... 10:33:42.071809 Server disconnects passive DATA connection 10:33:42.072998 Server disconnected passive DATA connection 10:33:42.073410 DATA sockfilt for passive data channel quits (pid 147436) 10:33:42.079983 DATA sockfilt for passive data channel quit (pid 147436) 10:33:42.080422 =====> Closed passive DATA connection 10:33:42.080870 > "226 File transfer complete[CR][LF]" 10:33:42.116225 < "QUIT" 10:33:42.116651 > "221 bye bye baby[CR][LF]" 10:33:42.121628 MAIN sockfilt said DISC 10:33:42.122137 ====> Client disconnected 10:33:42.122761 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:42.693533 ====> Client connect 10:33:42.697223 Received DATA (on stdin) 10:33:42.697567 > 160 bytes data, server => client 10:33:42.697709 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:42.697814 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:42.697900 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:42.698876 < 16 bytes data, client => server 10:33:42.699119 'USER anonymous\r\n' 10:33:42.702443 Received DATA (on stdin) 10:33:42.702686 > 33 bytes data, server => client 10:33:42.702791 '331 We are happy you popped in!\r\n' 10:33:42.703464 < 22 bytes data, client => server 10:33:42.703633 'PASS ftp@example.com\r\n' 10:33:42.704580 Received DATA (on stdin) 10:33:42.704716 > 30 bytes data, server => client 10:33:42.704794 '230 Welcome you silly person\r\n' 10:33:42.705271 < 5 bytes data, client => server 10:33:42.705843 'PWD\r\n' 10:33:42.706372 Received DATA (on stdin) 10:33:42.706489 > 30 bytes data, server => client 10:33:42.706566 '257 "/" is current directory\r\n' 10:33:42.707198 < 6 bytes data, client => server 10:33:42.707374 'EPSV\r\n' 10:33:42.727715 Received DATA (on stdin) 10:33:42.727917 > 38 bytes data, server => client 10:33:42.728017 '229 Entering Passive Mode (|||38471|)\n' 10:33:42.729585 < 8 bytes data, client => server 10:33:42.729779 'TYPE I\r\n' 10:33:42.731952 Received DATA (on stdin) 10:33:42.732137 > 33 bytes data, server => client 10:33:42.732229 '200 I modify TYPE as you wanted\r\n' 10:33:42.733809 < 21 bytes data, client => server 10:33:42.734049 'SIZE verifiedserver\r\n' 10:33:42.735950 Received DATA (on stdin) 10:33:42.736136 > 8 bytes data, server => client 10:33:42.736215 '213 17\r\n' 10:33:42.736999 < 21 bytes data, client => server 10:33:42.737224 'RETR verifiedserver\r\n' 10:33:42.738466 Received DATA (on stdin) 10:33:42.738700 > 29 bytes data, server => client 10:33:42.738821 '150 Binary junk (17 bytes).\r\n' 10:33:42.749480 Received DATA (on stdin) 10:33:42.749744 > 28 bytes data, server => client 10:33:42.749872 '226 File transfer complete\r\n' 10:33:42.783407 < 6 bytes data, client => server 10:33:42.783649 'QUIT\r\n' 10:33:42.784502 Received DATA (on stdin) 10:33:42.784696 > 18 bytes data, server => client 10:33:42.784791 '221 bye bye baby\r\n' 10:33:42.785377 ====> Client disconnect 10:33:42.793099 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:42.723681 Running IPv4 version 10:33:42.724330 Listening on port 38471 10:33:42.724726 Wrote pid 147436 to log/6/server/ftp_sockdata.pid 10:33:42.724911 Received PING (on stdin) 10:33:42.726110 Received PORT (on stdin) 10:33:42.729171 ====> Client connect 10:33:42.739284 Received DATA (on stdin) 10:33:42.739505 > 17 bytes data, server => client 10:33:42.739599 'WE ROOLZ: 79480\r\n' 10:33:42.739921 Received DISC (on stdin) 10:33:42.740141 ====> Client forcibly disconnected 10:33:42.746210 Received QUIT (on stdin) 10:33:42.746439 quits 10:33:42.746906 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1385 === End of file server.cmd === Start of file valgrind1385 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1385 test 1386...[FTP DL, file with Content-Disposition inside, using -o fname] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1386 ../src/curl -q --trace-ascii log/8/trace1386 --trace-time ftp://127.0.0.1:42977/path/file1386 -o log/8/download1386 > log/8/stdout1386 2> log/8/stderr1386 1386: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1386 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1386 ../src/curl -q --trace-ascii log/8/trace1386 --trace-time ftp://127.0.0.1:42977/path/file1386 -o log/8/download1386 > log/8/stdout1386 2> log/8/stderr1386 === End of file commands.log === Start of file ftp_server.log 10:33:42.267821 ====> Client connect 10:33:42.269372 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:42.272343 < "USER anonymous" 10:33:42.272985 > "331 We are happy you popped in![CR][LF]" 10:33:42.276492 < "PASS ftp@example.com" 10:33:42.277037 > "230 Welcome you silly person[CR][LF]" 10:33:42.280411 < "PWD" 10:33:42.280945 > "257 "/" is current directory[CR][LF]" 10:33:42.284219 < "EPSV" 10:33:42.284680 ====> Passive DATA channel requested by client 10:33:42.285025 DATA sockfilt for passive data channel starting... 10:33:42.298156 DATA sockfilt for passive data channel started (pid 147556) 10:33:42.303131 DATA sockfilt for passive data channel listens on port 38479 10:33:42.303769 > "229 Entering Passive Mode (|||38479|)[LF]" 10:33:42.304089 Client has been notified that DATA conn will be accepted on port 38479 10:33:42.310269 Client connects to port CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1387 ../src/curl -q --trace-ascii log/2/trace1387 --trace-time ftp://127.0.0.1:37959/path/file1387 -o log/2/download1387 -D log/2/heads1387 > log/2/stdout1387 2> log/2/stderr1387 38479 10:33:42.310817 ====> Client established passive DATA connection on port 38479 10:33:42.312932 < "TYPE I" 10:33:42.315526 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:42.316713 < "SIZE verifiedserver" 10:33:42.317407 > "213 17[CR][LF]" 10:33:42.320415 < "RETR verifiedserver" 10:33:42.321444 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:42.322500 =====> Closing passive DATA connection... 10:33:42.322797 Server disconnects passive DATA connection 10:33:42.324628 Server disconnected passive DATA connection 10:33:42.325160 DATA sockfilt for passive data channel quits (pid 147556) 10:33:42.331267 DATA sockfilt for passive data channel quit (pid 147556) 10:33:42.332193 =====> Closed passive DATA connection 10:33:42.333363 > "226 File transfer complete[CR][LF]" 10:33:42.368358 < "QUIT" 10:33:42.369230 > "221 bye bye baby[CR][LF]" 10:33:42.375054 MAIN sockfilt said DISC 10:33:42.376586 ====> Client disconnected 10:33:42.377666 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:41.935043 ====> Client connect 10:33:41.937227 Received DATA (on stdin) 10:33:41.937620 > 160 bytes data, server => client 10:33:41.937766 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:41.937856 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:41.937928 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:41.938919 < 16 bytes data, client => server 10:33:41.939116 'USER anonymous\r\n' 10:33:41.941780 Received DATA (on stdin) 10:33:41.942080 > 33 bytes data, server => client 10:33:41.942232 '331 We are happy you popped in!\r\n' 10:33:41.943135 < 22 bytes data, client => server 10:33:41.943402 'PASS ftp@example.com\r\n' 10:33:41.945501 Received DATA (on stdin) 10:33:41.945801 > 30 bytes data, server => client 10:33:41.945932 '230 Welcome you silly person\r\n' 10:33:41.947330 < 5 bytes data, client => server 10:33:41.947585 'PWD\r\n' 10:33:41.949258 Received DATA (on stdin) 10:33:41.949596 > 30 bytes data, server => client 10:33:41.949712 '257 "/" is current directory\r\n' 10:33:41.950697 < 6 bytes data, client => server 10:33:41.950979 'EPSV\r\n' 10:33:41.972325 Received DATA (on stdin) 10:33:41.972524 > 38 bytes data, server => client 10:33:41.972653 '229 Entering Passive Mode (|||38479|)\n' 10:33:41.974331 < 8 bytes data, client => server 10:33:41.974547 'TYPE I\r\n' 10:33:41.981605 Received DATA (on stdin) 10:33:41.981829 > 33 bytes data, server => client 10:33:41.982095 '200 I modify TYPE as you wanted\r\n' 10:33:41.982846 < 21 bytes data, client => server 10:33:41.983053 'SIZE verifiedserver\r\n' 10:33:41.985925 Received DATA (on stdin) 10:33:41.986139 > 8 bytes data, server => client 10:33:41.986256 '213 17\r\n' 10:33:41.987049 < 21 bytes data, client => server 10:33:41.987275 'RETR verifiedserver\r\n' 10:33:41.988821 Received DATA (on stdin) 10:33:41.989007 > 29 bytes data, server => client 10:33:41.991074 '150 Binary junk (17 bytes).\r\n' 10:33:42.000629 Received DATA (on stdin) 10:33:42.000865 > 28 bytes data, server => client 10:33:42.001873 '226 File transfer complete\r\n' 10:33:42.034592 < 6 bytes data, client => server 10:33:42.034914 'QUIT\r\n' 10:33:42.037778 Received DATA (on stdin) 10:33:42.038062 > 18 bytes data, server => client 10:33:42.038231 '221 bye bye baby\r\n' 10:33:42.042292 ====> Client disconnect 10:33:42.043569 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:42.963327 Running IPv4 version 10:33:42.963952 Listening on port 38479 10:33:42.964555 Wrote pid 147556 to log/8/server/ftp_sockdata.pid 10:33:42.964796 Received PING (on stdin) 10:33:42.966887 Received PORT (on stdin) 10:33:42.977673 ====> Client connect 10:33:42.989957 Received DATA (on stdin) 10:33:42.990183 > 17 bytes data, server => client 10:33:42.990312 'WE ROOLZ: 86552\r\n' 10:33:42.990983 Received DISC (on stdin) 10:33:42.991226 ====> Client forcibly disconnected 10:33:42.997496 Received QUIT (on stdin) 10:33:42.997750 quits 10:33:42.998210 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1386 === End of file server.cmd === Start of file valgrind1386 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1386 test 1387...[FTP DL, file with C-D inside, using -o fname -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1387 ../src/curl -q --trace-ascii log/2/trace1387 --trace-time ftp://127.0.0.1:37959/path/file1387 -o log/2/download1387 -D log/2/heads1387 > log/2/stdout1387 2> log/2/stderr1387 1387: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1387 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1387 ../src/curl -q --trace-ascii log/2/trace1387 --trace-time ftp://127.0.0.1:37959/path/file1387 -o log/2/download1387 -D log/2/heads1387 > log/2/stdout1387 2> log/2/stderr1387 === End of file commands.log === Start of file ftp_server.log 10:33:42.479577 ====> Client connect 10:33:42.481215 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:42.490419 < "USER anonymous" 10:33:42.491228 > "331 We are happy you popped in![CR][LF]" 10:33:42.500707 < "PASS ftp@example.com" 10:33:42.501330 > "230 Welcome you silly person[CR][LF]" 10:33:42.503940 < "PWD" 10:33:42.504650 > "257 "/" is current directory[CR][LF]" 10:33:42.507248 < "EPSV" 10:33:42.507768 ====> Passive DATA channel requested by client 10:33:42.508098 DATA sockfilt for passive data channel starting... 10:33:42.528187 DATA sockfilt for passive data channel started (pid 147681) 10:33:42.533074 DATA sockfilt for passive data channel listens on port 34889 10:33:42.534013 > "229 Entering Passive Mode (|||34889|)[LF]" 10:33:42.534496 Client has been notified that DATA conn will be accepted on port 34889 10:33:42.536643 Client connects to port 34889 10:33:42.537150 ====> Client established passive DATA connection on port 34889 10:33:42.539279 < "TYPE I" 10:33:42.539980 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:42.552868 < "SIZE verifiedserver" 10:33:42.553820 > "213 17[CR][LF]" 10:33:42.562309 < "RETR verifiedserver" 10:33:42.562935 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:42.563876 =====> Closing passive DATA connection...CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1388 ../src/curl -q --trace-ascii log/1/trace1388 --trace-time ftp://127.0.0.1:38733/path/file1388 -o log/1/download1388 -D - > log/1/stdout1388 2> log/1/stderr1388 10:33:42.564152 Server disconnects passive DATA connection 10:33:42.565923 Server disconnected passive DATA connection 10:33:42.566328 DATA sockfilt for passive data channel quits (pid 147681) 10:33:42.568362 DATA sockfilt for passive data channel quit (pid 147681) 10:33:42.568801 =====> Closed passive DATA connection 10:33:42.569225 > "226 File transfer complete[CR][LF]" 10:33:42.611240 < "QUIT" 10:33:42.611699 > "221 bye bye baby[CR][LF]" 10:33:42.617734 MAIN sockfilt said DISC 10:33:42.618260 ====> Client disconnected 10:33:42.621948 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:42.146004 ====> Client connect 10:33:42.152146 Received DATA (on stdin) 10:33:42.152499 > 160 bytes data, server => client 10:33:42.152629 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:42.152729 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:42.152810 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:42.154257 < 16 bytes data, client => server 10:33:42.154528 'USER anonymous\r\n' 10:33:42.159212 Received DATA (on stdin) 10:33:42.159462 > 33 bytes data, server => client 10:33:42.159628 '331 We are happy you popped in!\r\n' 10:33:42.160748 < 22 bytes data, client => server 10:33:42.161005 'PASS ftp@example.com\r\n' 10:33:42.169243 Received DATA (on stdin) 10:33:42.169665 > 30 bytes data, server => client 10:33:42.169799 '230 Welcome you silly person\r\n' 10:33:42.170885 < 5 bytes data, client => server 10:33:42.171164 'PWD\r\n' 10:33:42.172632 Received DATA (on stdin) 10:33:42.172856 > 30 bytes data, server => client 10:33:42.173022 '257 "/" is current directory\r\n' 10:33:42.174263 < 6 bytes data, client => server 10:33:42.174528 'EPSV\r\n' 10:33:42.202570 Received DATA (on stdin) 10:33:42.202758 > 38 bytes data, server => client 10:33:42.202893 '229 Entering Passive Mode (|||34889|)\n' 10:33:42.205754 < 8 bytes data, client => server 10:33:42.206005 'TYPE I\r\n' 10:33:42.208428 Received DATA (on stdin) 10:33:42.208699 > 33 bytes data, server => client 10:33:42.208866 '200 I modify TYPE as you wanted\r\n' 10:33:42.219420 < 21 bytes data, client => server 10:33:42.219656 'SIZE verifiedserver\r\n' 10:33:42.222219 Received DATA (on stdin) 10:33:42.222445 > 8 bytes data, server => client 10:33:42.222561 '213 17\r\n' 10:33:42.226252 < 21 bytes data, client => server 10:33:42.226506 'RETR verifiedserver\r\n' 10:33:42.231761 Received DATA (on stdin) 10:33:42.231957 > 29 bytes data, server => client 10:33:42.232064 '150 Binary junk (17 bytes).\r\n' 10:33:42.239151 Received DATA (on stdin) 10:33:42.239526 > 28 bytes data, server => client 10:33:42.239677 '226 File transfer complete\r\n' 10:33:42.277494 < 6 bytes data, client => server 10:33:42.277709 'QUIT\r\n' 10:33:42.279620 Received DATA (on stdin) 10:33:42.279798 > 18 bytes data, server => client 10:33:42.279909 '221 bye bye baby\r\n' 10:33:42.281813 ====> Client disconnect 10:33:42.286121 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:42.188805 Running IPv4 version 10:33:42.193661 Listening on port 34889 10:33:42.194313 Wrote pid 147681 to log/2/server/ftp_sockdata.pid 10:33:42.194559 Received PING (on stdin) 10:33:42.200068 Received PORT (on stdin) 10:33:42.204084 ====> Client connect 10:33:42.232290 Received DATA (on stdin) 10:33:42.232502 > 17 bytes data, server => client 10:33:42.232626 'WE ROOLZ: 79558\r\n' 10:33:42.232985 Received DISC (on stdin) 10:33:42.233255 ====> Client forcibly disconnected 10:33:42.234538 Received QUIT (on stdin) 10:33:42.234720 quits 10:33:42.235196 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1387 === End of file server.cmd === Start of file valgrind1387 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1387 test 1388...[FTP DL, file with C-D inside, using -o fname -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1388 ../src/curl -q --trace-ascii log/1/trace1388 --trace-time ftp://127.0.0.1:38733/path/file1388 -o log/1/download1388 -D - > log/1/stdout1388 2> log/1/stderr1388 1388: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1388 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1388 ../src/curl -q --trace-ascii log/1/trace1388 --trace-time ftp://127.0.0.1:38733/path/file1388 -o log/1/download1388 -D - > log/1/stdout1388 2> log/1/stderr1388 === End of file commands.log === Start of file ftp_server.log 10:33:42.690211 ====> Client connect 10:33:42.693176 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:42.698820 < "USER anonymous" 10:33:42.700618 > "331 We are happy you popped in![CR][LF]" 10:33:42.714750 < "PASS ftp@example.com" 10:33:42.715453 > "230 Welcome you silly person[CR][LF]" 10:33:42.717869 < "PWD" 10:33:42.718756 > "257 "/" is current directory[CR][LF]" 10:33:42.722957 < "EPSV" 10:33:42.723622 ====> Passive DATA channel requested by client 10:33:42.724137 DATA sockfilt for passive data channel starting... 10:33:42.739594 DATA sockfilt for passive data channel started (pid 147767) 10:33:42.742691 DATA sockfilt for passive data channel listens on port 38607 10:33:42.743507 > "229 Entering Passive Mode (|||38607|)[LF]" 10:33:42.743978 Client has been notified that DATA conn will be accepted on port 38607 10:33:42.752587 Client connects to port 38607 10:33:42.753159 ====> Client established passive DATA connection on port 38607 10:33:42.754401 < "TYPE I" 10:33:42.754961 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:42.762616 < "SIZE verifiedserver" 10:33:42.763236 > "213 17[CR][LF]" 10:33:42.766564 < "RETR verifiedserver" 10:33:42.767369 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:42.771502 =====> Closing passive DATA connection... 10:33:42.771976 Server disconnects passive DATA connection 10:33:42.777655 Server disconnected passive DATA connection 10:33:42.778279 DATA sockfilt for passive data channel quits (pid 147767) 10:33:42.780700 DATA sockfilt for passive data channel quit (pid 147767) 10:33:42.781223 =====> Closed passive DATA connection 10:33:42.781879 > "226 File transfer complete[CR][LF]" 10:33:42.818456 < "QUIT" 10:33:42.819078 > "221 byCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1389 ../src/curl -q --trace-ascii log/5/trace1389 --trace-time ftp://127.0.0.1:40501/path/file1389 -o log/5/download1389 -J -D log/5/heads1389 > log/5/stdout1389 2> log/5/stderr1389 e bye baby[CR][LF]" 10:33:42.825725 MAIN sockfilt said DISC 10:33:42.826391 ====> Client disconnected 10:33:42.827244 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:42.356539 ====> Client connect 10:33:42.360174 Received DATA (on stdin) 10:33:42.360552 > 160 bytes data, server => client 10:33:42.361868 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:42.362208 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:42.362352 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:42.363830 < 16 bytes data, client => server 10:33:42.364154 'USER anonymous\r\n' 10:33:42.367643 Received DATA (on stdin) 10:33:42.368018 > 33 bytes data, server => client 10:33:42.369535 '331 We are happy you popped in!\r\n' 10:33:42.377489 < 22 bytes data, client => server 10:33:42.377786 'PASS ftp@example.com\r\n' 10:33:42.383313 Received DATA (on stdin) 10:33:42.383581 > 30 bytes data, server => client 10:33:42.383785 '230 Welcome you silly person\r\n' 10:33:42.384762 < 5 bytes data, client => server 10:33:42.385032 'PWD\r\n' 10:33:42.386620 Received DATA (on stdin) 10:33:42.386891 > 30 bytes data, server => client 10:33:42.387077 '257 "/" is current directory\r\n' 10:33:42.389050 < 6 bytes data, client => server 10:33:42.389368 'EPSV\r\n' 10:33:42.413425 Received DATA (on stdin) 10:33:42.413722 > 38 bytes data, server => client 10:33:42.413846 '229 Entering Passive Mode (|||38607|)\n' 10:33:42.415808 < 8 bytes data, client => server 10:33:42.416056 'TYPE I\r\n' 10:33:42.422824 Received DATA (on stdin) 10:33:42.423027 > 33 bytes data, server => client 10:33:42.423139 '200 I modify TYPE as you wanted\r\n' 10:33:42.429505 < 21 bytes data, client => server 10:33:42.429792 'SIZE verifiedserver\r\n' 10:33:42.431098 Received DATA (on stdin) 10:33:42.431317 > 8 bytes data, server => client 10:33:42.431442 '213 17\r\n' 10:33:42.432292 < 21 bytes data, client => server 10:33:42.432581 'RETR verifiedserver\r\n' 10:33:42.435233 Received DATA (on stdin) 10:33:42.435481 > 29 bytes data, server => client 10:33:42.435611 '150 Binary junk (17 bytes).\r\n' 10:33:42.449697 Received DATA (on stdin) 10:33:42.449944 > 28 bytes data, server => client 10:33:42.450064 '226 File transfer complete\r\n' 10:33:42.485547 < 6 bytes data, client => server 10:33:42.485795 'QUIT\r\n' 10:33:42.486931 Received DATA (on stdin) 10:33:42.487174 > 18 bytes data, server => client 10:33:42.487284 '221 bye bye baby\r\n' 10:33:42.488042 ====> Client disconnect 10:33:42.494294 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:42.403905 Running IPv4 version 10:33:42.404780 Listening on port 38607 10:33:42.405793 Wrote pid 147767 to log/1/server/ftp_sockdata.pid 10:33:42.406118 Received PING (on stdin) 10:33:42.408728 Received PORT (on stdin) 10:33:42.415872 ====> Client connect 10:33:42.436345 Received DATA (on stdin) 10:33:42.436613 > 17 bytes data, server => client 10:33:42.436729 'WE ROOLZ: 79585\r\n' 10:33:42.441385 Received DISC (on stdin) 10:33:42.441670 ====> Client forcibly disconnected 10:33:42.446642 Received QUIT (on stdin) 10:33:42.446901 quits 10:33:42.447477 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1388 === End of file server.cmd === Start of file valgrind1388 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1388 test 1389...[FTP DL, file with C-D inside, using -o fname -J -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1389 ../src/curl -q --trace-ascii log/5/trace1389 --trace-time ftp://127.0.0.1:40501/path/file1389 -o log/5/download1389 -J -D log/5/heads1389 > log/5/stdout1389 2> log/5/stderr1389 1389: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1389 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1389 ../src/curl -q --trace-ascii log/5/trace1389 --trace-time ftp://127.0.0.1:40501/path/file1389 -o log/5/download1389 -J -D log/5/heads1389 > log/5/stdout1389 2> log/5/stderr1389 === End of file commands.log === Start of file ftp_server.log 10:33:42.793692 ====> Client connect 10:33:42.794941 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:42.802765 < "USER anonymous" 10:33:42.803209 > "331 We are happy you popped in![CR][LF]" 10:33:42.806646 < "PASS ftp@example.com" 10:33:42.807211 > "230 Welcome you silly person[CR][LF]" 10:33:42.809623 < "PWD" 10:33:42.810304 > "257 "/" is current directory[CR][LF]" 10:33:42.814316 < "EPSV" 10:33:42.814910 ====> Passive DATA channel requested by client 10:33:42.815384 DATA sockfilt for passive data channel starting... 10:33:42.834773 DATA sockfilt for passive data channel started (pid 147785) 10:33:42.839435 DATA sockfilt for passive data channel listens on port 43929 10:33:42.840097 > "229 Entering Passive Mode (|||43929|)[LF]" 10:33:42.840515 Client has been notified that DATA conn will be accepted on port 43929 10:33:42.844725 Client connects to port 43929 10:33:42.846059 ====> Client established passive DATA connection on port 43929 10:33:42.847461 < "TYPE I" 10:33:42.848214 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:42.851819 < "SIZE verifiedserver" 10:33:42.852501 > "213 18[CR][LF]" 10:33:42.855783 < "RETR verifiedserver" 10:33:42.856389 > "150 Binary junk (18 bytes).[CR][LF]" 10:33:42.857279 =====> Closing passive DATA connection... 10:33:42.859661 Server disconnects passive DATA connection 10:33:42.862127 Server disconnected passive DATA connection 10:33:42.862631 DATA sockfilt for passive data channel quits (pid 147785) 10:33:42.867224 DATA sockfilt for passive data channel quit (pid 147785) 10:33:42.868752 =====> Closed passive DATA connection 10:33:42.869197 > "226 File transfer complete[CR][LF]" 10:33:42.905199 < "QUIT" 10:33:42.909744 > "221 bye bye baby[CR][LF]" 10:33:42.912004 MAIN sockfilt said DISC 10:33:42.912496 ====> Client disconnected 10:33:42.913199 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:43.460838 ====> Client connect 10:33:43.462779 Received DATA (on stdin) 10:33:43.463021 > 160 bytes data, server => client 10:33:43.463143 '220- _ _ ____ _ \r\n220- ___| CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1394 ./tunit/tunits tool1394 - > log/8/stdout1394 2> log/8/stderr1394 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1390 ../src/curl -q --trace-ascii log/7/trace1390 --trace-time ftp://127.0.0.1:38253/path/file1390 -o log/7/download1390 -J -D - > log/7/stdout1390 2> log/7/stderr1390 | | | _ \| | ' 10:33:43.463229 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:43.463298 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:43.463982 < 16 bytes data, client => server 10:33:43.464197 'USER anonymous\r\n' 10:33:43.471081 Received DATA (on stdin) 10:33:43.471220 > 33 bytes data, server => client 10:33:43.471313 '331 We are happy you popped in!\r\n' 10:33:43.473485 < 22 bytes data, client => server 10:33:43.473747 'PASS ftp@example.com\r\n' 10:33:43.475074 Received DATA (on stdin) 10:33:43.475253 > 30 bytes data, server => client 10:33:43.475343 '230 Welcome you silly person\r\n' 10:33:43.476121 < 5 bytes data, client => server 10:33:43.476347 'PWD\r\n' 10:33:43.478651 Received DATA (on stdin) 10:33:43.478880 > 30 bytes data, server => client 10:33:43.479024 '257 "/" is current directory\r\n' 10:33:43.480196 < 6 bytes data, client => server 10:33:43.480567 'EPSV\r\n' 10:33:43.508895 Received DATA (on stdin) 10:33:43.509134 > 38 bytes data, server => client 10:33:43.509350 '229 Entering Passive Mode (|||43929|)\n' 10:33:43.511589 < 8 bytes data, client => server 10:33:43.511853 'TYPE I\r\n' 10:33:43.516648 Received DATA (on stdin) 10:33:43.516951 > 33 bytes data, server => client 10:33:43.517165 '200 I modify TYPE as you wanted\r\n' 10:33:43.518339 < 21 bytes data, client => server 10:33:43.518647 'SIZE verifiedserver\r\n' 10:33:43.520832 Received DATA (on stdin) 10:33:43.521049 > 8 bytes data, server => client 10:33:43.521151 '213 18\r\n' 10:33:43.522618 < 21 bytes data, client => server 10:33:43.522900 'RETR verifiedserver\r\n' 10:33:43.525454 Received DATA (on stdin) 10:33:43.525703 > 29 bytes data, server => client 10:33:43.525844 '150 Binary junk (18 bytes).\r\n' 10:33:43.537593 Received DATA (on stdin) 10:33:43.537829 > 28 bytes data, server => client 10:33:43.537928 '226 File transfer complete\r\n' 10:33:43.571755 < 6 bytes data, client => server 10:33:43.572013 'QUIT\r\n' 10:33:43.573679 Received DATA (on stdin) 10:33:43.573896 > 18 bytes data, server => client 10:33:43.574120 '221 bye bye baby\r\n' 10:33:43.579257 ====> Client disconnect 10:33:43.580373 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:42.499763 Running IPv4 version 10:33:42.500447 Listening on port 43929 10:33:42.500987 Wrote pid 147785 to log/5/server/ftp_sockdata.pid 10:33:42.501190 Received PING (on stdin) 10:33:42.505679 Received PORT (on stdin) 10:33:42.512121 ====> Client connect 10:33:42.525444 Received DATA (on stdin) 10:33:42.525701 > 18 bytes data, server => client 10:33:42.525842 'WE ROOLZ: 131615\r\n' 10:33:42.529518 Received DISC (on stdin) 10:33:42.529820 ====> Client forcibly disconnected 10:33:42.532504 Received QUIT (on stdin) 10:33:42.532749 quits 10:33:42.533262 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1389 === End of file server.cmd === Start of file valgrind1389 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1389 test 1394...[unit test for parse_cert_parameter()] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1394 ./tunit/tunits tool1394 - > log/8/stdout1394 2> log/8/stderr1394 tunits returned 1, when expecting 0 1394: exit FAILED == Contents of files in the log/8/ dir after test 1394 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1394 ./tunit/tunits tool1394 - > log/8/stdout1394 2> log/8/stderr1394 === End of file commands.log === Start of file server.cmd Testnum 1394 === End of file server.cmd === Start of file valgrind1394 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1394 test 1390...[FTP DL, file with C-D inside, using -o fname -J -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1390 ../src/curl -q --trace-ascii log/7/trace1390 --trace-time ftp://127.0.0.1:38253/path/file1390 -o log/7/download1390 -J -D - > log/7/stdout1390 2> log/7/stderr1390 1390: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1390 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1390 ../src/curl -q --trace-ascii log/7/trace1390 --trace-time ftp://127.0.0.1:38253/path/file1390 -o log/7/download1390 -J -D - > log/7/stdout1390 2> log/7/stderr1390 === End of file commands.log === Start of file ftp_server.log 10:33:42.994384 ====> Client connect 10:33:42.996045 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:42.998318 < "USER anonymous" 10:33:42.998759 > "331 We are happy you popped in![CR][LF]" 10:33:43.000359 < "PASS ftp@example.com" 10:33:43.002841 > "230 Welcome you silly person[CR][LF]" 10:33:43CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1391 ../src/curl -q --trace-ascii log/3/trace1391 --trace-time ftp://127.0.0.1:33831/path/file1391 -o log/3/download1391 -i -D log/3/heads1391 > log/3/stdout1391 2> log/3/stderr1391 .018331 < "PWD" 10:33:43.018870 > "257 "/" is current directory[CR][LF]" 10:33:43.025288 < "EPSV" 10:33:43.027267 ====> Passive DATA channel requested by client 10:33:43.027674 DATA sockfilt for passive data channel starting... 10:33:43.041003 DATA sockfilt for passive data channel started (pid 147883) 10:33:43.042467 DATA sockfilt for passive data channel listens on port 35523 10:33:43.043026 > "229 Entering Passive Mode (|||35523|)[LF]" 10:33:43.043361 Client has been notified that DATA conn will be accepted on port 35523 10:33:43.047285 Client connects to port 35523 10:33:43.047702 ====> Client established passive DATA connection on port 35523 10:33:43.048636 < "TYPE I" 10:33:43.050046 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:43.051801 < "SIZE verifiedserver" 10:33:43.052352 > "213 17[CR][LF]" 10:33:43.055072 < "RETR verifiedserver" 10:33:43.055729 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:43.058206 =====> Closing passive DATA connection... 10:33:43.058659 Server disconnects passive DATA connection 10:33:43.059534 Server disconnected passive DATA connection 10:33:43.059889 DATA sockfilt for passive data channel quits (pid 147883) 10:33:43.062182 DATA sockfilt for passive data channel quit (pid 147883) 10:33:43.062538 =====> Closed passive DATA connection 10:33:43.062904 > "226 File transfer complete[CR][LF]" 10:33:43.100115 < "QUIT" 10:33:43.100520 > "221 bye bye baby[CR][LF]" 10:33:43.103069 MAIN sockfilt said DISC 10:33:43.103429 ====> Client disconnected 10:33:43.104075 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:43.661521 ====> Client connect 10:33:43.663877 Received DATA (on stdin) 10:33:43.664150 > 160 bytes data, server => client 10:33:43.664265 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:43.664360 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:43.664427 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:43.665120 < 16 bytes data, client => server 10:33:43.665439 'USER anonymous\r\n' 10:33:43.666627 Received DATA (on stdin) 10:33:43.666799 > 33 bytes data, server => client 10:33:43.666887 '331 We are happy you popped in!\r\n' 10:33:43.667523 < 22 bytes data, client => server 10:33:43.667730 'PASS ftp@example.com\r\n' 10:33:43.670661 Received DATA (on stdin) 10:33:43.670946 > 30 bytes data, server => client 10:33:43.671085 '230 Welcome you silly person\r\n' 10:33:43.681629 < 5 bytes data, client => server 10:33:43.681908 'PWD\r\n' 10:33:43.687407 Received DATA (on stdin) 10:33:43.687700 > 30 bytes data, server => client 10:33:43.687808 '257 "/" is current directory\r\n' 10:33:43.690582 < 6 bytes data, client => server 10:33:43.690875 'EPSV\r\n' 10:33:43.711783 Received DATA (on stdin) 10:33:43.712062 > 38 bytes data, server => client 10:33:43.712185 '229 Entering Passive Mode (|||35523|)\n' 10:33:43.714704 < 8 bytes data, client => server 10:33:43.714862 'TYPE I\r\n' 10:33:43.716910 Received DATA (on stdin) 10:33:43.717070 > 33 bytes data, server => client 10:33:43.717248 '200 I modify TYPE as you wanted\r\n' 10:33:43.718585 < 21 bytes data, client => server 10:33:43.718781 'SIZE verifiedserver\r\n' 10:33:43.720658 Received DATA (on stdin) 10:33:43.720852 > 8 bytes data, server => client 10:33:43.720945 '213 17\r\n' 10:33:43.721781 < 21 bytes data, client => server 10:33:43.722037 'RETR verifiedserver\r\n' 10:33:43.723660 Received DATA (on stdin) 10:33:43.723902 > 29 bytes data, server => client 10:33:43.724013 '150 Binary junk (17 bytes).\r\n' 10:33:43.730739 Received DATA (on stdin) 10:33:43.730928 > 28 bytes data, server => client 10:33:43.731026 '226 File transfer complete\r\n' 10:33:43.766384 < 6 bytes data, client => server 10:33:43.766621 'QUIT\r\n' 10:33:43.769944 Received DATA (on stdin) 10:33:43.770084 > 18 bytes data, server => client 10:33:43.770173 '221 bye bye baby\r\n' 10:33:43.770616 ====> Client disconnect 10:33:43.771847 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:43.707514 Running IPv4 version 10:33:43.708009 Listening on port 35523 10:33:43.708371 Wrote pid 147883 to log/7/server/ftp_sockdata.pid 10:33:43.708528 Received PING (on stdin) 10:33:43.709462 Received PORT (on stdin) 10:33:43.714247 ====> Client connect 10:33:43.724098 Received DATA (on stdin) 10:33:43.724297 > 17 bytes data, server => client 10:33:43.724516 'WE ROOLZ: 79543\r\n' 10:33:43.726975 Received DISC (on stdin) 10:33:43.728079 ====> Client forcibly disconnected 10:33:43.728511 Received QUIT (on stdin) 10:33:43.728653 quits 10:33:43.729085 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1390 === End of file server.cmd === Start of file valgrind1390 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1390 test 1391...[FTP DL, file with C-D inside, using -o fname -i -D file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1391 ../src/curl -q --trace-ascii log/3/trace1391 --trace-time ftp://127.0.0.1:33831/path/file1391 -o log/3/download1391 -i -D log/3/heads1391 > log/3/stdout1391 2> log/3/stderr1391 1391: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1391 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1391 ../src/curl -q --trace-ascii log/3/trace1391 --trace-time ftp://127.0.0.1:33831/path/file1391 -o log/3/download1391 -i -D log/3/heads1391 > log/3/stdout1391 2> log/3/stderr1391 === End of file commands.log === Start of file ftp_server.log 10:33:43.051397 ====> Client connect 10:33:43.052703 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:43.064189 < "USER anonymous" 10:33:43.064697 > "331 We are happy you popped in![CR][LF]" 10:33:43.067806 < "PASS ftp@example.com" 10:33:43.068264 > "230 Welcome you silly person[CR][LF]" 10:33:43.071438 < "PWD" 10:33:43.071874 > "257 "/" is current directory[CR][LF]" 10:33:43.074376 < "EPSV" 10:33:43.076025 ====> Passive DATA channel requested by client 10:33:43.076331 DATA sockfilt for passive data channel starting... 10:33:43.090076 DATA sockfilt for passive data channel started (pid 147898) 10:33:43.091384 DATA sockfilt for passive data channel listens on port 42389 10:33:43.09CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1393 ../src/curl -q --trace-ascii log/6/trace1393 --trace-time ftp://127.0.0.1:33323/path/file1393 -o log/6/download1393 -i > log/6/stdout1393 2> log/6/stderr1393 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1392 ../src/curl -q --trace-ascii log/4/trace1392 --trace-time ftp://127.0.0.1:42635/path/file1392 -o log/4/download1392 -i -D - > log/4/stdout1392 2> log/4/stderr1392 1969 > "229 Entering Passive Mode (|||42389|)[LF]" 10:33:43.092262 Client has been notified that DATA conn will be accepted on port 42389 10:33:43.094663 Client connects to port 42389 10:33:43.095127 ====> Client established passive DATA connection on port 42389 10:33:43.096130 < "TYPE I" 10:33:43.096717 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:43.098573 < "SIZE verifiedserver" 10:33:43.099179 > "213 17[CR][LF]" 10:33:43.103448 < "RETR verifiedserver" 10:33:43.103903 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:43.104754 =====> Closing passive DATA connection... 10:33:43.105007 Server disconnects passive DATA connection 10:33:43.106295 Server disconnected passive DATA connection 10:33:43.106728 DATA sockfilt for passive data channel quits (pid 147898) 10:33:43.108560 DATA sockfilt for passive data channel quit (pid 147898) 10:33:43.108981 =====> Closed passive DATA connection 10:33:43.109321 > "226 File transfer complete[CR][LF]" 10:33:43.147893 < "QUIT" 10:33:43.148522 > "221 bye bye baby[CR][LF]" 10:33:43.153937 MAIN sockfilt said DISC 10:33:43.154521 ====> Client disconnected 10:33:43.155166 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:42.718607 ====> Client connect 10:33:42.720738 Received DATA (on stdin) 10:33:42.720896 > 160 bytes data, server => client 10:33:42.721008 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:42.721098 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:42.721192 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:42.729502 < 16 bytes data, client => server 10:33:42.729706 'USER anonymous\r\n' 10:33:42.732551 Received DATA (on stdin) 10:33:42.732723 > 33 bytes data, server => client 10:33:42.732824 '331 We are happy you popped in!\r\n' 10:33:42.734828 < 22 bytes data, client => server 10:33:42.735032 'PASS ftp@example.com\r\n' 10:33:42.736122 Received DATA (on stdin) 10:33:42.736301 > 30 bytes data, server => client 10:33:42.736397 '230 Welcome you silly person\r\n' 10:33:42.737930 < 5 bytes data, client => server 10:33:42.738085 'PWD\r\n' 10:33:42.739722 Received DATA (on stdin) 10:33:42.739904 > 30 bytes data, server => client 10:33:42.739997 '257 "/" is current directory\r\n' 10:33:42.740749 < 6 bytes data, client => server 10:33:42.740889 'EPSV\r\n' 10:33:42.759826 Received DATA (on stdin) 10:33:42.760049 > 38 bytes data, server => client 10:33:42.760168 '229 Entering Passive Mode (|||42389|)\n' 10:33:42.762351 < 8 bytes data, client => server 10:33:42.762586 'TYPE I\r\n' 10:33:42.764546 Received DATA (on stdin) 10:33:42.764685 > 33 bytes data, server => client 10:33:42.764788 '200 I modify TYPE as you wanted\r\n' 10:33:42.765669 < 21 bytes data, client => server 10:33:42.765881 'SIZE verifiedserver\r\n' 10:33:42.769391 Received DATA (on stdin) 10:33:42.769567 > 8 bytes data, server => client 10:33:42.769671 '213 17\r\n' 10:33:42.770454 < 21 bytes data, client => server 10:33:42.770661 'RETR verifiedserver\r\n' 10:33:42.771752 Received DATA (on stdin) 10:33:42.771975 > 29 bytes data, server => client 10:33:42.772072 '150 Binary junk (17 bytes).\r\n' 10:33:42.777157 Received DATA (on stdin) 10:33:42.777466 > 28 bytes data, server => client 10:33:42.777597 '226 File transfer complete\r\n' 10:33:42.814650 < 6 bytes data, client => server 10:33:42.814906 'QUIT\r\n' 10:33:42.816376 Received DATA (on stdin) 10:33:42.816664 > 18 bytes data, server => client 10:33:42.816947 '221 bye bye baby\r\n' 10:33:42.818921 ====> Client disconnect 10:33:42.822803 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:43.754499 Running IPv4 version 10:33:43.755110 Listening on port 42389 10:33:43.755662 Wrote pid 147898 to log/3/server/ftp_sockdata.pid 10:33:43.755857 Received PING (on stdin) 10:33:43.758498 Received PORT (on stdin) 10:33:43.761526 ====> Client connect 10:33:43.772276 Received DATA (on stdin) 10:33:43.772438 > 17 bytes data, server => client 10:33:43.772538 'WE ROOLZ: 79555\r\n' 10:33:43.773113 Received DISC (on stdin) 10:33:43.773885 ====> Client forcibly disconnected 10:33:43.774843 Received QUIT (on stdin) 10:33:43.774968 quits 10:33:43.775437 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1391 === End of file server.cmd === Start of file valgrind1391 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1391 test 1393...[FTP DL, file with C-D inside, using -o fname -i, without -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1393 ../src/curl -q --trace-ascii log/6/trace1393 --trace-time ftp://127.0.0.1:33323/path/file1393 -o log/6/download1393 -i > log/6/stdout1393 2> log/6/stderr1393 1393: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1393 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1393 ../src/curl -q --trace-ascii log/6/trace1393 --trace-time ftp://127.0.0.1:33323/path/file1393 -o log/6/download1393 -i > log/6/stdout1393 2> log/6/stderr1393 === End of file commands.log === Start of file ftp_server.log 10:33:43.100322 ====> Client connect 10:33:43.101723 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:43.106536 < "USER anonymous" 10:33:43.107019 > "331 We are happy you popped in![CR][LF]" 10:33:43.110119 < "PASS ftp@example.com" 10:33:43.110574 > "230 Welcome you silly person[CR][LF]" 10:33:43.112826 < "PWD" 10:33:43.113951 > "257 "/" is current directory[CR][LF]" 10:33:43.120042 < "EPSV" 10:33:43.120350 ====> Passive DATA channel requested by client 10:33:43.120523 DATA sockfilt for passive data channel starting... 10:33:43.136555 DATA sockfilt for passive data channel started (pid 147913) 10:33:43.138060 DATA sockfilt for passive data channel listens on port 42509 10:33:43.138666 > "229 Entering Passive Mode (|||42509|)[LF]" 10:33:43.138921 Client has been notified that DATA conn will be accepted on port 42509 10:33:43.141544 Client connects to port 42509 10:33:43.141986 ====> Client established passive DATA connection on port 42509 10:33:43.142869 < "TYPE I" 10:33:43.143826 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:43.150490 < "SIZE verifiedserver" 10:33:43.151267 > "213 17[CR][LF]" 10:33:43.155233 < "RETR verifiedserver" 10:33:43.155780 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:43.157288 =====> Closing passive DATA connection... 10:33:43.157769 Server disconnects passive DATA connection 10:33:43.160578 Server disconnected passive DATA connection 10:33:43.161038 DATA sockfilt for passive data channel quits (pid 147913) 10:33:43.163107 DATA sockfilt for passive data channel quit (pid 147913) 10:33:43.163447 =====> Closed passive DATA connection 10:33:43.163832 > "226 File transfer complete[CR][LF]" 10:33:43.205686 < "QUIT" 10:33:43.206230 > "221 bye bye baby[CR][LF]" 10:33:43.208935 MAIN sockfilt said DISC 10:33:43.209987 ====> Client disconnected 10:33:43.210741 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:43.767557 ====> Client connect 10:33:43.769621 Received DATA (on stdin) 10:33:43.769795 > 160 bytes data, server => client 10:33:43.769912 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:43.769995 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:43.770076 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:43.771979 < 16 bytes data, client => server 10:33:43.772098 'USER anonymous\r\n' 10:33:43.775742 Received DATA (on stdin) 10:33:43.775959 > 33 bytes data, server => client 10:33:43.776066 '331 We are happy you popped in!\r\n' 10:33:43.776787 < 22 bytes data, client => server 10:33:43.776930 'PASS ftp@example.com\r\n' 10:33:43.778768 Received DATA (on stdin) 10:33:43.778949 > 30 bytes data, server => client 10:33:43.779073 '230 Welcome you silly person\r\n' 10:33:43.779807 < 5 bytes data, client => server 10:33:43.779961 'PWD\r\n' 10:33:43.781104 Received DATA (on stdin) 10:33:43.781383 > 30 bytes data, server => client 10:33:43.782191 '257 "/" is current directory\r\n' 10:33:43.786906 < 6 bytes data, client => server 10:33:43.787134 'EPSV\r\n' 10:33:43.807047 Received DATA (on stdin) 10:33:43.807238 > 38 bytes data, server => client 10:33:43.807330 '229 Entering Passive Mode (|||42509|)\n' 10:33:43.808951 < 8 bytes data, client => server 10:33:43.809097 'TYPE I\r\n' 10:33:43.811177 Received DATA (on stdin) 10:33:43.811373 > 33 bytes data, server => client 10:33:43.812095 '200 I modify TYPE as you wanted\r\n' 10:33:43.815395 < 21 bytes data, client => server 10:33:43.815633 'SIZE verifiedserver\r\n' 10:33:43.820808 Received DATA (on stdin) 10:33:43.821048 > 8 bytes data, server => client 10:33:43.821166 '213 17\r\n' 10:33:43.822313 < 21 bytes data, client => server 10:33:43.822532 'RETR verifiedserver\r\n' 10:33:43.823602 Received DATA (on stdin) 10:33:43.823864 > 29 bytes data, server => client 10:33:43.823966 '150 Binary junk (17 bytes).\r\n' 10:33:43.831705 Received DATA (on stdin) 10:33:43.831907 > 28 bytes data, server => client 10:33:43.832038 '226 File transfer complete\r\n' 10:33:43.869488 < 6 bytes data, client => server 10:33:43.869728 'QUIT\r\n' 10:33:43.874699 Received DATA (on stdin) 10:33:43.874938 > 18 bytes data, server => client 10:33:43.875043 '221 bye bye baby\r\n' 10:33:43.876387 ====> Client disconnect 10:33:43.877237 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:43.802426 Running IPv4 version 10:33:43.803220 Listening on port 42509 10:33:43.803718 Wrote pid 147913 to log/6/server/ftp_sockdata.pid 10:33:43.803941 Received PING (on stdin) 10:33:43.805035 Received PORT (on stdin) 10:33:43.808552 ====> Client connect 10:33:43.824095 Received DATA (on stdin) 10:33:43.824282 > 17 bytes data, server => client 10:33:43.826027 'WE ROOLZ: 79480\r\n' 10:33:43.826447 Received DISC (on stdin) 10:33:43.826620 ====> Client forcibly disconnected 10:33:43.829116 Received QUIT (on stdin) 10:33:43.829303 quits 10:33:43.829894 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1393 === End of file server.cmd === Start of file valgrind1393 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1393 test 1392...[FTP DL, file with C-D inside, using -o fname -i -D stdout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1392 ../src/curl -q --trace-ascii log/4/trace1392 --trace-time ftp://127.0.0.1:42635/path/file1392 -o log/4/download1392 -i -D - > log/4/stdout1392 2> log/4/stderr1392 1392: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1392 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1392 ../src/curl -q --trace-ascii log/4/trace1392 --trace-time ftp://127.0.0.1:42635/path/file1392 -o log/4/download1392 -i -D - > log/4/stdout1392 2> log/4/stderr1392 === End of file commands.log === Start of file ftp_server.log 10:33:43.064214 ====> Client connect 10:33:43.065542 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:43.069745 < "USER anonymous" 10:33:43.070331 > "331 We are happy you popped in![CR][LF]" 10:33:43.072841 < "PASS ftp@example.com" 10:33:43.073278 > "230 Welcome you silly person[CR][LF]" 10:33:43.075496 < "PWD" 10:33:43.078868 > "257 "/" is current directory[CR][LF]" 10:33:43.082743 < "EPSV" 10:33:43.083173 ====> Passive DATA channel requested by client 10:33:43.083542 DATA sockfilt for passive data channel starting... 10:33:43.097002 DATA sockfilt for passive data channel started (pid 147901) 10:33:43.099224 DATA sockfilt for passive data channel listens on port 34529 10:33:43.099739 > "229 Entering Passive Mode (|||34529|)[LF]" 10:33:43.100031 Client has been notified that DATA conn will be accepted on port 34529 10:33:43.103094 Client connects to port 34529 10:33:43.103481 ====> Client established passive DATA connection on port 34529 10:33:43.105115 < "TYPE I" 10:33:43.107479 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:43.110118 < "SIZE verifiedserver" 10:33:43.110572 > "213 17[CR][LF]" 10:33:43.112656 < "RETR verifiedserver" 10:33:43.113172 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:43.114081 =====> Closing passive DATA connection... 10:33:43.114331 Server disconnects passive DATA connection 10:33:43.115281 Server disconnected passive DATA connection 10:33:43.115716 DATA sockfilt for passive data channel quits (pid 147901) 10:33:43.118964 DATA sockfilt for passive data channel quit (pid 147901)CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1395 ./unit/units unit1395 - > log/2/stdout1395 2> log/2/stderr1395 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1396 ./unit/units unit1396 - > log/1/stdout1396 2> log/1/stderr1396 10:33:43.119344 =====> Closed passive DATA connection 10:33:43.119730 > "226 File transfer complete[CR][LF]" 10:33:43.162392 < "QUIT" 10:33:43.162877 > "221 bye bye baby[CR][LF]" 10:33:43.166264 MAIN sockfilt said DISC 10:33:43.169636 ====> Client disconnected 10:33:43.170378 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:43.731499 ====> Client connect 10:33:43.733494 Received DATA (on stdin) 10:33:43.733752 > 160 bytes data, server => client 10:33:43.733898 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:43.733989 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:43.734056 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:43.735692 < 16 bytes data, client => server 10:33:43.735896 'USER anonymous\r\n' 10:33:43.738152 Received DATA (on stdin) 10:33:43.738280 > 33 bytes data, server => client 10:33:43.738365 '331 We are happy you popped in!\r\n' 10:33:43.739201 < 22 bytes data, client => server 10:33:43.739383 'PASS ftp@example.com\r\n' 10:33:43.741102 Received DATA (on stdin) 10:33:43.741247 > 30 bytes data, server => client 10:33:43.741673 '230 Welcome you silly person\r\n' 10:33:43.742637 < 5 bytes data, client => server 10:33:43.742846 'PWD\r\n' 10:33:43.746831 Received DATA (on stdin) 10:33:43.747065 > 30 bytes data, server => client 10:33:43.747200 '257 "/" is current directory\r\n' 10:33:43.749834 < 6 bytes data, client => server 10:33:43.750093 'EPSV\r\n' 10:33:43.767604 Received DATA (on stdin) 10:33:43.767822 > 38 bytes data, server => client 10:33:43.767939 '229 Entering Passive Mode (|||34529|)\n' 10:33:43.769741 < 8 bytes data, client => server 10:33:43.769861 'TYPE I\r\n' 10:33:43.774635 Received DATA (on stdin) 10:33:43.774808 > 33 bytes data, server => client 10:33:43.775275 '200 I modify TYPE as you wanted\r\n' 10:33:43.777208 < 21 bytes data, client => server 10:33:43.777595 'SIZE verifiedserver\r\n' 10:33:43.778437 Received DATA (on stdin) 10:33:43.778632 > 8 bytes data, server => client 10:33:43.778752 '213 17\r\n' 10:33:43.779600 < 21 bytes data, client => server 10:33:43.779811 'RETR verifiedserver\r\n' 10:33:43.782451 Received DATA (on stdin) 10:33:43.782695 > 29 bytes data, server => client 10:33:43.782800 '150 Binary junk (17 bytes).\r\n' 10:33:43.787613 Received DATA (on stdin) 10:33:43.787825 > 28 bytes data, server => client 10:33:43.788014 '226 File transfer complete\r\n' 10:33:43.826397 < 6 bytes data, client => server 10:33:43.826588 'QUIT\r\n' 10:33:43.831301 Received DATA (on stdin) 10:33:43.831478 > 18 bytes data, server => client 10:33:43.831580 '221 bye bye baby\r\n' 10:33:43.833618 ====> Client disconnect 10:33:43.834588 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:43.762570 Running IPv4 version 10:33:43.763081 Listening on port 34529 10:33:43.763418 Wrote pid 147901 to log/4/server/ftp_sockdata.pid 10:33:43.764395 Received PING (on stdin) 10:33:43.765743 Received PORT (on stdin) 10:33:43.769211 ====> Client connect 10:33:43.781789 Received DATA (on stdin) 10:33:43.782027 > 17 bytes data, server => client 10:33:43.782185 'WE ROOLZ: 79516\r\n' 10:33:43.782508 Received DISC (on stdin) 10:33:43.782715 ====> Client forcibly disconnected 10:33:43.785224 Received QUIT (on stdin) 10:33:43.785495 quits 10:33:43.785900 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1392 === End of file server.cmd === Start of file valgrind1392 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1392 test 1395...[Curl_dedotdotify] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1395 ./unit/units unit1395 - > log/2/stdout1395 2> log/2/stderr1395 units returned 1, when expecting 0 1395: exit FAILED == Contents of files in the log/2/ dir after test 1395 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1395 ./unit/units unit1395 - > log/2/stdout1395 2> log/2/stderr1395 === End of file commands.log === Start of file server.cmd Testnum 1395 === End of file server.cmd === Start of file valgrind1395 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1395 test 1396...[curl_easy_escape and curl_easy_unescape] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1396 ./unit/units unit1396 - > log/1/stdout1396 2> log/1/stderr1396 units returned 1, when expecting 0 1396: exit FAILED == Contents of files in the log/1/ dir after test 1396 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1396 ./unit/units unit1396 - > log/1/stdout1396 2> log/1/stderr1396 === End of file commands.log === Start of file server.cmd Testnum 1396 === End of file server.cmd === Start of file valgrind1396 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be sCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1397 ./unit/units unit1397 - > log/5/stdout1397 2> log/5/stderr1397 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1399 ./unit/units unit1399 - > log/7/stdout1399 2> log/7/stderr1399 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1398 ./unit/units unit1398 - > log/8/stdout1398 2> log/8/stderr1398 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1400 ../src/curl -q --output log/3/curl1400.out --include --trace-ascii log/3/trace1400 --trace-time http://127.0.0.1:36933/we/want/1400 --libcurl log/3/test1400.c > log/3/stdout1400 2> log/3/stderr1400 et up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1396 test 1397...[Curl_cert_hostcheck unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1397 ./unit/units unit1397 - > log/5/stdout1397 2> log/5/stderr1397 units returned 1, when expecting 0 1397: exit FAILED == Contents of files in the log/5/ dir after test 1397 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1397 ./unit/units unit1397 - > log/5/stdout1397 2> log/5/stderr1397 === End of file commands.log === Start of file server.cmd Testnum 1397 === End of file server.cmd === Start of file valgrind1397 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1397 test 1399...[Curl_pgrsTime unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1399 ./unit/units unit1399 - > log/7/stdout1399 2> log/7/stderr1399 units returned 1, when expecting 0 1399: exit FAILED == Contents of files in the log/7/ dir after test 1399 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1399 ./unit/units unit1399 - > log/7/stdout1399 2> log/7/stderr1399 === End of file commands.log === Start of file server.cmd Testnum 1399 === End of file server.cmd === Start of file valgrind1399 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1399 test 1398...[curl_msnprintf unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1398 ./unit/units unit1398 - > log/8/stdout1398 2> log/8/stderr1398 units returned 1, when expecting 0 1398: exit FAILED == Contents of files in the log/8/ dir after test 1398 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1398 ./unit/units unit1398 - > log/8/stdout1398 2> log/8/stderr1398 === End of file commands.log === Start of file server.cmd Testnum 1398 === End of file server.cmd === Start of file valgrind1398 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1398 test 1400...[--libcurl for simple HTTP GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1400 ../srcCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1402 ../src/curl -q --output log/4/curl1402.out --include --trace-ascii log/4/trace1402 --trace-time http://127.0.0.1:36757/we/want/1402 --libcurl log/4/test1402.c -d "foo=bar" -d "baz=quux" > log/4/stdout1402 2> log/4/stderr1402 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1401 ../src/curl -q --output log/6/curl1401.out --include --trace-ascii log/6/trace1401 --trace-time http://127.0.0.1:33363/we/want/1401 --libcurl log/6/test1401.c --basic -u fake:user -H "X-Files: Mulder" -H "X-Men: cyclops, iceman" -A MyUA -b chocolate=chip --proto "=http,ftp,file" > log/6/stdout1401 2> log/6/stderr1401 /curl -q --output log/3/curl1400.out --include --trace-ascii log/3/trace1400 --trace-time http://127.0.0.1:36933/we/want/1400 --libcurl log/3/test1400.c > log/3/stdout1400 2> log/3/stderr1400 1400: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1400 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1400 ../src/curl -q --output log/3/curl1400.out --include --trace-ascii log/3/trace1400 --trace-time http://127.0.0.1:36933/we/want/1400 --libcurl log/3/test1400.c > log/3/stdout1400 2> log/3/stderr1400 === End of file commands.log === Start of file http_server.log 10:33:43.852941 ====> Client connect 10:33:43.853407 accept_connection 3 returned 4 10:33:43.853679 accept_connection 3 returned 0 10:33:43.853851 Read 93 bytes 10:33:43.853968 Process 93 bytes request 10:33:43.854091 Got request: GET /verifiedserver HTTP/1.1 10:33:43.854194 Are-we-friendly question received 10:33:43.854532 Wrote request (93 bytes) input to log/3/server.input 10:33:43.854765 Identifying ourselves as friends 10:33:43.855648 Response sent (56 bytes) and written to log/3/server.response 10:33:43.855804 special request received, no persistency 10:33:43.855885 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 50136 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1400 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1400 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1400 test 1402...[--libcurl for simple POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1402 ../src/curl -q --output log/4/curl1402.out --include --trace-ascii log/4/trace1402 --trace-time http://127.0.0.1:36757/we/want/1402 --libcurl log/4/test1402.c -d "foo=bar" -d "baz=quux" > log/4/stdout1402 2> log/4/stderr1402 1402: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1402 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1402 ../src/curl -q --output log/4/curl1402.out --include --trace-ascii log/4/trace1402 --trace-time http://127.0.0.1:36757/we/want/1402 --libcurl log/4/test1402.c -d "foo=bar" -d "baz=quux" > log/4/stdout1402 2> log/4/stderr1402 === End of file commands.log === Start of file http_server.log 10:33:44.902333 ====> Client connect 10:33:44.902660 accept_connection 3 returned 4 10:33:44.902879 accept_connection 3 returned 0 10:33:44.903025 Read 93 bytes 10:33:44.903121 Process 93 bytes request 10:33:44.903203 Got request: GET /verifiedserver HTTP/1.1 10:33:44.903269 Are-we-friendly question received 10:33:44.903493 Wrote request (93 bytes) input to log/4/server.input 10:33:44.903672 Identifying ourselves as friends 10:33:44.904371 Response sent (56 bytes) and written to log/4/server.response 10:33:44.904530 special request received, no persistency 10:33:44.904623 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 58668 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1402 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1402 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1402 test 1401...[--libcurl for GET with various options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1401 ../src/curl -q --output log/6/curl1401.out --include --trace-ascii log/6/trace1401 --trace-time http://127.0.0.1:33363/we/want/1401 --libcurl log/6/test1401.c --basic -u fake:user -H "X-Files: Mulder" -H "X-Men: cyclops, iceman" -A MyUA -b chocolate=chip --proto "=http,ftp,file" > log/6/stCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1403 ../src/curl -q --output log/2/curl1403.out --include --trace-ascii log/2/trace1403 --trace-time http://127.0.0.1:43789/we/want/1403 --libcurl log/2/test1403.c -G -d "foo=bar" -d "baz=quux" > log/2/stdout1403 2> log/2/stderr1403 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1404 ../src/curl -q --output log/1/curl1404.out --include --trace-ascii log/1/trace1404 --trace-time http://127.0.0.1:33601/we/want/1404 -F name=value -F 'file=@log/1/test1404.txt,log/1/test1404.txt;type=magic/content;encoder=8bit,log/1/test1404.txt;headers=X-testheader-1: header 1;headers=X-testheader-2: header 2' --libcurl log/1/test1404.c > log/1/stdout1404 2> log/1/stderr1404 dout1401 2> log/6/stderr1401 1401: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1401 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1401 ../src/curl -q --output log/6/curl1401.out --include --trace-ascii log/6/trace1401 --trace-time http://127.0.0.1:33363/we/want/1401 --libcurl log/6/test1401.c --basic -u fake:user -H "X-Files: Mulder" -H "X-Men: cyclops, iceman" -A MyUA -b chocolate=chip --proto "=http,ftp,file" > log/6/stdout1401 2> log/6/stderr1401 === End of file commands.log === Start of file http_server.log 10:33:43.866230 ====> Client connect 10:33:43.866549 accept_connection 3 returned 4 10:33:43.866765 accept_connection 3 returned 0 10:33:43.866955 Read 93 bytes 10:33:43.867062 Process 93 bytes request 10:33:43.867183 Got request: GET /verifiedserver HTTP/1.1 10:33:43.867325 Are-we-friendly question received 10:33:43.867655 Wrote request (93 bytes) input to log/6/server.input 10:33:43.867878 Identifying ourselves as friends 10:33:43.868579 Response sent (56 bytes) and written to log/6/server.response 10:33:43.868734 special request received, no persistency 10:33:43.868804 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 54980 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1401 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1401 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1401 test 1403...[--libcurl for GET with query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1403 ../src/curl -q --output log/2/curl1403.out --include --trace-ascii log/2/trace1403 --trace-time http://127.0.0.1:43789/we/want/1403 --libcurl log/2/test1403.c -G -d "foo=bar" -d "baz=quux" > log/2/stdout1403 2> log/2/stderr1403 1403: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1403 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1403 ../src/curl -q --output log/2/curl1403.out --include --trace-ascii log/2/trace1403 --trace-time http://127.0.0.1:43789/we/want/1403 --libcurl log/2/test1403.c -G -d "foo=bar" -d "baz=quux" > log/2/stdout1403 2> log/2/stderr1403 === End of file commands.log === Start of file http_server.log 10:33:43.971333 ====> Client connect 10:33:43.971742 accept_connection 3 returned 4 10:33:43.971965 accept_connection 3 returned 0 10:33:43.972135 Read 93 bytes 10:33:43.972237 Process 93 bytes request 10:33:43.972338 Got request: GET /verifiedserver HTTP/1.1 10:33:43.972435 Are-we-friendly question received 10:33:43.972706 Wrote request (93 bytes) input to log/2/server.input 10:33:43.972938 Identifying ourselves as friends 10:33:43.973917 Response sent (56 bytes) and written to log/2/server.response 10:33:43.974053 special request received, no persistency 10:33:43.974138 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50796 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1403 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1403 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1403 test 1404...[--libcurl plus -F with 3 files, one with explicit type & encoder] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1404 ../src/curl -q --output log/1/curl1404.out --include --trace-ascii log/1/trace1404 --trace-time http://127.0.0.1:33601/we/want/1404 -F name=value -F 'file=@log/1/test1404.txt,log/1/test1404.txt;type=magic/content;encoder=8bit,log/1/test1404.txt;headers=X-testheader-1: header 1;headers=X-testheader-CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1406 ../src/curl -q --output log/7/curl1406.out --include --trace-ascii log/7/trace1406 --trace-time smtp://127.0.0.1:45189/1406 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-from sender@example.com -T log/7/test1406.eml --libcurl log/7/test1406.c > log/7/stdout1406 2> log/7/stderr1406 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1407 ../src/curl -q --output log/8/curl1407.out --include --trace-ascii log/8/trace1407 --trace-time pop3://127.0.0.1:43011/1407 -l -u user:secret --libcurl log/8/test1407.c > log/8/stdout1407 2> log/8/stderr1407 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1409 ../src/curl -q --output log/4/curl1409.out --include --trace-ascii log/4/trace1409 --trace-time http://127.0.0.1:47/1409 -C wrong > log/4/stdout1409 2> log/4/stderr1409 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1405 ../src/curl -q --output log/5/curl1405.out --include --trace-ascii log/5/trace1405 --trace-time ftp://127.0.0.1:40501/1405 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" --libcurl log/5/test1405.c > log/5/stdout1405 2> log/5/stderr1405 2: header 2' --libcurl log/1/test1404.c > log/1/stdout1404 2> log/1/stderr1404 1404: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1404 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1404 ../src/curl -q --output log/1/curl1404.out --include --trace-ascii log/1/trace1404 --trace-time http://127.0.0.1:33601/we/want/1404 -F name=value -F 'file=@log/1/test1404.txt,log/1/test1404.txt;type=magic/content;encoder=8bit,log/1/test1404.txt;headers=X-testheader-1: header 1;headers=X-testheader-2: header 2' --libcurl log/1/test1404.c > log/1/stdout1404 2> log/1/stderr1404 === End of file commands.log === Start of file http_server.log 10:33:45.127674 ====> Client connect 10:33:45.128177 accept_connection 3 returned 4 10:33:45.128418 accept_connection 3 returned 0 10:33:45.129349 Read 93 bytes 10:33:45.129552 Process 93 bytes request 10:33:45.129658 Got request: GET /verifiedserver HTTP/1.1 10:33:45.129735 Are-we-friendly question received 10:33:45.129921 Wrote request (93 bytes) input to log/1/server.input 10:33:45.130136 Identifying ourselves as friends 10:33:45.130814 Response sent (57 bytes) and written to log/1/server.response 10:33:45.130992 special request received, no persistency 10:33:45.131084 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 58170 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1404 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file test1404.txt dummy data === End of file test1404.txt === Start of file valgrind1404 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1404 test 1406...[--libcurl for SMTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1406 ../src/curl -q --output log/7/curl1406.out --include --trace-ascii log/7/trace1406 --trace-time smtp://127.0.0.1:45189/1406 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-from sender@example.com -T log/7/test1406.eml --libcurl log/7/test1406.c > log/7/stdout1406 2> log/7/stderr1406 1406: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1406 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1406 ../src/curl -q --output log/7/curl1406.out --include --trace-ascii log/7/trace1406 --trace-time smtp://127.0.0.1:45189/1406 --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-from sender@example.com -T log/7/test1406.eml --libcurl log/7/test1406.c > log/7/stdout1406 2> log/7/stderr1406 === End of file commands.log === Start of file server.cmd CAPA SIZE Testnum 1406 === End of file server.cmd === Start of file smtp_server.log 10:33:44.794310 ====> Client connect 10:33:44.795801 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:44.802945 < "EHLO verifiedserver" 10:33:44.803565 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:33:44.813887 < "HELP" 10:33:44.815887 > "214 WE ROOLZ: 120422[CR][LF]" 10:33:44.816236 return proof we are we 10:33:44.822330 < "QUIT" 10:33:44.822804 > "221 curl ESMTP server signing off[CR][LF]" 10:33:44.828948 MAIN sockfilt said DISC 10:33:44.829920 ====> Client disconnected 10:33:44.837800 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:33:44.461417 ====> Client connect 10:33:44.463706 Received DATA (on stdin) 10:33:44.463952 > 160 bytes data, server => client 10:33:44.464102 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:44.464209 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:44.464299 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:44.469151 < 21 bytes data, client => server 10:33:44.469653 'EHLO verifiedserver\r\n' 10:33:44.471397 Received DATA (on stdin) 10:33:44.471598 > 53 bytes data, server => client 10:33:44.471728 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:33:44.475337 < 6 bytes data, client => server 10:33:44.475553 'HELP\r\n' 10:33:44.483704 Received DATA (on stdin) 10:33:44.483970 > 22 bytes data, server => client 10:33:44.484089 '214 WE ROOLZ: 120422\r\n' 10:33:44.485411 < 6 bytes data, client => server 10:33:44.485678 'QUIT\r\n' 10:33:44.490605 Received DATA (on stdin) 10:33:44.490849 > 35 bytes data, server => client 10:33:44.490958 '221 curl ESMTP server signing off\r\n' 10:33:44.496271 ====> Client disconnect 10:33:44.497728 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file test1406.eml From: different To: another body === End of file test1406.eml === Start of file valgrind1406 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1410 ../src/curl -q --output log/6/curl1410.out --include --trace-ascii log/6/trace1410 --trace-time http://127.0.0.1:47/1410 --max-time -4 > log/6/stdout1410 2> log/6/stderr1410 platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1406 test 1409...[Pass in string to -C] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1409 ../src/curl -q --output log/4/curl1409.out --include --trace-ascii log/4/trace1409 --trace-time http://127.0.0.1:47/1409 -C wrong > log/4/stdout1409 2> log/4/stderr1409 curl returned 1, when expecting 2 1409: exit FAILED == Contents of files in the log/4/ dir after test 1409 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1409 ../src/curl -q --output log/4/curl1409.out --include --trace-ascii log/4/trace1409 --trace-time http://127.0.0.1:47/1409 -C wrong > log/4/stdout1409 2> log/4/stderr1409 === End of file commands.log === Start of file server.cmd Testnum 1409 === End of file server.cmd === Start of file valgrind1409 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1409 test 1405...[--libcurl for FTP with quote ops] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1405 ../src/curl -q --output log/5/curl1405.out --include --trace-ascii log/5/trace1405 --trace-time ftp://127.0.0.1:40501/1405 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" --libcurl log/5/test1405.c > log/5/stdout1405 2> log/5/stderr1405 1405: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1405 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1405 ../src/curl -q --output log/5/curl1405.out --include --trace-ascii log/5/trace1405 --trace-time ftp://127.0.0.1:40501/1405 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" --libcurl log/5/test1405.c > log/5/stdout1405 2> log/5/stderr1405 === End of file commands.log === Start of file ftp_server.log 10:33:44.679184 ====> Client connect 10:33:44.680768 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:44.683597 < "USER anonymous" 10:33:44.684145 > "331 We are happy you popped in![CR][LF]" 10:33:44.691143 < "PASS ftp@example.com" 10:33:44.691733 > "230 Welcome you silly person[CR][LF]" 10:33:44.695209 < "PWD" 10:33:44.695852 > "257 "/" is current directory[CR][LF]" 10:33:44.699511 < "EPSV" 10:33:44.700008 ====> Passive DATA channel requested by client 10:33:44.700327 DATA sockfilt for passive data channel starting... 10:33:44.724538 DATA sockfilt for passive data channel started (pid 148603) 10:33:44.727283 DATA sockfilt for passive data channel listens on port 36403 10:33:44.727941 > "229 Entering Passive Mode (|||36403|)[LF]" 10:33:44.728330 Client has been notified that DATA conn will be accepted on port 36403 10:33:44.737684 Client connects to port 36403 10:33:44.738183 ====> Client established passive DATA connection on port 36403 10:33:44.739256 < "TYPE I" 10:33:44.739782 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:44.743509 < "SIZE verifiedserver" 10:33:44.744088 > "213 18[CR][LF]" 10:33:44.754362 < "RETR verifiedserver" 10:33:44.755074 > "150 Binary junk (18 bytes).[CR][LF]" 10:33:44.756052 =====> Closing passive DATA connection... 10:33:44.756504 Server disconnects passive DATA connection 10:33:44.761045 Server disconnected passive DATA connection 10:33:44.761686 DATA sockfilt for passive data channel quits (pid 148603) 10:33:44.765746 DATA sockfilt for passive data channel quit (pid 148603) 10:33:44.766227 =====> Closed passive DATA connection 10:33:44.766748 > "226 File transfer complete[CR][LF]" 10:33:44.810319 < "QUIT" 10:33:44.810793 > "221 bye bye baby[CR][LF]" 10:33:44.817249 MAIN sockfilt said DISC 10:33:44.817871 ====> Client disconnected 10:33:44.818565 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:45.344546 ====> Client connect 10:33:45.348565 Received DATA (on stdin) 10:33:45.348861 > 160 bytes data, server => client 10:33:45.349039 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:45.349149 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:45.349237 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:45.350289 < 16 bytes data, client => server 10:33:45.350550 'USER anonymous\r\n' 10:33:45.351989 Received DATA (on stdin) 10:33:45.352175 > 33 bytes data, server => client 10:33:45.352276 '331 We are happy you popped in!\r\n' 10:33:45.355546 < 22 bytes data, client => server 10:33:45.357543 'PASS ftp@example.com\r\n' 10:33:45.359657 Received DATA (on stdin) 10:33:45.359839 > 30 bytes data, server => client 10:33:45.359967 '230 Welcome you silly person\r\n' 10:33:45.362098 < 5 bytes data, client => server 10:33:45.362409 'PWD\r\n' 10:33:45.364693 Received DATA (on stdin) 10:33:45.365013 > 30 bytes data, server => client 10:33:45.365182 '257 "/" is current directory\r\n' 10:33:45.366412 < 6 bytes data, client => server 10:33:45.366664 'EPSV\r\n' 10:33:45.396700 Received DATA (on stdin) 10:33:45.396939 > 38 bytes data, server => client 10:33:45.397047 '229 Entering Passive Mode (|||36403|)\n' 10:33:45.398512 < 8 bytes data, client => server 10:33:45.398686 'TYPE I\r\n' 10:33:45.407703 Received DATA (on stdin) 10:33:45.407892 > 33 bytes data, server => client 10:33:45.407991 '200 I modify TYPE as you wanted\r\n' 10:33:45.409408 < 21 bytes data, client => server 10:33:45.409649 'SIZE verifiedserver\r\n' 10:33:45.411931 Received DATA (on stdin) 10:33:45.412109 > 8 bytes data, server => client 10:33:45.412206 '213 18\r\n' 10:33:45.414906 < 21 bytes data, client => server 10:33:45.415176 'RETR verifiedserver\r\n' 10:33:45.422887 Received DATA (on stdin) 10:33:45.423167 > 29 bytes data, server => client 10:33:45.423305 '150 Binary junk (18 bytes).\r\n' 10:33:45.441388 Received DATA (on stdin) 10:33:45.441686 > 28 bytes data, server => client 10:33:45.441825 '226 File transfer complete\r\n' 10:33:45.474277 < 6 bytes data, client => server 10:33:45.474521 'QUIT\r\n' 10:33:45.478624 Received DATA (on stdin) 10:33:45.478818 > 18 bytes data, server => client 10:33:45.478912 '221 bye bye baby\r\n' 10:33:45.479513 ====> Client disconnect 10:33:45.485902 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:44.390529 Running IPv4 version 10:33:44.391233 Listening on port 36403 10:33:44.391699 Wrote pid 148603 to log/5/server/ftp_sockdata.pid 10:33:44.391915 Received PING (on stdin) 10:33:44.394099 Received PORT (on stdin) 10:33:44.400569 ====> Client connect 10:33:44.425972 Received DATA (on stdin) 10:33:44.426225 > 18 bytes data, server => client 10:33:44.426347 'WE ROOLZ: 131615\r\n' 10:33:44.427698 Received DISC (on stdin) 10:33:44.428031 ====> Client forcibly disconnected 10:33:44.429957 Received QUIT (on stdin) 10:33:44.430140 quits 10:33:44.430555 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command REPLY FAIL 500 this might not be a failure Testnum 1405 === End of file server.cmd === Start of file valgrind1405 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1405 test 1407...[--libcurl for POP3 LIST one message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1407 ../src/curl -q --output log/8/curl1407.out --include --trace-ascii log/8/trace1407 --trace-time pop3://127.0.0.1:43011/1407 -l -u user:secret --libcurl log/8/test1407.c > log/8/stdout1407 2> log/8/stderr1407 1407: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1407 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1407 ../src/curl -q --output log/8/curl1407.out --include --trace-ascii log/8/trace1407 --trace-time pop3://127.0.0.1:43011/1407 -l -u user:secret --libcurl log/8/test1407.c > log/8/stdout1407 2> log/8/stderr1407 === End of file commands.log === Start of file pop3_server.log 10:33:44.875106 ====> Client connect 10:33:44.876449 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]+OK curl POP3 server ready to serve [CR][LF]" 10:33:44.880201 < "CAPA" 10:33:44.881733 > "-ERR Unrecognized command[CR][LF]" 10:33:44.888521 < "RETR verifiedserver" 10:33:44.889023 return proof we are we 10:33:44.889625 > "+OK Mail transfer starts[CR][LF]" 10:33:44.889974 > "WE ROOLZ: 117427[CR][LF]" 10:33:44.890336 > ".[CR][LF]" 10:33:44.937450 < "QUIT" 10:33:44.938059 > "+OK curl POP3 server signing off[CR][LF]" 10:33:44.942311 MAIN sockfilt said DISC 10:33:44.942827 ====> Client disconnected 10:33:44.943488 Awaiting input === End of file pop3_server.log === Start of file pop3_sockfilt.log 10:33:44.541413 ====> Client connect 10:33:44.544271 Received DATA (on stdin) 10:33:44.544549 > 178 bytes data, server => client 10:33:44.544702 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:33:44.544812 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:33:44.544921 ' \___|\___/|_| \_\_____|\r\n+OK curl POP3 server ready to ser' 10:33:44.545035 've \r\n' 10:33:44.546217 < 6 bytes data, client => server 10:33:44.546459 'CAPA\r\n' 10:33:44.553564 Received DATA (on stdin) 10:33:44.553820 > 27 bytes data, server => client 10:33:44.553921 '-ERR Unrecognized command\r\n' 10:33:44.555404 < 21 bytes data, client => server 10:33:44.555651 'RETR verifiedserver\r\n' 10:33:44.557353 Received DATA (on stdin) 10:33:44.557579 > 26 bytes data, server => client 10:33:44.557675 '+OK Mail transfer starts\r\n' 10:33:44.558001 Received DATA (on stdin) 10:33:44.558140 > 18 bytes data, server => client 10:33:44.558233 'WE ROOLZ: 117427\r\n' 10:33:44.558362 Received DATA (on stdin) 10:33:44.558458 > 3 bytes data, server => client 10:33:44.558534 '.\r\n' 10:33:44.604374 < 6 bytes data, client => server 10:33:44.604589 'QUIT\r\n' 10:33:44.605862 Received DATA (on stdin) 10:33:44.606088 > 34 bytes data, server => client 10:33:44.606201 '+OK curl POP3 server signing off\r\n' 10:33:44.606822 ====> Client disconnect 10:33:44.610675 Received ACKD (on stdin) === End of file pop3_sockfilt.log === Start of file server.cmd REPLY LIST +OK 1407 100\r\n. Testnum 1407 === End of file server.cmd === Start of file valgrind1407 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1407 test 1410...[Pass in negative number to --max-time] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1410 ../src/curl -q --output log/6/curl1410.out --include --trace-ascii log/6/trace1410 --trace-time http://127.0.0.1:47/1410 --max-time -4 > log/6/stdout1410 2> log/6/stderr1410 curl returned 1, when expecting 2 1410: exit FAILED == ConteCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1408 ../src/curl -q --output log/3/curl1408.out --include --trace-ascii log/3/trace1408 --trace-time -c log/3/jar1408 -g http://[::1]:35121/path/14080001 http://[::1]:35121/path/14080002 > log/3/stdout1408 2> log/3/stderr1408 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1411 ../src/curl -q --output log/2/curl1411.out --include --trace-ascii log/2/trace1411 --trace-time http://127.0.0.1:43789/1411 -T log/2/empty1411 > log/2/stdout1411 2> log/2/stderr1411 nts of files in the log/6/ dir after test 1410 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1410 ../src/curl -q --output log/6/curl1410.out --include --trace-ascii log/6/trace1410 --trace-time http://127.0.0.1:47/1410 --max-time -4 > log/6/stdout1410 2> log/6/stderr1410 === End of file commands.log === Start of file server.cmd Testnum 1410 === End of file server.cmd === Start of file valgrind1410 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1410 test 1408...[HTTP receive cookies over IPV6] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1408 ../src/curl -q --output log/3/curl1408.out --include --trace-ascii log/3/trace1408 --trace-time -c log/3/jar1408 -g http://[::1]:35121/path/14080001 http://[::1]:35121/path/14080002 > log/3/stdout1408 2> log/3/stderr1408 1408: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1408 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1408 ../src/curl -q --output log/3/curl1408.out --include --trace-ascii log/3/trace1408 --trace-time -c log/3/jar1408 -g http://[::1]:35121/path/14080001 http://[::1]:35121/path/14080002 > log/3/stdout1408 2> log/3/stderr1408 === End of file commands.log === Start of file http_ipv6_server.log 10:33:44.951068 ====> Client connect 10:33:44.951457 accept_connection 3 returned 4 10:33:44.951695 accept_connection 3 returned 0 10:33:44.951920 Read 89 bytes 10:33:44.952037 Process 89 bytes request 10:33:44.952134 Got request: GET /verifiedserver HTTP/1.1 10:33:44.952208 Are-we-friendly question received 10:33:44.952507 Wrote request (89 bytes) input to log/3/server.input 10:33:44.952768 Identifying ourselves as friends 10:33:44.953836 Response sent (56 bytes) and written to log/3/server.response 10:33:44.954011 special request received, no persistency 10:33:44.954099 ====> Client disconnect 0 === End of file http_ipv6_server.log === Start of file http_ipv6_verify.log * Trying [::1]:35121... * Established connection to ::1 (::1 port 35121) from ::1 port 41010 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: [::1]:35121 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host ::1:35121 left intact === End of file http_ipv6_verify.log === Start of file http_ipv6_verify.out WE ROOLZ: 88084 === End of file http_ipv6_verify.out === Start of file server.cmd Testnum 1408 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 88084 === End of file server.response === Start of file valgrind1408 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1408 test 1411...[HTTP with zero size file PUT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1411 ../src/curl -q --output log/2/curl1411.out --include --trace-ascii log/2/trace1411 --trace-time http://127.0.0.1:43789/1411 -T log/2/empty1411 > log/2/stdout1411 2> log/2/stderr1411 1411: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1411 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1411 ../src/curl -q --output log/2/curl1411.out --include --trace-ascii log/2/trace1411 --trace-time http://127.0.0.1:43789/1411 -T log/2/empty1411 > log/2/stdout1411 2> log/2/stderr1411 === End of file commands.log === Start of file http_server.log 10:33:45.124726 ====> Client connect 10:33:45.125092 accept_connection 3 returned 4 10:33:45.125453 accept_connection 3 returned 0 10:33:45.125687 Read 93 bytes 10:33:45.125819 Process 93 bytes request 10:33:45.125917 Got request: GET /verifiedserver HTTP/1.1 10:33:45.125992 Are-we-friendly question received 10:33:45.126241 Wrote request (93 bytes) input to log/2/server.input 10:33:45.126445 Identifying ourselves as friends 10:33:45.127220 Response sent (56 bytes) and written to log/2/server.response 10:33:45.127417 special request received, no persistency 10:33:45.127521 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50810 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of fiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1412 ../src/curl -q --output log/1/curl1412.out --include --trace-ascii log/1/trace1412 --trace-time http://127.0.0.1:33601/1412 -u testuser:testpass --anyauth http://127.0.0.1:33601/14120001 > log/1/stdout1412 2> log/1/stderr1412 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1413 ../src/curl -q --output log/7/curl1413.out --include --trace-ascii log/7/trace1413 --trace-time http://127.0.0.1:40129/this/1413 -L > log/7/stdout1413 2> log/7/stderr1413 le http_verify.out === Start of file server.cmd Testnum 1411 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1411 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1411 test 1412...[HTTP GET with --anyauth with two URLs (picking Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1412 ../src/curl -q --output log/1/curl1412.out --include --trace-ascii log/1/trace1412 --trace-time http://127.0.0.1:33601/1412 -u testuser:testpass --anyauth http://127.0.0.1:33601/14120001 > log/1/stdout1412 2> log/1/stderr1412 1412: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1412 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1412 ../src/curl -q --output log/1/curl1412.out --include --trace-ascii log/1/trace1412 --trace-time http://127.0.0.1:33601/1412 -u testuser:testpass --anyauth http://127.0.0.1:33601/14120001 > log/1/stdout1412 2> log/1/stderr1412 === End of file commands.log === Start of file http_server.log 10:33:46.521490 ====> Client connect 10:33:46.521879 accept_connection 3 returned 4 10:33:46.522104 accept_connection 3 returned 0 10:33:46.522227 Read 93 bytes 10:33:46.522300 Process 93 bytes request 10:33:46.522376 Got request: GET /verifiedserver HTTP/1.1 10:33:46.522439 Are-we-friendly question received 10:33:46.522738 Wrote request (93 bytes) input to log/1/server.input 10:33:46.522914 Identifying ourselves as friends 10:33:46.523586 Response sent (57 bytes) and written to log/1/server.response 10:33:46.523714 special request received, no persistency 10:33:46.523776 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 58182 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd auth_required Testnum 1412 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1412 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1412 test 1413...[HTTP redirect with fragment in new URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1413 ../src/curl -q --output log/7/curl1413.out --include --trace-ascii log/7/trace1413 --trace-time http://127.0.0.1:40129/this/1413 -L > log/7/stdout1413 2> log/7/stderr1413 1413: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1413 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1413 ../src/curl -q --output log/7/curl1413.out --include --trace-ascii log/7/trace1413 --trace-time http://127.0.0.1:40129/this/1413 -L > log/7/stdout1413 2> log/7/stderr1413 === End of file commands.log === Start of file http_server.log 10:33:45.702027 ====> Client connect 10:33:45.702476 accept_connection 3 returned 4 10:33:45.702735 accept_connection 3 returned 0 10:33:45.702915 Read 93 bytes 10:33:45.703034 Process 93 bytes request 10:33:45.703167 Got request: GET /verifiedserver HTTP/1.1 10:33:45.703298 Are-we-friendly question received 10:33:45.703683 Wrote request (93 bytes) input to log/7/server.input 10:33:45.703963 Identifying ourselves as friends 10:33:45.704981 Response sent (56 bytes) and written to log/7/server.response 10:33:45.705148 special request received, no persistency 10:33:45.707309 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46290 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1413 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1413 valgrind: Fatal error at startup: a function redirCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1415 ../src/curl -q --output log/6/curl1415.out --include --trace-ascii log/6/trace1415 --trace-time http://example.com/we/want/1415 -b none -c log/6/jar1415.txt -x 127.0.0.1:33363 > log/6/stdout1415 2> log/6/stderr1415 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1414 ../src/curl -q --output log/8/curl1414.out --include --trace-ascii log/8/trace1414 --trace-time ftp://127.0.0.1:42977/1414 -P - > log/8/stdout1414 2> log/8/stderr1414 ection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1413 setenv TZ = GMT test 1415...[Delete expired cookies] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1415 ../src/curl -q --output log/6/curl1415.out --include --trace-ascii log/6/trace1415 --trace-time http://example.com/we/want/1415 -b none -c log/6/jar1415.txt -x 127.0.0.1:33363 > log/6/stdout1415 2> log/6/stderr1415 1415: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1415 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1415 ../src/curl -q --output log/6/curl1415.out --include --trace-ascii log/6/trace1415 --trace-time http://example.com/we/want/1415 -b none -c log/6/jar1415.txt -x 127.0.0.1:33363 > log/6/stdout1415 2> log/6/stderr1415 === End of file commands.log === Start of file http_server.log 10:33:45.784153 ====> Client connect 10:33:45.784401 accept_connection 3 returned 4 10:33:45.784568 accept_connection 3 returned 0 10:33:45.784705 Read 93 bytes 10:33:45.784784 Process 93 bytes request 10:33:45.784867 Got request: GET /verifiedserver HTTP/1.1 10:33:45.784937 Are-we-friendly question received 10:33:45.785133 Wrote request (93 bytes) input to log/6/server.input 10:33:45.785386 Identifying ourselves as friends 10:33:45.786693 Response sent (56 bytes) and written to log/6/server.response 10:33:45.786811 special request received, no persistency 10:33:45.786878 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 54986 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1415 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1415 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1415 test 1414...[FTP PORT without SIZE or EPRT support] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1414 ../src/curl -q --output log/8/curl1414.out --include --trace-ascii log/8/trace1414 --trace-time ftp://127.0.0.1:42977/1414 -P - > log/8/stdout1414 2> log/8/stderr1414 1414: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1414 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1414 ../src/curl -q --output log/8/curl1414.out --include --trace-ascii log/8/trace1414 --trace-time ftp://127.0.0.1:42977/1414 -P - > log/8/stdout1414 2> log/8/stderr1414 === End of file commands.log === Start of file ftp_server.log 10:33:46.087859 ====> Client connect 10:33:46.090272 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:46.092023 < "USER anonymous" 10:33:46.093103 > "331 We are happy you popped in![CR][LF]" 10:33:46.097035 < "PASS ftp@example.com" 10:33:46.097669 > "230 Welcome you silly person[CR][LF]" 10:33:46.101384 < "PWD" 10:33:46.102118 > "257 "/" is current directory[CR][LF]" 10:33:46.104705 < "EPSV" 10:33:46.105033 ====> Passive DATA channel requested by client 10:33:46.105229 DATA sockfilt for passive data channel starting... 10:33:46.116979 DATA sockfilt for passive data channel started (pid 149230) 10:33:46.118139 DATA sockfilt for passive data channel listens on port 42959 10:33:46.118631 > "229 Entering Passive Mode (|||42959|)[LF]" 10:33:46.118862 Client has been notified that DATA conn will be accepted on port 42959 10:33:46.126240 Client connects to port 42959 10:33:46.126828 ====> Client established passive DATA connection on port 42959 10:33:46.127777 < "TYPE I" 10:33:46.129710 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:46.134440 < "SIZE verifiedserver" 10:33:46.135064 > "213 17[CR][LF]" 10:33:46.142187 < "RETR verifiedserver" 10:33:46.142727 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:46.143606 =====> Closing passive DATA connection... 10:33:46.143954 Server disconnects passive DATA connection 10:33:46.153755 Server disconnected passive DATA connection 10:33:46.154110 DATA sockfilt for passive data channel quits (pid 149230) 10:33:46.156393 DATA sockfilt for passive data channel quit (pid 149230) 10:33:46.156763 =====> Closed passive DATA connection 10:33:46.157080 > "226 File transfer complete[CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1416 ../src/curl -q --output log/5/curl1416.out --include --trace-ascii log/5/trace1416 --trace-time http://127.0.0.1:41733/1416 > log/5/stdout1416 2> log/5/stderr1416 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1417 ../src/curl -q --output log/4/curl1417.out --include --trace-ascii log/4/trace1417 --trace-time http://127.0.0.1:36757/1417 -D log/4/heads1417 > log/4/stdout1417 2> log/4/stderr1417 CR][LF]" 10:33:46.191322 < "QUIT" 10:33:46.191822 > "221 bye bye baby[CR][LF]" 10:33:46.198878 MAIN sockfilt said DISC 10:33:46.199458 ====> Client disconnected 10:33:46.200169 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:45.755007 ====> Client connect 10:33:45.756760 Received DATA (on stdin) 10:33:45.757005 > 160 bytes data, server => client 10:33:45.757257 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:45.757413 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:45.757498 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:45.758204 < 16 bytes data, client => server 10:33:45.758385 'USER anonymous\r\n' 10:33:45.760380 Received DATA (on stdin) 10:33:45.760608 > 33 bytes data, server => client 10:33:45.761409 '331 We are happy you popped in!\r\n' 10:33:45.763713 < 22 bytes data, client => server 10:33:45.763900 'PASS ftp@example.com\r\n' 10:33:45.765917 Received DATA (on stdin) 10:33:45.766132 > 30 bytes data, server => client 10:33:45.766245 '230 Welcome you silly person\r\n' 10:33:45.767848 < 5 bytes data, client => server 10:33:45.768089 'PWD\r\n' 10:33:45.770427 Received DATA (on stdin) 10:33:45.770660 > 30 bytes data, server => client 10:33:45.770752 '257 "/" is current directory\r\n' 10:33:45.771491 < 6 bytes data, client => server 10:33:45.771701 'EPSV\r\n' 10:33:45.788502 Received DATA (on stdin) 10:33:45.788775 > 38 bytes data, server => client 10:33:45.788890 '229 Entering Passive Mode (|||42959|)\n' 10:33:45.793391 < 8 bytes data, client => server 10:33:45.793629 'TYPE I\r\n' 10:33:45.796000 Received DATA (on stdin) 10:33:45.796190 > 33 bytes data, server => client 10:33:45.797322 '200 I modify TYPE as you wanted\r\n' 10:33:45.800751 < 21 bytes data, client => server 10:33:45.800941 'SIZE verifiedserver\r\n' 10:33:45.803325 Received DATA (on stdin) 10:33:45.803540 > 8 bytes data, server => client 10:33:45.803631 '213 17\r\n' 10:33:45.805342 < 21 bytes data, client => server 10:33:45.805572 'RETR verifiedserver\r\n' 10:33:45.810543 Received DATA (on stdin) 10:33:45.810795 > 29 bytes data, server => client 10:33:45.810910 '150 Binary junk (17 bytes).\r\n' 10:33:45.824883 Received DATA (on stdin) 10:33:45.825102 > 28 bytes data, server => client 10:33:45.825255 '226 File transfer complete\r\n' 10:33:45.858277 < 6 bytes data, client => server 10:33:45.858518 'QUIT\r\n' 10:33:45.859638 Received DATA (on stdin) 10:33:45.859851 > 18 bytes data, server => client 10:33:45.859962 '221 bye bye baby\r\n' 10:33:45.863724 ====> Client disconnect 10:33:45.867253 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:46.782287 Running IPv4 version 10:33:46.782838 Listening on port 42959 10:33:46.783280 Wrote pid 149230 to log/8/server/ftp_sockdata.pid 10:33:46.783454 Received PING (on stdin) 10:33:46.785200 Received PORT (on stdin) 10:33:46.790206 ====> Client connect 10:33:46.813428 Received DATA (on stdin) 10:33:46.813708 > 17 bytes data, server => client 10:33:46.813826 'WE ROOLZ: 86552\r\n' 10:33:46.814220 Received DISC (on stdin) 10:33:46.814412 ====> Client forcibly disconnected 10:33:46.822183 Received QUIT (on stdin) 10:33:46.822420 quits 10:33:46.822865 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY SIZE 502 no such command REPLY EPRT 502 no such command Testnum 1414 === End of file server.cmd === Start of file valgrind1414 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1414 test 1416...[HTTP GET with chunked Transfer-Encoding overflowed chunked size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1416 ../src/curl -q --output log/5/curl1416.out --include --trace-ascii log/5/trace1416 --trace-time http://127.0.0.1:41733/1416 > log/5/stdout1416 2> log/5/stderr1416 1416: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1416 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1416 ../src/curl -q --output log/5/curl1416.out --include --trace-ascii log/5/trace1416 --trace-time http://127.0.0.1:41733/1416 > log/5/stdout1416 2> log/5/stderr1416 === End of file commands.log === Start of file http_server.log 10:33:46.889772 ====> Client connect 10:33:46.890208 accept_connection 3 returned 4 10:33:46.890485 accept_connection 3 returned 0 10:33:46.890700 Read 93 bytes 10:33:46.890828 Process 93 bytes request 10:33:46.890935 Got request: GET /verifiedserver HTTP/1.1 10:33:46.891023 Are-we-friendly question received 10:33:46.891331 Wrote request (93 bytes) input to log/5/server.input 10:33:46.891570 Identifying ourselves as friends 10:33:46.892624 Response sent (56 bytes) and written to log/5/server.response 10:33:46.892834 special request received, no persistency 10:33:46.892941 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 34536 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1416 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1416 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1419 ../src/curl -q --output log/2/curl1419.out --include --trace-ascii log/2/trace1419 --trace-time http://127.0.0.1:43789/1419 --anyauth http://127.0.0.1:43789/14190003 > log/2/stdout1419 2> log/2/stderr1419 atever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1416 test 1417...[HTTP GET with chunked encoding and chunked trailer without CRs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1417 ../src/curl -q --output log/4/curl1417.out --include --trace-ascii log/4/trace1417 --trace-time http://127.0.0.1:36757/1417 -D log/4/heads1417 > log/4/stdout1417 2> log/4/stderr1417 1417: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1417 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1417 ../src/curl -q --output log/4/curl1417.out --include --trace-ascii log/4/trace1417 --trace-time http://127.0.0.1:36757/1417 -D log/4/heads1417 > log/4/stdout1417 2> log/4/stderr1417 === End of file commands.log === Start of file http_server.log 10:33:46.929809 ====> Client connect 10:33:46.930127 accept_connection 3 returned 4 10:33:46.930332 accept_connection 3 returned 0 10:33:46.930460 Read 93 bytes 10:33:46.930549 Process 93 bytes request 10:33:46.930638 Got request: GET /verifiedserver HTTP/1.1 10:33:46.930707 Are-we-friendly question received 10:33:46.930938 Wrote request (93 bytes) input to log/4/server.input 10:33:46.931123 Identifying ourselves as friends 10:33:46.931818 Response sent (56 bytes) and written to log/4/server.response 10:33:46.931972 special request received, no persistency 10:33:46.932037 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 58672 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1417 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1417 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1417 test 1419...[HTTP with --anyauth (but no auth!) and connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1419 ../src/curl -q --output log/2/curl1419.out --include --trace-ascii log/2/trace1419 --trace-time http://127.0.0.1:43789/1419 --anyauth http://127.0.0.1:43789/14190003 > log/2/stdout1419 2> log/2/stderr1419 1419: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1419 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1419 ../src/curl -q --output log/2/curl1419.out --include --trace-ascii log/2/trace1419 --trace-time http://127.0.0.1:43789/1419 --anyauth http://127.0.0.1:43789/14190003 > log/2/stdout1419 2> log/2/stderr1419 === End of file commands.log === Start of file http_server.log 10:33:46.159381 ====> Client connect 10:33:46.159698 accept_connection 3 returned 4 10:33:46.159892 accept_connection 3 returned 0 10:33:46.160025 Read 93 bytes 10:33:46.160116 Process 93 bytes request 10:33:46.160209 Got request: GET /verifiedserver HTTP/1.1 10:33:46.160283 Are-we-friendly question received 10:33:46.160548 Wrote request (93 bytes) input to log/2/server.input 10:33:46.160737 Identifying ourselves as friends 10:33:46.161715 Response sent (56 bytes) and written to log/2/server.response 10:33:46.161865 special request received, no persistency 10:33:46.162147 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50812 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1419 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1419 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1418 ../src/curl -q --output log/3/curl1418.out --include --trace-ascii log/3/trace1418 --trace-time http://127.0.0.1:36933/1418 -u testuser:testpass --anyauth http://127.0.0.1:36933/14180003 > log/3/stdout1418 2> log/3/stderr1418 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1421 ../src/curl -q --include --trace-ascii log/7/trace1421 --trace-time --proxy http://127.0.0.1:40129 http://test.remote.haxx.se.1421:8990/ http://different.remote.haxx.se.1421:8990 > log/7/stdout1421 2> log/7/stderr1421 libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1419 test 1418...[HTTP with --anyauth and connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1418 ../src/curl -q --output log/3/curl1418.out --include --trace-ascii log/3/trace1418 --trace-time http://127.0.0.1:36933/1418 -u testuser:testpass --anyauth http://127.0.0.1:36933/14180003 > log/3/stdout1418 2> log/3/stderr1418 1418: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1418 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1418 ../src/curl -q --output log/3/curl1418.out --include --trace-ascii log/3/trace1418 --trace-time http://127.0.0.1:36933/1418 -u testuser:testpass --anyauth http://127.0.0.1:36933/14180003 > log/3/stdout1418 2> log/3/stderr1418 === End of file commands.log === Start of file http_server.log 10:33:46.004270 ====> Client connect 10:33:46.004582 accept_connection 3 returned 4 10:33:46.004805 accept_connection 3 returned 0 10:33:46.005464 Read 93 bytes 10:33:46.005882 Process 93 bytes request 10:33:46.006067 Got request: GET /verifiedserver HTTP/1.1 10:33:46.006172 Are-we-friendly question received 10:33:46.006470 Wrote request (93 bytes) input to log/3/server.input 10:33:46.006720 Identifying ourselves as friends 10:33:46.007616 Response sent (56 bytes) and written to log/3/server.response 10:33:46.007796 special request received, no persistency 10:33:46.007884 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 50148 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1418 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1418 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1418 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1427 ../src/curl -q --output log/4/curl1427.out --include --trace-ascii log/4/trace1427 --trace-time http://127.0.0.1:47/1427 -m 184467440737095510 > log/4/stdout1427 2> log/4/stderr1427 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1422 ../src/curl -q --trace-ascii log/6/trace1422 --trace-time http://127.0.0.1:33363/1422 -J -O file:///build/curl/src/build-curl/tests/log/6/name1422 --output-dir log/6 > log/6/stdout1422 2> log/6/stderr1422 test 1421...[Reusing HTTP proxy connection for two different host names] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1421 ../src/curl -q --include --trace-ascii log/7/trace1421 --trace-time --proxy http://127.0.0.1:40129 http://test.remote.haxx.se.1421:8990/ http://different.remote.haxx.se.1421:8990 > log/7/stdout1421 2> log/7/stderr1421 1421: stdout FAILED: --- log/7/check-expected 2025-09-11 10:33:47.810598673 +0000 +++ log/7/check-generated 2025-09-11 10:33:47.810598673 +0000 @@ -1,10 +0,0 @@ -HTTP/1.1 200 OK[LF] -Unknown-header: blrub[LF] -Content-Length: 6[LF] -[LF] --foo-[LF] -HTTP/1.1 200 OK[LF] -Unknown-header: blrub[LF] -Content-Length: 6[LF] -[LF] --foo-[LF] == Contents of files in the log/7/ dir after test 1421 === Start of file check-expected HTTP/1.1 200 OK[LF] Unknown-header: blrub[LF] Content-Length: 6[LF] [LF] -foo-[LF] HTTP/1.1 200 OK[LF] Unknown-header: blrub[LF] Content-Length: 6[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1421 ../src/curl -q --include --trace-ascii log/7/trace1421 --trace-time --proxy http://127.0.0.1:40129 http://test.remote.haxx.se.1421:8990/ http://different.remote.haxx.se.1421:8990 > log/7/stdout1421 2> log/7/stderr1421 === End of file commands.log === Start of file http_server.log 10:33:46.693726 ====> Client connect 10:33:46.694109 accept_connection 3 returned 4 10:33:46.694329 accept_connection 3 returned 0 10:33:46.694479 Read 93 bytes 10:33:46.694580 Process 93 bytes request 10:33:46.694672 Got request: GET /verifiedserver HTTP/1.1 10:33:46.694748 Are-we-friendly question received 10:33:46.695004 Wrote request (93 bytes) input to log/7/server.input 10:33:46.695165 Identifying ourselves as friends 10:33:46.695900 Response sent (56 bytes) and written to log/7/server.response 10:33:46.696026 special request received, no persistency 10:33:46.696100 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46292 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd connection-monitor Testnum 1421 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1421 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1421 test 1427...[too large -m timeout value] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1427 ../src/curl -q --output log/4/curl1427.out --include --trace-ascii log/4/trace1427 --trace-time http://127.0.0.1:47/1427 -m 184467440737095510 > log/4/stdout1427 2> log/4/stderr1427 curl returned 1, when expecting 2 1427: exit FAILED == Contents of files in the log/4/ dir after test 1427 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1427 ../src/curl -q --output log/4/curl1427.out --include --trace-ascii log/4/trace1427 --trace-time http://127.0.0.1:47/1427 -m 184467440737095510 > log/4/stdout1427 2> log/4/stderr1427 === End of file commands.log === Start of file server.cmd Testnum 1427 === End of file server.cmd === Start of file valgrind1427 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1427 test 1422...[HTTP GET with -O -J and Content-Disposition (empty file)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1422 ../src/curl -q --trace-ascii log/6/trace1422 --trace-time http://127.0.0.1:33363/1422 -J -O file:///build/curl/src/build-curl/tests/log/6/name1422 --output-dir log/6 > log/6/stdout1422 2> log/6/stderr1422 1422: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1422 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1422 ../src/curl -q --trace-ascii log/6/trace1422 --trace-time http://127.0.0.1:33363/1422 -J -O file:///build/curl/src/build-curl/tests/log/6/name1422 --output-dir log/6 > log/6/stdout1422 2> log/6/stderr1422 === End of file commands.log === Start of file http_server.log 10:33:46.823984 ====> Client connect 10:33:46.824266 accept_connection 3 returned 4 10:33:46.824437 accept_connection 3 retuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1420 ../src/curl -q --output log/1/curl1420.out --include --trace-ascii log/1/trace1420 --trace-time 'imap://127.0.0.1:33191/1420/;MAILINDEX=1' -u user:secret --libcurl log/1/test1420.c > log/1/stdout1420 2> log/1/stderr1420 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1423 ../src/curl -q --trace-ascii log/8/trace1423 --trace-time http://127.0.0.1:36007/1423 -o log/8/outfile1423 file:///build/curl/src/build-curl/tests/log/8/outfile1423 > log/8/stdout1423 2> log/8/stderr1423 rned 0 10:33:46.824568 Read 93 bytes 10:33:46.824652 Process 93 bytes request 10:33:46.824731 Got request: GET /verifiedserver HTTP/1.1 10:33:46.824811 Are-we-friendly question received 10:33:46.825026 Wrote request (93 bytes) input to log/6/server.input 10:33:46.825288 Identifying ourselves as friends 10:33:46.826050 Response sent (56 bytes) and written to log/6/server.response 10:33:46.826162 special request received, no persistency 10:33:46.826229 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 54992 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1422 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1422 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1422 test 1420...[--libcurl for IMAP FETCH message] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1420 ../src/curl -q --output log/1/curl1420.out --include --trace-ascii log/1/trace1420 --trace-time 'imap://127.0.0.1:33191/1420/;MAILINDEX=1' -u user:secret --libcurl log/1/test1420.c > log/1/stdout1420 2> log/1/stderr1420 1420: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1420 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1420 ../src/curl -q --output log/1/curl1420.out --include --trace-ascii log/1/trace1420 --trace-time 'imap://127.0.0.1:33191/1420/;MAILINDEX=1' -u user:secret --libcurl log/1/test1420.c > log/1/stdout1420 2> log/1/stderr1420 === End of file commands.log === Start of file imap_server.log 10:33:46.958814 ====> Client connect 10:33:46.961906 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:33:46.963983 < "A001 CAPABILITY" 10:33:46.971209 > "A001 BAD Command[CR][LF]" 10:33:46.974658 < "A002 LIST "verifiedserver" *" 10:33:46.975388 LIST_imap got "verifiedserver" * 10:33:46.976081 > "* LIST () "/" "WE ROOLZ: 114681"[CR][LF]" 10:33:46.976550 > "A002 OK LIST Completed[CR][LF]" 10:33:46.976808 return proof we are we 10:33:47.025087 < "A003 LOGOUT" 10:33:47.026223 > "* BYE curl IMAP server signing off[CR][LF]" 10:33:47.026673 > "A003 OK LOGOUT completed[CR][LF]" 10:33:47.028523 MAIN sockfilt said DISC 10:33:47.029039 ====> Client disconnected 10:33:47.029847 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:33:46.625743 ====> Client connect 10:33:46.628036 Received DATA (on stdin) 10:33:46.628338 > 178 bytes data, server => client 10:33:46.628592 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:33:46.628714 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:33:46.628803 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:33:46.628872 'rve\r\n' 10:33:46.629948 < 17 bytes data, client => server 10:33:46.630123 'A001 CAPABILITY\r\n' 10:33:46.633863 Received DATA (on stdin) 10:33:46.634299 > 18 bytes data, server => client 10:33:46.639747 'A001 BAD Command\r\n' 10:33:46.641130 < 30 bytes data, client => server 10:33:46.641456 'A002 LIST "verifiedserver" *\r\n' 10:33:46.643906 Received DATA (on stdin) 10:33:46.644171 > 34 bytes data, server => client 10:33:46.644295 '* LIST () "/" "WE ROOLZ: 114681"\r\n' 10:33:46.644757 Received DATA (on stdin) 10:33:46.645026 > 24 bytes data, server => client 10:33:46.645342 'A002 OK LIST Completed\r\n' 10:33:46.692112 < 13 bytes data, client => server 10:33:46.692337 'A003 LOGOUT\r\n' 10:33:46.694763 Received DATA (on stdin) 10:33:46.694926 > 36 bytes data, server => client 10:33:46.695015 '* BYE curl IMAP server signing off\r\n' 10:33:46.695325 Received DATA (on stdin) 10:33:46.695448 > 26 bytes data, server => client 10:33:46.695549 'A003 OK LOGOUT completed\r\n' 10:33:46.695825 ====> Client disconnect 10:33:46.697377 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1420 === End of file server.cmd === Start of file valgrind1420 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1420 test 1423...[HTTP GET -o fname without Content-Disposition (empty file)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1423 ../src/curl -q --trace-ascii log/8/trace1423 --trace-time http://127.0.0.1:36007/1423 -o log/8/outfile1423 file:///CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1424 ../src/curl -q --trace-ascii log/5/trace1424 --trace-time http://127.0.0.1:41733/1424 -z "dec 12 11:00:00 1999 GMT" -o log/5/outfile1424 > log/5/stdout1424 2> log/5/stderr1424 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1429 ../src/curl -q --include --trace-ascii log/3/trace1429 --trace-time http://127.0.0.1:36933/1429 --write-out '%{response_code}' > log/3/stdout1429 2> log/3/stderr1429 build/curl/src/build-curl/tests/log/8/outfile1423 > log/8/stdout1423 2> log/8/stderr1423 1423: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1423 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1423 ../src/curl -q --trace-ascii log/8/trace1423 --trace-time http://127.0.0.1:36007/1423 -o log/8/outfile1423 file:///build/curl/src/build-curl/tests/log/8/outfile1423 > log/8/stdout1423 2> log/8/stderr1423 === End of file commands.log === Start of file http_server.log 10:33:46.855366 ====> Client connect 10:33:46.855743 accept_connection 3 returned 4 10:33:46.855919 accept_connection 3 returned 0 10:33:46.856046 Read 93 bytes 10:33:46.856132 Process 93 bytes request 10:33:46.856219 Got request: GET /verifiedserver HTTP/1.1 10:33:46.856290 Are-we-friendly question received 10:33:46.856516 Wrote request (93 bytes) input to log/8/server.input 10:33:46.856686 Identifying ourselves as friends 10:33:46.857661 Response sent (56 bytes) and written to log/8/server.response 10:33:46.857840 special request received, no persistency 10:33:46.857911 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 39606 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1423 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1423 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1423 test 1424...[HTTP GET -o fname without Content-Disposition (unmet time condition)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1424 ../src/curl -q --trace-ascii log/5/trace1424 --trace-time http://127.0.0.1:41733/1424 -z "dec 12 11:00:00 1999 GMT" -o log/5/outfile1424 > log/5/stdout1424 2> log/5/stderr1424 1424: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1424 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1424 ../src/curl -q --trace-ascii log/5/trace1424 --trace-time http://127.0.0.1:41733/1424 -z "dec 12 11:00:00 1999 GMT" -o log/5/outfile1424 > log/5/stdout1424 2> log/5/stderr1424 === End of file commands.log === Start of file http_server.log 10:33:47.925822 ====> Client connect 10:33:47.926240 accept_connection 3 returned 4 10:33:47.926510 accept_connection 3 returned 0 10:33:47.926662 Read 93 bytes 10:33:47.926761 Process 93 bytes request 10:33:47.926870 Got request: GET /verifiedserver HTTP/1.1 10:33:47.926963 Are-we-friendly question received 10:33:47.927254 Wrote request (93 bytes) input to log/5/server.input 10:33:47.927501 Identifying ourselves as friends 10:33:47.928395 Response sent (56 bytes) and written to log/5/server.response 10:33:47.928561 special request received, no persistency 10:33:47.928635 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 34550 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file outfile1424 original contents === End of file outfile1424 === Start of file server.cmd Testnum 1424 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1424 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1424 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1428 ../src/curl -q --output log/2/curl1428.out --include --trace-ascii log/2/trace1428 --trace-time http://test.1428:43789/we/want/that/page/1428 -p -x 127.0.0.1:38053 --user 'iam:my:;self' --header "header-type: server" --proxy-header "header-type: proxy" > log/2/stdout1428 2> log/2/stderr1428 test 1429...[HTTP GET with 999 response code] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1429 ../src/curl -q --include --trace-ascii log/3/trace1429 --trace-time http://127.0.0.1:36933/1429 --write-out '%{response_code}' > log/3/stdout1429 2> log/3/stderr1429 1429: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:48.382610060 +0000 +++ log/3/check-generated 2025-09-11 10:33:48.378609980 +0000 @@ -1,13 +0,0 @@ -HTTP/1.1 999 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -ETag: "21025-dc7-39462498"[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] --foo-[LF] -999 == Contents of files in the log/3/ dir after test 1429 === Start of file check-expected HTTP/1.1 999 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] ETag: "21025-dc7-39462498"[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] -foo-[LF] 999 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1429 ../src/curl -q --include --trace-ascii log/3/trace1429 --trace-time http://127.0.0.1:36933/1429 --write-out '%{response_code}' > log/3/stdout1429 2> log/3/stderr1429 === End of file commands.log === Start of file http_server.log 10:33:47.255869 ====> Client connect 10:33:47.256295 accept_connection 3 returned 4 10:33:47.256568 accept_connection 3 returned 0 10:33:47.256728 Read 93 bytes 10:33:47.256846 Process 93 bytes request 10:33:47.256954 Got request: GET /verifiedserver HTTP/1.1 10:33:47.257068 Are-we-friendly question received 10:33:47.257492 Wrote request (93 bytes) input to log/3/server.input 10:33:47.257805 Identifying ourselves as friends 10:33:47.258695 Response sent (56 bytes) and written to log/3/server.response 10:33:47.258853 special request received, no persistency 10:33:47.258930 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 50160 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1429 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1429 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1429 test 1428...[HTTP over proxy-tunnel with --proxy-header and --header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1428 ../src/curl -q --output log/2/curl1428.out --include --trace-ascii log/2/trace1428 --trace-time http://test.1428:43789/we/want/that/page/1428 -p -x 127.0.0.1:38053 --user 'iam:my:;self' --header "header-type: server" --proxy-header "header-type: proxy" > log/2/stdout1428 2> log/2/stderr1428 1428: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1428 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1428 ../src/curl -q --output log/2/curl1428.out --include --trace-ascii log/2/trace1428 --trace-time http://test.1428:43789/we/want/that/page/1428 -p -x 127.0.0.1:38053 --user 'iam:my:;self' --header "header-type: server" --proxy-header "header-type: proxy" > log/2/stdout1428 2> log/2/stderr1428 === End of file commands.log === Start of file http2_server.log 10:33:48.402207 ====> Client connect 10:33:48.402635 accept_connection 3 returned 4 10:33:48.402894 accept_connection 3 returned 0 10:33:48.403887 Read 93 bytes 10:33:48.404176 Process 93 bytes request 10:33:48.404313 Got request: GET /verifiedserver HTTP/1.1 10:33:48.404417 Are-we-friendly question received 10:33:48.404918 Wrote request (93 bytes) input to log/2/proxy.input 10:33:48.405437 Identifying ourselves as friends 10:33:48.406369 Response sent (57 bytes) and written to log/2/proxy.response 10:33:48.406597 special request received, no persistency 10:33:48.406691 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:38053... * Established connection to 127.0.0.1 (127.0.0.1 port 38053) from 127.0.0.1 port 58936 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38053 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:38053 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 110927 === End of file http2_verify.out === Start of file http_server.log 10:33:47.204599 ====> Client connect 10:33:47.204945 accept_connection 3 returned 4 10:33:47.205142 accept_connection 3 returned 0 10:33:47.205407 Read 93 bytes 10:33:47.205531 Process 93 bytes request 10:33:47.205638 Got request: GET /verifiedserver HTTP/1.1 10:33:47.205718 Are-we-friendly question received 10:33:47.205992 Wrote request (93 bytes) input to log/2/server.input 10:33:47.206253 Identifying ourselves as friends 10:33:47.207125 Response sent (56 bytes) and written to log/2/server.response 10:33:47.207284 special request received, no persistency 10:33:47.207367 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50828 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 log/7/stdout1430 2> log/7/stderr1430 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1432 ../src/curl -q --output log/6/curl1432.out --include --trace-ascii log/6/trace1432 --trace-time http://127.0.0.1:33363/1432 > log/6/stdout1432 2> log/6/stderr1432 { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 110927 === End of file proxy.response === Start of file server.cmd Testnum 1428 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1428 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1428 test 1432...[HTTP GET with 100-digit response code and survive] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1432 ../src/curl -q --output log/6/curl1432.out --include --trace-ascii log/6/trace1432 --trace-time http://127.0.0.1:33363/1432 > log/6/stdout1432 2> log/6/stderr1432 1432: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1432 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1432 ../src/curl -q --output log/6/curl1432.out --include --trace-ascii log/6/trace1432 --trace-time http://127.0.0.1:33363/1432 > log/6/stdout1432 2> log/6/stderr1432 === End of file commands.log === Start of file http_server.log 10:33:47.788654 ====> Client connect 10:33:47.788992 accept_connection 3 returned 4 10:33:47.789361 accept_connection 3 returned 0 10:33:47.789604 Read 93 bytes 10:33:47.789733 Process 93 bytes request 10:33:47.789840 Got request: GET /verifiedserver HTTP/1.1 10:33:47.789934 Are-we-friendly question received 10:33:47.790301 Wrote request (93 bytes) input to log/6/server.input 10:33:47.790535 Identifying ourselves as friends 10:33:47.791383 Response sent (56 bytes) and written to log/6/server.response 10:33:47.791571 special request received, no persistency 10:33:47.791645 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 55002 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1432 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1432 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1432 test 1430...[HTTP GET with negative response code] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1430 ../src/curl -q --output log/7/curl1430.out --include --trace-ascii log/7/trace1430 --trace-time http://127.0.0.1:40129/1430 > log/7/stdout1430 2> log/7/stderr1430 1430: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1430 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1430 ../src/curl -q --output log/7/curl1430.out --include --trace-ascii log/7/trace1430 --trace-time http://127.0.0.1:40129/1430 > log/7/stdout1430 2> log/7/stderr1430 === End of file commands.log === Start of file http_server.log 10:33:47.733741 ====> Client connect 10:33:47.734167 accept_connection 3 returned 4 10:33:47.734394 accept_connection 3 returned 0 10:33:47.735310 Read 93 bytes 10:33:47.735551 Process 93 bytes request 10:33:47.735684 Got request: GET /verifiedserver HTTP/1.1 10:33:47.735795 Are-we-friendly question received 10:33:47.736146 Wrote request (93 bytes) input to log/7/server.input 10:33:47.736434 Identifying ourselves as friends 10:33:47.737347 Response sent (56 bytes) and written to log/7/server.response 10:33:47.737560 special request received, no persistency 10:33:47.737678 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46308 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1430 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file serverCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1431 ../src/curl -q --output log/4/curl1431.out --include --trace-ascii log/4/trace1431 --trace-time http://127.0.0.1:36757/1431 > log/4/stdout1431 2> log/4/stderr1431 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1433 ../src/curl -q --output log/1/curl1433.out --include --trace-ascii log/1/trace1433 --trace-time http://127.0.0.1:33601/1433 > log/1/stdout1433 2> log/1/stderr1433 .response === Start of file valgrind1430 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1430 test 1431...[HTTP GET with single-digit response code] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1431 ../src/curl -q --output log/4/curl1431.out --include --trace-ascii log/4/trace1431 --trace-time http://127.0.0.1:36757/1431 > log/4/stdout1431 2> log/4/stderr1431 1431: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1431 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1431 ../src/curl -q --output log/4/curl1431.out --include --trace-ascii log/4/trace1431 --trace-time http://127.0.0.1:36757/1431 > log/4/stdout1431 2> log/4/stderr1431 === End of file commands.log === Start of file http_server.log 10:33:48.753844 ====> Client connect 10:33:48.754252 accept_connection 3 returned 4 10:33:48.754518 accept_connection 3 returned 0 10:33:48.754696 Read 93 bytes 10:33:48.754798 Process 93 bytes request 10:33:48.754902 Got request: GET /verifiedserver HTTP/1.1 10:33:48.754996 Are-we-friendly question received 10:33:48.755293 Wrote request (93 bytes) input to log/4/server.input 10:33:48.755513 Identifying ourselves as friends 10:33:48.756445 Response sent (56 bytes) and written to log/4/server.response 10:33:48.756632 special request received, no persistency 10:33:48.756719 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 58682 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1431 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1431 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1431 test 1433...[HTTP GET with 100-digit subversion number in response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1433 ../src/curl -q --output log/1/curl1433.out --include --trace-ascii log/1/trace1433 --trace-time http://127.0.0.1:33601/1433 > log/1/stdout1433 2> log/1/stderr1433 1433: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1433 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1433 ../src/curl -q --output log/1/curl1433.out --include --trace-ascii log/1/trace1433 --trace-time http://127.0.0.1:33601/1433 > log/1/stdout1433 2> log/1/stderr1433 === End of file commands.log === Start of file http_server.log 10:33:48.825110 ====> Client connect 10:33:48.825908 accept_connection 3 returned 4 10:33:48.826131 accept_connection 3 returned 0 10:33:48.826285 Read 93 bytes 10:33:48.826375 Process 93 bytes request 10:33:48.826464 Got request: GET /verifiedserver HTTP/1.1 10:33:48.826533 Are-we-friendly question received 10:33:48.826803 Wrote request (93 bytes) input to log/1/server.input 10:33:48.827059 Identifying ourselves as friends 10:33:48.827895 Response sent (57 bytes) and written to log/1/server.response 10:33:48.828034 special request received, no persistency 10:33:48.828102 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 58192 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1433 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1433 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1434 ../src/curl -q --output log/8/curl1434.out --include --trace-ascii log/8/trace1434 --trace-time http://127.0.0.1:36007/1434 -C 100 > log/8/stdout1434 2> log/8/stderr1434 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1440 ../src/curl -q --include --trace-ascii log/1/trace1440 --trace-time file://localhost//build/curl/src/build-curl/tests/log/1/non-existent-file.txt --write-out '%{' > log/1/stdout1440 2> log/1/stderr1440 st processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1433 test 1434...[HTTP GET resume at exactly the existing file size is fine] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1434 ../src/curl -q --output log/8/curl1434.out --include --trace-ascii log/8/trace1434 --trace-time http://127.0.0.1:36007/1434 -C 100 > log/8/stdout1434 2> log/8/stderr1434 1434: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1434 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1434 ../src/curl -q --output log/8/curl1434.out --include --trace-ascii log/8/trace1434 --trace-time http://127.0.0.1:36007/1434 -C 100 > log/8/stdout1434 2> log/8/stderr1434 === End of file commands.log === Start of file curl1434.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1434.out === Start of file http_server.log 10:33:47.833572 ====> Client connect 10:33:47.833883 accept_connection 3 returned 4 10:33:47.834107 accept_connection 3 returned 0 10:33:47.834273 Read 93 bytes 10:33:47.834377 Process 93 bytes request 10:33:47.834468 Got request: GET /verifiedserver HTTP/1.1 10:33:47.834536 Are-we-friendly question received 10:33:47.834779 Wrote request (93 bytes) input to log/8/server.input 10:33:47.834972 Identifying ourselves as friends 10:33:47.835671 Response sent (56 bytes) and written to log/8/server.response 10:33:47.835803 special request received, no persistency 10:33:47.835868 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 39614 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1434 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1434 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1434 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1437 ../src/curl -q --output log/2/curl1437.out --include --trace-ascii log/2/trace1437 --trace-time http://127.0.0.1:43789/1437 -u testuser:testpass --digest > log/2/stdout1437 2> log/2/stderr1437 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1441 ../src/curl -q --include --trace-ascii log/6/trace1441 --trace-time file://localhost//build/curl/src/build-curl/tests/log/6/non-existent-file.txt --write-out '%' > log/6/stdout1441 2> log/6/stderr1441 test 1440...[Check --write-out with trailing %{] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1440 ../src/curl -q --include --trace-ascii log/1/trace1440 --trace-time file://localhost//build/curl/src/build-curl/tests/log/1/non-existent-file.txt --write-out '%{' > log/1/stdout1440 2> log/1/stderr1440 1440: stdout FAILED: --- log/1/check-expected 2025-09-11 10:33:49.574633788 +0000 +++ log/1/check-generated 2025-09-11 10:33:49.574633788 +0000 @@ -1 +0,0 @@ -%{ == Contents of files in the log/1/ dir after test 1440 === Start of file check-expected %{ === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1440 ../src/curl -q --include --trace-ascii log/1/trace1440 --trace-time file://localhost//build/curl/src/build-curl/tests/log/1/non-existent-file.txt --write-out '%{' > log/1/stdout1440 2> log/1/stderr1440 === End of file commands.log === Start of file server.cmd Testnum 1440 === End of file server.cmd === Start of file valgrind1440 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1440 test 1437...[HTTP with duplicated WWW-Authenticate parameters] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1437 ../src/curl -q --output log/2/curl1437.out --include --trace-ascii log/2/trace1437 --trace-time http://127.0.0.1:43789/1437 -u testuser:testpass --digest > log/2/stdout1437 2> log/2/stderr1437 1437: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1437 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1437 ../src/curl -q --output log/2/curl1437.out --include --trace-ascii log/2/trace1437 --trace-time http://127.0.0.1:43789/1437 -u testuser:testpass --digest > log/2/stdout1437 2> log/2/stderr1437 === End of file commands.log === Start of file http_server.log 10:33:48.487842 ====> Client connect 10:33:48.488160 accept_connection 3 returned 4 10:33:48.488345 accept_connection 3 returned 0 10:33:48.489097 Read 93 bytes 10:33:48.489359 Process 93 bytes request 10:33:48.489453 Got request: GET /verifiedserver HTTP/1.1 10:33:48.489524 Are-we-friendly question received 10:33:48.489784 Wrote request (93 bytes) input to log/2/server.input 10:33:48.490033 Identifying ourselves as friends 10:33:48.490533 Response sent (56 bytes) and written to log/2/server.response 10:33:48.490658 special request received, no persistency 10:33:48.490737 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50834 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1437 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1437 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1437 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1438 ../src/curl -q --include --trace-ascii log/7/trace1438 --trace-time http://127.0.0.1:40129/1438 --write-out '%{scheme}' > log/7/stdout1438 2> log/7/stderr1438 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1439 ../src/curl -q --include --trace-ascii log/4/trace1439 --trace-time http://127.0.0.1:36757/1439 --write-out '%{http_version}' > log/4/stdout1439 2> log/4/stderr1439 test 1441...[Check --write-out with trailing %] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1441 ../src/curl -q --include --trace-ascii log/6/trace1441 --trace-time file://localhost//build/curl/src/build-curl/tests/log/6/non-existent-file.txt --write-out '%' > log/6/stdout1441 2> log/6/stderr1441 1441: stdout FAILED: --- log/6/check-expected 2025-09-11 10:33:49.674635779 +0000 +++ log/6/check-generated 2025-09-11 10:33:49.674635779 +0000 @@ -1 +0,0 @@ -% == Contents of files in the log/6/ dir after test 1441 === Start of file check-expected % === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1441 ../src/curl -q --include --trace-ascii log/6/trace1441 --trace-time file://localhost//build/curl/src/build-curl/tests/log/6/non-existent-file.txt --write-out '%' > log/6/stdout1441 2> log/6/stderr1441 === End of file commands.log === Start of file server.cmd Testnum 1441 === End of file server.cmd === Start of file valgrind1441 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1441 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1442 ../src/curl -q --include --trace-ascii log/8/trace1442 --trace-time file://localhost//build/curl/src/build-curl/tests/log/8/non-existent-file.txt --write-out='\' > log/8/stdout1442 2> log/8/stderr1442 test 1438...[Check if %{scheme} returns HTTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1438 ../src/curl -q --include --trace-ascii log/7/trace1438 --trace-time http://127.0.0.1:40129/1438 --write-out '%{scheme}' > log/7/stdout1438 2> log/7/stderr1438 1438: stdout FAILED: --- log/7/check-expected 2025-09-11 10:33:49.722636734 +0000 +++ log/7/check-generated 2025-09-11 10:33:49.722636734 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -[LF] -testdata[LF] -http == Contents of files in the log/7/ dir after test 1438 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Connection: close[LF] Content-Type: text/plain[LF] [LF] testdata[LF] http === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1438 ../src/curl -q --include --trace-ascii log/7/trace1438 --trace-time http://127.0.0.1:40129/1438 --write-out '%{scheme}' > log/7/stdout1438 2> log/7/stderr1438 === End of file commands.log === Start of file http_server.log 10:33:48.637860 ====> Client connect 10:33:48.638162 accept_connection 3 returned 4 10:33:48.638375 accept_connection 3 returned 0 10:33:48.638538 Read 93 bytes 10:33:48.638622 Process 93 bytes request 10:33:48.638713 Got request: GET /verifiedserver HTTP/1.1 10:33:48.638793 Are-we-friendly question received 10:33:48.639064 Wrote request (93 bytes) input to log/7/server.input 10:33:48.639277 Identifying ourselves as friends 10:33:48.640017 Response sent (56 bytes) and written to log/7/server.response 10:33:48.640182 special request received, no persistency 10:33:48.640245 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46314 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1438 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1438 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1438 test 1439...[Check if %{http_version} returns 1.1] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1439 ../src/curl -q --include --trace-ascii log/4/trace1439 --trace-time http://127.0.0.1:36757/1439 --write-out '%{http_version}' > log/4/stdout1439 2> log/4/stderr1439 1439: stdout FAILED: --- log/4/check-expected 2025-09-11 10:33:49.766637610 +0000 +++ log/4/check-generated 2025-09-11 10:33:49.766637610 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -[LF] -testdata[LF] -1.1 == Contents of files in the log/4/ dir after test 1439 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Connection: close[LF] Content-Type: text/plain[LF] [LF] testdata[LF] 1.1 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1439 ../src/curl -q --include --trace-ascii log/4/trace1439 --trace-time http://127.0.0.1:36757/1439 --write-out '%{http_version}' > log/4/stdout1439 2> log/4/stderr1439 === End of file commands.log === Start of file http_server.log 10:33:49.679447 ====> Client connect 10:33:49.679967 accept_connection 3 returned 4 10:33:49.682817 accept_connection 3 returned 0 10:33:49.683089 Read 93 bytes 10:33:49.683192 Process 93 bytes request 10:33:49.683295 Got request: GET /verifiedserver HTTP/1.1 10:33:49.683374 Are-we-friendly question received 10:33:49.683679 Wrote request (93 bytes) input to log/4/server.input 10:33:49.683884 Identifying ourselves as friends 10:33:49.684585 Response sent (56 bytes) and written to log/4/server.response 10:33:49.684723 special request received, no persistency 10:33:49.684805 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 58698 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1439 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1439 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1439 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1435 ../src/curl -q --output log/5/curl1435.out --include --trace-ascii log/5/trace1435 --trace-time --unix-socket /tmp/curl-http-a0QpAXBs http://server-interpreted.example.com/1435 > log/5/stdout1435 2> log/5/stderr1435 env: ‘python3’: No such file or directory CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1436 ../src/curl -q --include --trace-ascii log/3/trace1436 --trace-time --unix-socket /tmp/curl-http-cLMgxo0G http://one.example.com/14360001 http://two.example.com/14360002 http://one.example.com/14360003 > log/3/stdout1436 2> log/3/stderr1436 test 1442...[Check --write-out with trailing \] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1442 ../src/curl -q --include --trace-ascii log/8/trace1442 --trace-time file://localhost//build/curl/src/build-curl/tests/log/8/non-existent-file.txt --write-out='\' > log/8/stdout1442 2> log/8/stderr1442 1442: stdout FAILED: --- log/8/check-expected 2025-09-11 10:33:49.810638486 +0000 +++ log/8/check-generated 2025-09-11 10:33:49.810638486 +0000 @@ -1 +0,0 @@ -\ == Contents of files in the log/8/ dir after test 1442 === Start of file check-expected \ === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1442 ../src/curl -q --include --trace-ascii log/8/trace1442 --trace-time file://localhost//build/curl/src/build-curl/tests/log/8/non-existent-file.txt --write-out='\' > log/8/stdout1442 2> log/8/stderr1442 === End of file commands.log === Start of file server.cmd Testnum 1442 === End of file server.cmd === Start of file valgrind1442 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1442 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/5/server/http_unix_server.pid" --logfile "log/5/http_unix_server.log" --logdir "log/5" --portfile log/5/server/http_unix_server.port --config log/5/server.cmd --unix-socket '/tmp/curl-http-a0QpAXBs' --srcdir "/build/curl/src/curl/tests" RUN: HTTP-unix server is on PID 150231 port 8999 * pid http-unix => 150231 150231 test 1435...[simple HTTP GET over Unix socket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1435 ../src/curl -q --output log/5/curl1435.out --include --trace-ascii log/5/trace1435 --trace-time --unix-socket /tmp/curl-http-a0QpAXBs http://server-interpreted.example.com/1435 > log/5/stdout1435 2> log/5/stderr1435 1435: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1435 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1435 ../src/curl -q --output log/5/curl1435.out --include --trace-ascii log/5/trace1435 --trace-time --unix-socket /tmp/curl-http-a0QpAXBs http://server-interpreted.example.com/1435 > log/5/stdout1435 2> log/5/stderr1435 === End of file commands.log === Start of file http_unix_server.log 10:33:48.113845 Running HTTP unix version on /tmp/curl-http-a0QpAXBs 10:33:48.114632 Wrote pid 150231 to log/5/server/http_unix_server.pid 10:33:48.115132 Wrote port 8999 to log/5/server/http_unix_server.port === End of file http_unix_server.log === Start of file server.cmd Testnum 1435 === End of file server.cmd === Start of file valgrind1435 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1435 env: ‘python3’: No such file or directory CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1447 ../src/curl -q --output log/8/curl1447.out --include --trace-ascii log/8/trace1447 --trace-time --proxy "http://a:b@/x" http://127.0.0.1:47 > log/8/stdout1447 2> log/8/stderr1447 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1443 ../src/curl -q --trace-ascii log/1/trace1443 --trace-time http://127.0.0.1:33601/1443 -O --remote-time --output-dir log/1 > log/1/stdout1443 2> log/1/stderr1443 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1445 ../src/curl -q --output log/6/curl1445.out --include --trace-ascii log/6/trace1445 --trace-time file://localhost/build/curl/src/build-curl/tests/log/6/test1445.dir/plainfile.txt --remote-time > log/6/stdout1445 2> log/6/stderr1445 CMD (256): /usr/bin/perl -e 'exit((stat("log/1/1443"))[9] != 960898200)' startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/3/server/http_unix_server.pid" --logfile "log/3/http_unix_server.log" --logdir "log/3" --portfile log/3/server/http_unix_server.port --config log/3/server.cmd --unix-socket '/tmp/curl-http-cLMgxo0G' --srcdir "/build/curl/src/curl/tests" RUN: HTTP-unix server is on PID 150376 port 8999 * pid http-unix => 150376 150376 test 1436...[HTTP requests with multiple connections over Unix socket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1436 ../src/curl -q --include --trace-ascii log/3/trace1436 --trace-time --unix-socket /tmp/curl-http-cLMgxo0G http://one.example.com/14360001 http://two.example.com/14360002 http://one.example.com/14360003 > log/3/stdout1436 2> log/3/stderr1436 1436: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:50.330648837 +0000 +++ log/3/check-generated 2025-09-11 10:33:50.330648837 +0000 @@ -1,15 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Mon, 17 Nov 2014 13:42:47 GMT[LF] -Content-Length: 6[LF] -[LF] -First[LF] -HTTP/1.1 200 OK[LF] -Date: Mon, 17 Nov 2014 13:42:48 GMT[LF] -Content-Length: 7[LF] -[LF] -Second[LF] -HTTP/1.1 200 OK[LF] -Date: Mon, 17 Nov 2014 13:42:49 GMT[LF] -Content-Length: 6[LF] -[LF] -Third[LF] == Contents of files in the log/3/ dir after test 1436 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Mon, 17 Nov 2014 13:42:47 GMT[LF] Content-Length: 6[LF] [LF] First[LF] HTTP/1.1 200 OK[LF] Date: Mon, 17 Nov 2014 13:42:48 GMT[LF] Content-Length: 7[LF] [LF] Second[LF] HTTP/1.1 200 OK[LF] Date: Mon, 17 Nov 2014 13:42:49 GMT[LF] Content-Length: 6[LF] [LF] Third[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1436 ../src/curl -q --include --trace-ascii log/3/trace1436 --trace-time --unix-socket /tmp/curl-http-cLMgxo0G http://one.example.com/14360001 http://two.example.com/14360002 http://one.example.com/14360003 > log/3/stdout1436 2> log/3/stderr1436 === End of file commands.log === Start of file http_unix_server.log 10:33:48.448851 Running HTTP unix version on /tmp/curl-http-cLMgxo0G 10:33:48.450085 Wrote pid 150376 to log/3/server/http_unix_server.pid 10:33:48.450539 Wrote port 8999 to log/3/server/http_unix_server.port === End of file http_unix_server.log === Start of file server.cmd Testnum 1436 === End of file server.cmd === Start of file valgrind1436 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1436 test 1447...[Provide illegal proxy name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1447 ../src/curl -q --output log/8/curl1447.out --include --trace-ascii log/8/trace1447 --trace-time --proxy "http://a:b@/x" http://127.0.0.1:47 > log/8/stdout1447 2> log/8/stderr1447 curl returned 1, when expecting 5 1447: exit FAILED == Contents of files in the log/8/ dir after test 1447 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1447 ../src/curl -q --output log/8/curl1447.out --include --trace-ascii log/8/trace1447 --trace-time --proxy "http://a:b@/x" http://127.0.0.1:47 > log/8/stdout1447 2> log/8/stderr1447 === End of file commands.log === Start of file server.cmd Testnum 1447 === End of file server.cmd === Start of file valgrind1447 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1447 test 1443...[HTTP GET with -O and --remote-time] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1443 ../src/curl -q --trace-ascii log/1/trace1443 --trace-time http://127.0.0.1:33601/1443 -O --remote-time --output-dir log/1 > log/1/stdout1443 2> log/1/stderr1443 postcheck /usr/bin/perl -e 'exit((stat("log/1/1443"))[9] != 960898200)' 1443: postcheck FAILED == Contents of files in the log/1/ dir after test 1443 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1443 ../src/curl -q --trace-ascii log/1/trace1443 --trace-time http://127.0.0.1:33601/1443 -O --remote-time --output-dir log/1 > log/1/stdout1443 2> log/1/stderr1443 === End of file commands.log === Start of file http_server.log 10:33:50.458190 ====> Client connect 10:33:50.458541 accept_connection 3 returned 4 10:33:50.458749 accept_connection 3 returned 0 10:33:50.458890 Read 93 bytes 10:33:50.458975 Process 93 bytes request 10:33:50.459069 Got request: GET /verifiedserver HTTP/1.1 10:33:50.459147 Are-we-friendly question received 10:33:50.459408 Wrote request (93 bytes) input to log/1/server.input 10:33:50.459601 Identifying ourselves as friends 10:33:50.460234 Response sent (57 bytes) and written to log/1/server.response 10:33:50.460370 special request received, no persistency 10:33:50.460433 ====> Clienv: ‘python3’: No such file or directory CMD (256): /usr/bin/perl /build/curl/src/curl/tests/libtest/test613.pl postprocess /build/curl/src/build-curl/tests/log/6/test1445.dir && \ /usr/bin/perl -e 'exit((stat("log/6/curl1445.out"))[9] != 946728000)' CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1444 ../src/curl -q --output log/2/curl1444.out --include --trace-ascii log/2/trace1444 --trace-time ftp://127.0.0.1:37959/1444 --remote-time > log/2/stdout1444 2> log/2/stderr1444 CMD (256): /usr/bin/perl -e 'exit((stat("log/2/curl1444.out"))[9] != 1234567890)' ent disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 58194 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1443 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1443 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1443 prechecked /usr/bin/perl /build/curl/src/curl/tests/libtest/test613.pl prepare /build/curl/src/build-curl/tests/log/6/test1445.dir test 1445...[file:// with --remote-time] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1445 ../src/curl -q --output log/6/curl1445.out --include --trace-ascii log/6/trace1445 --trace-time file://localhost/build/curl/src/build-curl/tests/log/6/test1445.dir/plainfile.txt --remote-time > log/6/stdout1445 2> log/6/stderr1445 postcheck /usr/bin/perl /build/curl/src/curl/tests/libtest/test613.pl postprocess /build/curl/src/build-curl/tests/log/6/test1445.dir && \ /usr/bin/perl -e 'exit((stat("log/6/curl1445.out"))[9] != 946728000)' 1445: postcheck FAILED == Contents of files in the log/6/ dir after test 1445 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1445 ../src/curl -q --output log/6/curl1445.out --include --trace-ascii log/6/trace1445 --trace-time file://localhost/build/curl/src/build-curl/tests/log/6/test1445.dir/plainfile.txt --remote-time > log/6/stdout1445 2> log/6/stderr1445 === End of file commands.log === Start of file server.cmd Testnum 1445 === End of file server.cmd === Start of file valgrind1445 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1445 test 1444...[FTP with --remote-time] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1444 ../src/curl -q --output log/2/curl1444.out --include --trace-ascii log/2/trace1444 --trace-time ftp://127.0.0.1:37959/1444 --remote-time > log/2/stdout1444 2> log/2/stderr1444 postcheck /usr/bin/perl -e 'exit((stat("log/2/curl1444.out"))[9] != 1234567890)' 1444: postcheck FAILED == Contents of files in the log/2/ dir after test 1444 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1444 ../src/curl -q --output log/2/curl1444.out --include --trace-ascii log/2/trace1444 --trace-time ftp://127.0.0.1:37959/1444 --remote-time > log/2/stdout1444 2> log/2/stderr1444 === End of file commands.log === Start of file ftp_server.log 10:33:49.806802 ====> Client connect 10:33:49.808065 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:49.811495 < "USER anonymous" 10:33:49.812040 > "331 We are happy you popped in![CR][LF]" 10:33:49.815164 < "PASS ftp@example.com" 10:33:49.815757 > "230 Welcome you silly person[CR][LF]" 10:33:49.818194 < "PWD" 10:33:49.819421 > "257 "/" is current directory[CR][LF]" 10:33:49.822609 < "EPSV" 10:33:49.823063 ====> Passive DATA channel requested by client 10:33:49.823389 DATA sockfilt for passive data channel starting... 10:33:49.840145 DATA sockfilt for passive data channel started (pid 150933) 10:33:49.841824 DATA sockfilt for passive data channel listens on port 40103 10:33:49.842363 > "229 Entering Passive Mode (|||40103|)[LF]" 10:33:49.842668 Client has been notified that DATA conn will be accepted on port 40103 10:33:49.845283 Client connects to port 40103 10:33:49.845819 ====> Client established passive DATA connection on port 40103 10:33:49.846718 < "TYPE I" 10:33:49.847141 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:49.848967 < "SIZE verifiedserver" 10:33:49.849447 > "213 17[CR][LF]" 10:33:49.851208 < "RETR verifiedserver" 10:33:49.851670 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:49.852382 =====> Closing passive DATA connection... 10:33:49.852646 Server disconnects passive DATA connection 10:33:49.854515 Server disconnected passive DATA connection 10:33:49.854982 DATA sockfilt for passive data channel quits (pid 150933) 10:33:49.856979 DATA sockfilt for passive data channel quit (pid 150933) 10:33:49.857365 =====> Closed passive DATA connection 10:33:49.857765 > "226 File transfer complete[CR][LF]" 10:33:49.897781 < "QUIT" 10:33:49.898240 > "221 bye bye baby[CR][LF]" 10:33:49.905788 MAIN sockfilt said DISC 10:33:49.906278 ====> Client disconnected 10:33:49.906869 Awaiting input === End of file ftp_server.log === Start of file ftp_sockcCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1448 ../src/curl -q --include --trace-ascii log/7/trace1448 --trace-time http://åäö.se:40129/1448 --resolve xn--4cab6c.se:40129:127.0.0.1 -L --connect-to 127.0.0.1:40129:127.0.0.1:40129 > log/7/stdout1448 2> log/7/stderr1448 trl.log 10:33:49.473848 ====> Client connect 10:33:49.475753 Received DATA (on stdin) 10:33:49.476009 > 160 bytes data, server => client 10:33:49.476119 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:49.476200 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:49.476270 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:49.477361 < 16 bytes data, client => server 10:33:49.477613 'USER anonymous\r\n' 10:33:49.479767 Received DATA (on stdin) 10:33:49.480019 > 33 bytes data, server => client 10:33:49.480166 '331 We are happy you popped in!\r\n' 10:33:49.481735 < 22 bytes data, client => server 10:33:49.481996 'PASS ftp@example.com\r\n' 10:33:49.483470 Received DATA (on stdin) 10:33:49.483695 > 30 bytes data, server => client 10:33:49.483811 '230 Welcome you silly person\r\n' 10:33:49.484717 < 5 bytes data, client => server 10:33:49.485010 'PWD\r\n' 10:33:49.487113 Received DATA (on stdin) 10:33:49.487336 > 30 bytes data, server => client 10:33:49.487440 '257 "/" is current directory\r\n' 10:33:49.488352 < 6 bytes data, client => server 10:33:49.488635 'EPSV\r\n' 10:33:49.511072 Received DATA (on stdin) 10:33:49.511308 > 38 bytes data, server => client 10:33:49.511419 '229 Entering Passive Mode (|||40103|)\n' 10:33:49.512953 < 8 bytes data, client => server 10:33:49.513240 'TYPE I\r\n' 10:33:49.514854 Received DATA (on stdin) 10:33:49.515031 > 33 bytes data, server => client 10:33:49.515130 '200 I modify TYPE as you wanted\r\n' 10:33:49.516006 < 21 bytes data, client => server 10:33:49.516251 'SIZE verifiedserver\r\n' 10:33:49.517198 Received DATA (on stdin) 10:33:49.517412 > 8 bytes data, server => client 10:33:49.517499 '213 17\r\n' 10:33:49.518259 < 21 bytes data, client => server 10:33:49.518489 'RETR verifiedserver\r\n' 10:33:49.519376 Received DATA (on stdin) 10:33:49.519565 > 29 bytes data, server => client 10:33:49.519666 '150 Binary junk (17 bytes).\r\n' 10:33:49.529255 Received DATA (on stdin) 10:33:49.529504 > 28 bytes data, server => client 10:33:49.529614 '226 File transfer complete\r\n' 10:33:49.564618 < 6 bytes data, client => server 10:33:49.564876 'QUIT\r\n' 10:33:49.565955 Received DATA (on stdin) 10:33:49.566142 > 18 bytes data, server => client 10:33:49.566259 '221 bye bye baby\r\n' 10:33:49.570936 ====> Client disconnect 10:33:49.573998 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:49.505881 Running IPv4 version 10:33:49.506589 Listening on port 40103 10:33:49.507097 Wrote pid 150933 to log/2/server/ftp_sockdata.pid 10:33:49.507323 Received PING (on stdin) 10:33:49.508438 Received PORT (on stdin) 10:33:49.512577 ====> Client connect 10:33:49.520651 Received DATA (on stdin) 10:33:49.520826 > 17 bytes data, server => client 10:33:49.520908 'WE ROOLZ: 79558\r\n' 10:33:49.521627 Received DISC (on stdin) 10:33:49.521932 ====> Client forcibly disconnected 10:33:49.523037 Received QUIT (on stdin) 10:33:49.523243 quits 10:33:49.523750 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1444 === End of file server.cmd === Start of file valgrind1444 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1444 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1449 ../src/curl -q --output log/4/curl1449.out --include --trace-ascii log/4/trace1449 --trace-time ftp://127.0.0.1:42635/1449 -r 36893488147419103232- > log/4/stdout1449 2> log/4/stderr1449 setenv LC_ALL = C.UTF-8 test 1448...[Redirect following to UTF-8 IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1448 ../src/curl -q --include --trace-ascii log/7/trace1448 --trace-time http://åäö.se:40129/1448 --resolve xn--4cab6c.se:40129:127.0.0.1 -L --connect-to 127.0.0.1:40129:127.0.0.1:40129 > log/7/stdout1448 2> log/7/stderr1448 1448: stdout FAILED: --- log/7/check-expected 2025-09-11 10:33:50.810658392 +0000 +++ log/7/check-generated 2025-09-11 10:33:50.810658392 +0000 @@ -1,12 +0,0 @@ -HTTP/1.1 302 OK swsbounce[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Content-Type: text/plain[LF] -Location: http://%c3%a5%c3%a4%c3%b6.se:40129/14480001[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain; charset=us-ascii[LF] -[LF] -OK[LF] == Contents of files in the log/7/ dir after test 1448 === Start of file check-expected HTTP/1.1 302 OK swsbounce[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Content-Type: text/plain[LF] Location: http://%c3%a5%c3%a4%c3%b6.se:40129/14480001[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain; charset=us-ascii[LF] [LF] OK[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1448 ../src/curl -q --include --trace-ascii log/7/trace1448 --trace-time http://åäö.se:40129/1448 --resolve xn--4cab6c.se:40129:127.0.0.1 -L --connect-to 127.0.0.1:40129:127.0.0.1:40129 > log/7/stdout1448 2> log/7/stderr1448 === End of file commands.log === Start of file http_server.log 10:33:49.650624 ====> Client connect 10:33:49.650997 accept_connection 3 returned 4 10:33:49.651217 accept_connection 3 returned 0 10:33:49.651384 Read 93 bytes 10:33:49.651486 Process 93 bytes request 10:33:49.651576 Got request: GET /verifiedserver HTTP/1.1 10:33:49.651650 Are-we-friendly question received 10:33:49.651906 Wrote request (93 bytes) input to log/7/server.input 10:33:49.652122 Identifying ourselves as friends 10:33:49.652854 Response sent (56 bytes) and written to log/7/server.response 10:33:49.652970 special request received, no persistency 10:33:49.653032 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 46322 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1448 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1448 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1448 test 1449...[FTP download range with integer overflow] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1449 ../src/curl -q --output log/4/curl1449.out --include --trace-ascii log/4/trace1449 --trace-time ftp://127.0.0.1:42635/1449 -r 36893488147419103232- > log/4/stdout1449 2> log/4/stderr1449 1449: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1449 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1449 ../src/curl -q --output log/4/curl1449.out --include --trace-ascii log/4/trace1449 --trace-time ftp://127.0.0.1:42635/1449 -r 36893488147419103232- > log/4/stdout1449 2> log/4/stderr1449 === End of file commands.log === Start of file ftp_server.log 10:33:50.055958 ====> Client connect 10:33:50.057216 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:50.062000 < "USER anonymous" 10:33:50.063289 > "331 We are happy you popped in![CR][LF]" 10:33:50.064833 < "PASS ftp@example.com" 10:33:50.065278 > "230 Welcome you silly person[CR][LF]" 10:33:50.067703 < "PWD" 10:33:50.068185 > "257 "/" is current directory[CR][LF]" 10:33:50.074113 < "EPSV" 10:33:50.074538 ====> Passive DATA channel requested by client 10:33:50.074810 DATA sockfilt for passive data channel starting... 10:33:50.087001 DATA sockfilt for passive data channel started (pid 151051) 10:33:50.088303 DATA sockfilt for passive data channel listens on port 34625 10:33:50.088960 > "229 Entering Passive Mode (|||34625|)[LF]" 10:33:50.089296 Client has been notified that DATA conn will be accepted on port 34625 10:33:50.092202 Client connects to port 34625 10:33:50.092720 ====> Client established passive DATA connection on port 34625 10:33:50.094012 < "TYPE I" 10:33:50.094612 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:50.102482 < "SIZE verifiedserver" 10:33:50.103550 > "213 17[CR][LF]" 10:33:50.107404 < "RETR verifiedserver" 10:33:50.108087 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:50.110994 =====> Closing passive DATA connection... 10:33:50.111346 Server disconnects passive DATA connection 10:33:50.112594 Server disconnected passive DATA connection 10:33:50.113045 DATA sockfilt for passive data channel quits (pid 151051) 10:33:50.114980 DATA sockfilt for passive data channel quit (pid 151051) 10:33:50.115390 =====> Closed passive DATA connection 10:33:50.115834 > "226 File transfer complete[CR][LF]" 10:33:50.158554 < "QUIT" 10:33:50.159052 > "221 bye bye baby[CR][LF]" 10:33:50.163129 MAIN sockfilt said DISC 10:33:50.164220 ====> Client disconnected 10:33:50.164946 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:50.723015 ====> Client connect 10:33:50.726832 Received DATA (on stdin) 10:33:50.727169 > 160 bytes data, server => client 10:33:50.727296 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:50.727380 ' \r\n220- / _CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1453 ../src/curl -q --output log/1/curl1453.out --include --trace-ascii log/1/trace1453 --trace-time tftp://127.0.0.1:47/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz > log/1/stdout1453 2> log/1/stderr1453 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1455 ../src/curl -q --output log/6/curl1455.out --include --trace-ascii log/6/trace1455 --trace-time http://127.0.0.1:33363/1455 --haproxy-protocol -H "Testno: 1455" > log/6/stdout1455 2> log/6/stderr1455 _| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:50.727448 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:50.728287 < 16 bytes data, client => server 10:33:50.728491 'USER anonymous\r\n' 10:33:50.730196 Received DATA (on stdin) 10:33:50.730389 > 33 bytes data, server => client 10:33:50.730548 '331 We are happy you popped in!\r\n' 10:33:50.731239 < 22 bytes data, client => server 10:33:50.731439 'PASS ftp@example.com\r\n' 10:33:50.733297 Received DATA (on stdin) 10:33:50.733511 > 30 bytes data, server => client 10:33:50.733631 '230 Welcome you silly person\r\n' 10:33:50.734379 < 5 bytes data, client => server 10:33:50.734561 'PWD\r\n' 10:33:50.736330 Received DATA (on stdin) 10:33:50.736524 > 30 bytes data, server => client 10:33:50.736613 '257 "/" is current directory\r\n' 10:33:50.740142 < 6 bytes data, client => server 10:33:50.740423 'EPSV\r\n' 10:33:50.757628 Received DATA (on stdin) 10:33:50.757866 > 38 bytes data, server => client 10:33:50.757975 '229 Entering Passive Mode (|||34625|)\n' 10:33:50.759493 < 8 bytes data, client => server 10:33:50.759667 'TYPE I\r\n' 10:33:50.762925 Received DATA (on stdin) 10:33:50.763165 > 33 bytes data, server => client 10:33:50.763268 '200 I modify TYPE as you wanted\r\n' 10:33:50.768932 < 21 bytes data, client => server 10:33:50.769244 'SIZE verifiedserver\r\n' 10:33:50.770759 Received DATA (on stdin) 10:33:50.770990 > 8 bytes data, server => client 10:33:50.771710 '213 17\r\n' 10:33:50.773895 < 21 bytes data, client => server 10:33:50.774155 'RETR verifiedserver\r\n' 10:33:50.776619 Received DATA (on stdin) 10:33:50.776746 > 29 bytes data, server => client 10:33:50.776825 '150 Binary junk (17 bytes).\r\n' 10:33:50.783950 Received DATA (on stdin) 10:33:50.784160 > 28 bytes data, server => client 10:33:50.784268 '226 File transfer complete\r\n' 10:33:50.824928 < 6 bytes data, client => server 10:33:50.825280 'QUIT\r\n' 10:33:50.827143 Received DATA (on stdin) 10:33:50.827321 > 18 bytes data, server => client 10:33:50.827412 '221 bye bye baby\r\n' 10:33:50.830400 ====> Client disconnect 10:33:50.831267 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:50.752166 Running IPv4 version 10:33:50.752835 Listening on port 34625 10:33:50.754133 Wrote pid 151051 to log/4/server/ftp_sockdata.pid 10:33:50.754372 Received PING (on stdin) 10:33:50.755247 Received PORT (on stdin) 10:33:50.759101 ====> Client connect 10:33:50.776262 Received DATA (on stdin) 10:33:50.776459 > 17 bytes data, server => client 10:33:50.777650 'WE ROOLZ: 79516\r\n' 10:33:50.779403 Received DISC (on stdin) 10:33:50.779642 ====> Client forcibly disconnected 10:33:50.781165 Received QUIT (on stdin) 10:33:50.781363 quits 10:33:50.781807 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1449 === End of file server.cmd === Start of file valgrind1449 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1449 test 1453...[Too long tftp filename] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1453 ../src/curl -q --output log/1/curl1453.out --include --trace-ascii log/1/trace1453 --trace-time tftp://127.0.0.1:47/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz > log/1/stdout1453 2> log/1/stderr1453 curl returned 1, when expecting 71 1453: exit FAILED == Contents of files in the log/1/ dir after test 1453 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1453 ../src/curl -q --output log/1/curl1453.out --include --trace-ascii log/1/trace1453 --trace-time tftp://127.0.0.1:47/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz > log/1/stdout1453 2> log/1/stderr1453 === End of file commands.log === Start of file server.cmd Testnum 1453 === End of file server.cmd === Start of file valgrind1453 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1453 test 1455...[HTTP GET when PROXY Protocol enabled] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1455 ../src/curl -q --output log/6/curl1455.out --include --trace-ascii log/6/trace1455 --trace-time http://127.0.0.1:33363/1455 --haproxy-protocol -H "TCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1457 ../src/curl -q --include --trace-ascii log/7/trace1457 --trace-time http://127.0.0.1:40129/1457 --silent --write-out 'line1%{stderr}line2%{stdout}line3' > log/7/stdout1457 2> log/7/stderr1457 estno: 1455" > log/6/stdout1455 2> log/6/stderr1455 1455: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1455 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1455 ../src/curl -q --output log/6/curl1455.out --include --trace-ascii log/6/trace1455 --trace-time http://127.0.0.1:33363/1455 --haproxy-protocol -H "Testno: 1455" > log/6/stdout1455 2> log/6/stderr1455 === End of file commands.log === Start of file http_server.log 10:33:50.469930 ====> Client connect 10:33:50.470224 accept_connection 3 returned 4 10:33:50.470394 accept_connection 3 returned 0 10:33:50.470506 Read 93 bytes 10:33:50.470577 Process 93 bytes request 10:33:50.470653 Got request: GET /verifiedserver HTTP/1.1 10:33:50.470711 Are-we-friendly question received 10:33:50.470889 Wrote request (93 bytes) input to log/6/server.input 10:33:50.471023 Identifying ourselves as friends 10:33:50.471577 Response sent (56 bytes) and written to log/6/server.response 10:33:50.471714 special request received, no persistency 10:33:50.471782 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 40070 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1455 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1455 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1455 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1458 ../src/curl -q --output log/4/curl1458.out --include --trace-ascii log/4/trace1458 --trace-time --resolve *:36757:127.0.0.1 http://example.com:36757/1458 > log/4/stdout1458 2> log/4/stderr1458 test 1457...[Check if %{stderr} and %{stdout} switch between stdout and stderr.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1457 ../src/curl -q --include --trace-ascii log/7/trace1457 --trace-time http://127.0.0.1:40129/1457 --silent --write-out 'line1%{stderr}line2%{stdout}line3' > log/7/stdout1457 2> log/7/stderr1457 1457: stdout FAILED: --- log/7/check-expected 2025-09-11 10:33:51.582673760 +0000 +++ log/7/check-generated 2025-09-11 10:33:51.582673760 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -[LF] -testdata[LF] -line1line3 == Contents of files in the log/7/ dir after test 1457 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Connection: close[LF] Content-Type: text/plain[LF] [LF] testdata[LF] line1line3 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1457 ../src/curl -q --include --trace-ascii log/7/trace1457 --trace-time http://127.0.0.1:40129/1457 --silent --write-out 'line1%{stderr}line2%{stdout}line3' > log/7/stdout1457 2> log/7/stderr1457 === End of file commands.log === Start of file http_server.log 10:33:50.638702 ====> Client connect 10:33:50.638971 accept_connection 3 returned 4 10:33:50.639131 accept_connection 3 returned 0 10:33:50.639258 Read 93 bytes 10:33:50.639352 Process 93 bytes request 10:33:50.639439 Got request: GET /verifiedserver HTTP/1.1 10:33:50.639507 Are-we-friendly question received 10:33:50.639697 Wrote request (93 bytes) input to log/7/server.input 10:33:50.639837 Identifying ourselves as friends 10:33:50.640443 Response sent (56 bytes) and written to log/7/server.response 10:33:50.640567 special request received, no persistency 10:33:50.640629 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 45500 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1457 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1457 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1457 test 1458...[HTTP with wildcard --resolve] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1458 ../src/curl -q --output log/4/curl1458.out --include --trace-ascii log/4/trace1458 --trace-time --resolve *:36757:127.0.0.1 http://example.com:36757/1458 > log/4/stdout1458 2> log/4/stderr1458 1458: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1458 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1458 ../src/curl -q --output log/4/curl1458.out --include --trace-ascii log/4/trace1458 --trace-time --resolve *:36757:127.0.0.1 http://example.com:36757/1458 > log/4/stdout1458 2> log/4/stderr1458 === End of file commands.log === Start of file http_server.log 10:33:51.660056 ====> Client connect 10:33:51.660616 accept_connection 3 returned 4 10:33:51.660808 accept_connection 3 returned 0 10:33:51.660928 Read 93 bytes 10:33:51.661002 Process 93 bytes request 10:33:51.661078 Got request: GET /verifiedserver HTTP/1.1 10:33:51.661289 Are-we-friendly question received 10:33:51.661540 Wrote request (93 bytes) input to log/4/server.input 10:33:51.661706 Identifying ourselves as friends 10:33:51.662310 Response sent (56 bytes) and written to log/4/server.response 10:33:51.662465 special request received, no persistency 10:33:51.662544 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 41284 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1458 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1458 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1460 ../src/curl -q --trace-ascii log/1/trace1460 --trace-time http://127.0.0.1:33601/1460 -Ji -O --output-dir log/1 > log/1/stdout1460 2> log/1/stderr1460 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1462 ../src/curl -q --include --trace-ascii log/6/trace1462 --trace-time --help sdfafdsfadsfsd > log/6/stdout1462 2> log/6/stderr1462 86). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1458 test 1460...[HTTP GET with -Ji and Content-Disposition with existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1460 ../src/curl -q --trace-ascii log/1/trace1460 --trace-time http://127.0.0.1:33601/1460 -Ji -O --output-dir log/1 > log/1/stdout1460 2> log/1/stderr1460 curl returned 1, when expecting 23 1460: exit FAILED == Contents of files in the log/1/ dir after test 1460 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1460 ../src/curl -q --trace-ascii log/1/trace1460 --trace-time http://127.0.0.1:33601/1460 -Ji -O --output-dir log/1 > log/1/stdout1460 2> log/1/stderr1460 === End of file commands.log === Start of file http_server.log 10:33:51.957035 ====> Client connect 10:33:51.957423 accept_connection 3 returned 4 10:33:51.957609 accept_connection 3 returned 0 10:33:51.957729 Read 93 bytes 10:33:51.957804 Process 93 bytes request 10:33:51.957897 Got request: GET /verifiedserver HTTP/1.1 10:33:51.957972 Are-we-friendly question received 10:33:51.958212 Wrote request (93 bytes) input to log/1/server.input 10:33:51.958385 Identifying ourselves as friends 10:33:51.959065 Response sent (57 bytes) and written to log/1/server.response 10:33:51.959203 special request received, no persistency 10:33:51.959270 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 36588 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file name1460 initial content === End of file name1460 === Start of file server.cmd Testnum 1460 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1460 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1460 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1463 ../src/curl -q --include --trace-ascii log/7/trace1463 --trace-time --help file > log/7/stdout1463 2> log/7/stderr1463 test 1462...[curl invalid category --help] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1462 ../src/curl -q --include --trace-ascii log/6/trace1462 --trace-time --help sdfafdsfadsfsd > log/6/stdout1462 2> log/6/stderr1462 1462: stdout FAILED: --- log/6/check-expected 2025-09-11 10:33:52.042682917 +0000 +++ log/6/check-generated 2025-09-11 10:33:52.038682837 +0000 @@ -1,27 +0,0 @@ -Unknown category provided, here is a list of all categories:[CR][LF] -[CR][LF] - auth Authentication methods[CR][LF] - connection Manage connections[CR][LF] - curl The command line tool itself[CR][LF] - deprecated Legacy[CR][LF] - dns Names and resolving[CR][LF] - file FILE protocol[CR][LF] - ftp FTP protocol[CR][LF] - global Global options[CR][LF] - http HTTP and HTTPS protocol[CR][LF] - imap IMAP protocol[CR][LF] - ldap LDAP protocol[CR][LF] - output File system output[CR][LF] - pop3 POP3 protocol[CR][LF] - post HTTP POST specific[CR][LF] - proxy Options for proxies[CR][LF] - scp SCP protocol[CR][LF] - sftp SFTP protocol[CR][LF] - smtp SMTP protocol[CR][LF] - ssh SSH protocol[CR][LF] - telnet TELNET protocol[CR][LF] - tftp TFTP protocol[CR][LF] - timeout Timeouts and delays[CR][LF] - tls TLS/SSL related[CR][LF] - upload Upload, sending data[CR][LF] - verbose Tracing, logging etc[CR][LF] == Contents of files in the log/6/ dir after test 1462 === Start of file check-expected Unknown category provided, here is a list of all categories:[CR][LF] [CR][LF] auth Authentication methods[CR][LF] connection Manage connections[CR][LF] curl The command line tool itself[CR][LF] deprecated Legacy[CR][LF] dns Names and resolving[CR][LF] file FILE protocol[CR][LF] ftp FTP protocol[CR][LF] global Global options[CR][LF] http HTTP and HTTPS protocol[CR][LF] imap IMAP protocol[CR][LF] ldap LDAP protocol[CR][LF] output File system output[CR][LF] pop3 POP3 protocol[CR][LF] post HTTP POST specific[CR][LF] proxy Options for proxies[CR][LF] scp SCP protocol[CR][LF] sftp SFTP protocol[CR][LF] smtp SMTP protocol[CR][LF] ssh SSH protocol[CR][LF] telnet TELNET protocol[CR][LF] tftp TFTP protocol[CR][LF] timeout Timeouts and delays[CR][LF] tls TLS/SSL related[CR][LF] upload Upload, sending data[CR][LF] verbose Tracing, logging etc[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1462 ../src/curl -q --include --trace-ascii log/6/trace1462 --trace-time --help sdfafdsfadsfsd > log/6/stdout1462 2> log/6/stderr1462 === End of file commands.log === Start of file server.cmd Testnum 1462 === End of file server.cmd === Start of file valgrind1462 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1462 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1464 ../src/curl -q --include --trace-ascii log/4/trace1464 --trace-time --help fIlE > log/4/stdout1464 2> log/4/stderr1464 test 1463...[curl file category --help] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1463 ../src/curl -q --include --trace-ascii log/7/trace1463 --trace-time --help file > log/7/stdout1463 2> log/7/stderr1463 1463: stdout FAILED: --- log/7/check-expected 2025-09-11 10:33:52.194685943 +0000 +++ log/7/check-generated 2025-09-11 10:33:52.194685943 +0000 @@ -1,5 +0,0 @@ -file: FILE protocol[CR][LF] - --create-file-mode File mode for created files[CR][LF] - -I, --head Show document info only[CR][LF] - -l, --list-only List only mode[CR][LF] - -r, --range Retrieve only the bytes within RANGE[CR][LF] == Contents of files in the log/7/ dir after test 1463 === Start of file check-expected file: FILE protocol[CR][LF] --create-file-mode File mode for created files[CR][LF] -I, --head Show document info only[CR][LF] -l, --list-only List only mode[CR][LF] -r, --range Retrieve only the bytes within RANGE[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1463 ../src/curl -q --include --trace-ascii log/7/trace1463 --trace-time --help file > log/7/stdout1463 2> log/7/stderr1463 === End of file commands.log === Start of file server.cmd Testnum 1463 === End of file server.cmd === Start of file valgrind1463 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1463 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1456 ../src/curl -q --output log/2/curl1456.out --include --trace-ascii log/2/trace1456 --trace-time -g "http://[::1]:33783/1456" --haproxy-protocol > log/2/stdout1456 2> log/2/stderr1456 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1465 ../src/curl -q --output log/1/curl1465.out --include --trace-ascii log/1/trace1465 --trace-time http://127.0.0.1:33601/we/want/1465 --libcurl log/1/test1465.c --data-binary @log/1/1465-upload > log/1/stdout1465 2> log/1/stderr1465 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1466 ../src/curl -q --output log/6/curl1466.out --include --trace-ascii log/6/trace1466 --trace-time http://127.0.0.1:33363/1466 > log/6/stdout1466 2> log/6/stderr1466 test 1464...[curl file category --help with lower/upper mix] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1464 ../src/curl -q --include --trace-ascii log/4/trace1464 --trace-time --help fIlE > log/4/stdout1464 2> log/4/stderr1464 1464: stdout FAILED: --- log/4/check-expected 2025-09-11 10:33:52.250687057 +0000 +++ log/4/check-generated 2025-09-11 10:33:52.250687057 +0000 @@ -1,5 +0,0 @@ -file: FILE protocol[CR][LF] - --create-file-mode File mode for created files[CR][LF] - -I, --head Show document info only[CR][LF] - -l, --list-only List only mode[CR][LF] - -r, --range Retrieve only the bytes within RANGE[CR][LF] == Contents of files in the log/4/ dir after test 1464 === Start of file check-expected file: FILE protocol[CR][LF] --create-file-mode File mode for created files[CR][LF] -I, --head Show document info only[CR][LF] -l, --list-only List only mode[CR][LF] -r, --range Retrieve only the bytes within RANGE[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1464 ../src/curl -q --include --trace-ascii log/4/trace1464 --trace-time --help fIlE > log/4/stdout1464 2> log/4/stderr1464 === End of file commands.log === Start of file server.cmd Testnum 1464 === End of file server.cmd === Start of file valgrind1464 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1464 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/2/server/http_ipv6_server.pid" --logfile "log/2/http_ipv6_server.log" --logdir "log/2" --portfile log/2/server/http_ipv6_server.port --config log/2/server.cmd --ipv6 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP-IPv6 server is on PID 151321 port 33783 * pid http-ipv6 => 151321 151321 test 1456...[HTTP-IPv6 GET with PROXY protocol] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1456 ../src/curl -q --output log/2/curl1456.out --include --trace-ascii log/2/trace1456 --trace-time -g "http://[::1]:33783/1456" --haproxy-protocol > log/2/stdout1456 2> log/2/stderr1456 1456: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1456 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1456 ../src/curl -q --output log/2/curl1456.out --include --trace-ascii log/2/trace1456 --trace-time -g "http://[::1]:33783/1456" --haproxy-protocol > log/2/stdout1456 2> log/2/stderr1456 === End of file commands.log === Start of file http_ipv6_server.log 10:33:50.638110 Running HTTP IPv6 version on port 33783 10:33:50.638771 Wrote pid 151321 to log/2/server/http_ipv6_server.pid 10:33:50.639057 Wrote port 33783 to log/2/server/http_ipv6_server.port === End of file http_ipv6_server.log === Start of file server.cmd Testnum 1456 === End of file server.cmd === Start of file valgrind1456 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1456 test 1466...[HTTP GET with 3-digit response and only digits in reason] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1466 ../src/curl -q --output log/6/curl1466.out --include --trace-ascii log/6/trace1466 --trace-time http://127.0.0.1:33363/1466 > log/6/stdout1466 2> log/6/stderr1466 1466: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1466 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1466 ../src/curl -q --output log/6/curl1466.out --include --trace-ascii log/6/trace1466 --trace-time http://127.0.0.1:33363/1466 > log/6/stdout1466 2> log/6/stderr1466 === End of file commands.log === Start of file http_server.log 10:33:51.873693 ====> Client connect 10:33:51.874104 accept_connection 3 returned 4 10:33:51.874339 accept_connection 3 returned 0 10:33:51.874494 Read 93 bytes 10:33:51.874575 Process 93 bytes request 10:33:51.874661 Got request: GET /verifiedserver HTTP/1.1 10:33:51.874731 Are-we-friendly question received 10:33:51.874952 Wrote request (93 bytes) input to log/6/server.input 10:33:51.875145 Identifying ourselves as friends 10:33:51.875848 Response sent (56 bytes) and written to log/6/server.response 10:33:51.876005 special request received, no persistency 10:33:51.876087 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1469 ../src/curl -q --output log/2/curl1469.out --include --trace-ascii log/2/trace1469 --trace-time "ftp://127.0.0.1:47/1469%/with space/" -T log/2/irrelevant-file > log/2/stdout1469 2> log/2/stderr1469 0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 40076 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1466 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1466 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1466 test 1465...[--libcurl for POST with binary content] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1465 ../src/curl -q --output log/1/curl1465.out --include --trace-ascii log/1/trace1465 --trace-time http://127.0.0.1:33601/we/want/1465 --libcurl log/1/test1465.c --data-binary @log/1/1465-upload > log/1/stdout1465 2> log/1/stderr1465 1465: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1465 === Start of file 1465-upload abcde\"? fghi jklmý === End of file 1465-upload === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1465 ../src/curl -q --output log/1/curl1465.out --include --trace-ascii log/1/trace1465 --trace-time http://127.0.0.1:33601/we/want/1465 --libcurl log/1/test1465.c --data-binary @log/1/1465-upload > log/1/stdout1465 2> log/1/stderr1465 === End of file commands.log === Start of file http_server.log 10:33:52.709870 ====> Client connect 10:33:52.710163 accept_connection 3 returned 4 10:33:52.710324 accept_connection 3 returned 0 10:33:52.711004 Read 93 bytes 10:33:52.711186 Process 93 bytes request 10:33:52.711274 Got request: GET /verifiedserver HTTP/1.1 10:33:52.711337 Are-we-friendly question received 10:33:52.711576 Wrote request (93 bytes) input to log/1/server.input 10:33:52.711750 Identifying ourselves as friends 10:33:52.712215 Response sent (57 bytes) and written to log/1/server.response 10:33:52.712330 special request received, no persistency 10:33:52.712396 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 36600 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1465 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1465 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1465 test 1469...[Space in FTP upload URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1469 ../src/curl -q --output log/2/curl1469.out --include --trace-ascii log/2/trace1469 --trace-time "ftp://127.0.0.1:47/1469%/with space/" -T log/2/irrelevant-file > log/2/stdout1469 2> log/2/stderr1469 curl returned 1, when expecting 3 1469: exit FAILED == Contents of files in the log/2/ dir after test 1469 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1469 ../src/curl -q --output log/2/curl1469.out --include --trace-ascii log/2/trace1469 --trace-time "ftp://127.0.0.1:47/1469%/with space/" -T log/2/irrelevant-file > log/2/stdout1469 2> log/2/stderr1469 === End of file commands.log === Start of file server.cmd Testnum 1469 === End of file server.cmd === Start of file valgrind1469 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) iCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1471 ../src/curl -q --output log/1/curl1471.out --include --trace-ascii log/1/trace1471 --trace-time red.onion > log/1/stdout1471 2> log/1/stderr1471 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1472 ../src/curl -q --output log/6/curl1472.out --include --trace-ascii log/6/trace1472 --trace-time tasty.onion. > log/6/stdout1472 2> log/6/stderr1472 s called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1469 test 1471...[Fail to resolve .onion TLD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1471 ../src/curl -q --output log/1/curl1471.out --include --trace-ascii log/1/trace1471 --trace-time red.onion > log/1/stdout1471 2> log/1/stderr1471 1471: stderr FAILED: --- log/1/check-expected 2025-09-11 10:33:53.374709432 +0000 +++ log/1/check-generated 2025-09-11 10:33:53.374709432 +0000 @@ -1 +0,0 @@ -curl: (6) Not resolving .onion address (RFC 7686)[CR][LF] == Contents of files in the log/1/ dir after test 1471 === Start of file check-expected curl: (6) Not resolving .onion address (RFC 7686)[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1471 ../src/curl -q --output log/1/curl1471.out --include --trace-ascii log/1/trace1471 --trace-time red.onion > log/1/stdout1471 2> log/1/stderr1471 === End of file commands.log === Start of file server.cmd Testnum 1471 === End of file server.cmd === Start of file valgrind1471 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1471 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1473 ../src/curl -q --output log/2/curl1473.out --include --trace-ascii log/2/trace1473 --trace-time http://127.0.0.1:43789/1473 > log/2/stdout1473 2> log/2/stderr1473 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1467 ../src/curl -q --output log/7/curl1467.out --include --trace-ascii log/7/trace1467 --trace-time --socks5 localhost/tmp/curl-socksd-RQfj2jKH http://127.0.0.1:40129/1467 > log/7/stdout1467 2> log/7/stderr1467 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1474 ../src/curl -q --output log/6/curl1474.out --include --trace-ascii log/6/trace1474 --trace-time --proto -all http://127.0.0.1:47/1474 > log/6/stdout1474 2> log/6/stderr1474 test 1472...[Fail to resolve .onion. TLD] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1472 ../src/curl -q --output log/6/curl1472.out --include --trace-ascii log/6/trace1472 --trace-time tasty.onion. > log/6/stdout1472 2> log/6/stderr1472 1472: stderr FAILED: --- log/6/check-expected 2025-09-11 10:33:53.406710069 +0000 +++ log/6/check-generated 2025-09-11 10:33:53.406710069 +0000 @@ -1 +0,0 @@ -curl: (6) Not resolving .onion address (RFC 7686)[CR][LF] == Contents of files in the log/6/ dir after test 1472 === Start of file check-expected curl: (6) Not resolving .onion address (RFC 7686)[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1472 ../src/curl -q --output log/6/curl1472.out --include --trace-ascii log/6/trace1472 --trace-time tasty.onion. > log/6/stdout1472 2> log/6/stderr1472 === End of file commands.log === Start of file server.cmd Testnum 1472 === End of file server.cmd === Start of file valgrind1472 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1472 test 1473...[first HTTP header starts with white space] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1473 ../src/curl -q --output log/2/curl1473.out --include --trace-ascii log/2/trace1473 --trace-time http://127.0.0.1:43789/1473 > log/2/stdout1473 2> log/2/stderr1473 1473: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1473 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1473 ../src/curl -q --output log/2/curl1473.out --include --trace-ascii log/2/trace1473 --trace-time http://127.0.0.1:43789/1473 > log/2/stdout1473 2> log/2/stderr1473 === End of file commands.log === Start of file http_server.log 10:33:52.729001 ====> Client connect 10:33:52.729385 accept_connection 3 returned 4 10:33:52.729563 accept_connection 3 returned 0 10:33:52.729674 Read 93 bytes 10:33:52.729743 Process 93 bytes request 10:33:52.729824 Got request: GET /verifiedserver HTTP/1.1 10:33:52.729891 Are-we-friendly question received 10:33:52.730086 Wrote request (93 bytes) input to log/2/server.input 10:33:52.730237 Identifying ourselves as friends 10:33:52.730811 Response sent (56 bytes) and written to log/2/server.response 10:33:52.730939 special request received, no persistency 10:33:52.730998 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 41080 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1473 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1473 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1473 startnew: ./server/servers socksd --pidfile log/7/server/socks2_server.pid --reqfile log/7/socksd-request.log --logfile log/7/socks2_server.log --unix-socket /tmp/curl-socksd-RQfj2jKH --backend 127.0.0.1 --config log/7/server.cmd RUN: SOCKS2 server is now running PID 151867 * pid socks5unix => 151867 151867 test 1467...[HTTP GET via SOCKS5 proxy via Unix sockets] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1467 ../src/curl -q --output log/7/curl1467.out --include --trace-ascii log/7/trace1467 --trace-time --socks5 localhost/tmp/curl-socksd-RQfj2jKH http://127.0.0.1:40129/1467 > log/7/stdout1467 2> log/7/stderr1467 1467: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1467 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1467 ../src/curl -q --output log/7/curl1467.out --include --trace-ascii log/7/trace1467 --trace-time --socks5 localhost/tmp/curl-socksd-RQfj2jKH http://127.0.0.1:40129/1467 > log/7/stdout1467 2> log/7/stderr1467 === End of file commands.log === Start of file http_server.log 10:33:52.034374 ====> Client connect 10:33:52.034727 accept_connection 3 returned 4 10:33:52.034923 accept_connection 3 returned 0 10:33:52.035123 Read 93 bytes 10:33:52.035248 Process 93 byCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1468 ../src/curl -q --output log/4/curl1468.out --include --trace-ascii log/4/trace1468 --trace-time http://this.is.a.host.name:36757/1468 --proxy socks5h://localhost/tmp/curl-socksd-OIaz2fgN > log/4/stdout1468 2> log/4/stderr1468 tes request 10:33:52.035332 Got request: GET /verifiedserver HTTP/1.1 10:33:52.035402 Are-we-friendly question received 10:33:52.035648 Wrote request (93 bytes) input to log/7/server.input 10:33:52.035891 Identifying ourselves as friends 10:33:52.036731 Response sent (56 bytes) and written to log/7/server.response 10:33:52.036886 special request received, no persistency 10:33:52.036959 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 45510 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1467 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file socks2_server.log 10:33:52.067041 Running unix version 10:33:52.067566 Listening on Unix socket /tmp/curl-socksd-RQfj2jKH 10:33:52.067932 Wrote pid 151867 to log/7/server/socks2_server.pid === End of file socks2_server.log === Start of file valgrind1467 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1467 test 1474...[--proto -all disables all protocols] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1474 ../src/curl -q --output log/6/curl1474.out --include --trace-ascii log/6/trace1474 --trace-time --proto -all http://127.0.0.1:47/1474 > log/6/stdout1474 2> log/6/stderr1474 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/6/ dir after test 1474 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1474 ../src/curl -q --output log/6/curl1474.out --include --trace-ascii log/6/trace1474 --trace-time --proto -all http://127.0.0.1:47/1474 > log/6/stdout1474 2> log/6/stderr1474 === End of file commands.log === Start of file server.cmd Testnum 1474 === End of file server.cmd === Start of file valgrind1474 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1474 startnew: ./server/servers socksd --pidfile log/4/server/socks2_server.pid --reqfile log/4/socksd-request.log --logfile log/4/socks2_server.log --unix-socket /tmp/curl-socksd-OIaz2fgN --backend 127.0.0.1 --config log/4/server.cmd RUN: SOCKS2 server is now running PID 151882 * pid socks5unix => 151882 151882 test 1468...[HTTP GET with host name using SOCKS5h via Unix sockets] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1468 ../src/curl -q --output log/4/curl1468.out --include --trace-ascii log/4/trace1468 --trace-time http://this.is.a.host.name:36757/1468 --proxy socks5h://localhost/tmp/curl-socksd-OIaz2fgN > log/4/stdout1468 2> log/4/stderr1468 1468: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1468 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1468 ../src/curl -q --output log/4/curl1468.out --include --trace-ascii log/4/trace1468 --trace-time http://this.is.a.host.name:36757/1468 --proxy socks5h://localhost/tmp/curl-socksd-OIaz2fgN > log/4/stdout1468 2> log/4/stderr1468 === End of file commands.log === Start of file http_server.log 10:33:53.074445 ====> Client connect 10:33:53CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1477.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/7/stdout1477 2> log/7/stderr1477 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1475 ../src/curl -q --output log/1/curl1475.out --include --trace-ascii log/1/trace1475 --trace-time http://127.0.0.1:33601/1475 -C - -f > log/1/stdout1475 2> log/1/stderr1475 RUN: Process with pid 141633 signalled to die CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1476 ../src/curl -q --output log/2/curl1476.out --include --trace-ascii log/2/trace1476 --trace-time -x http://127.0.0.1:43789/1476 http://curl.co.UK -c log/2/cookies1476.txt > log/2/stdout1476 2> log/2/stderr1476 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -d /build/curl/src/curl/tests/../docs/cmdline-opts -I /build/curl/src/curl/tests/../include listhelp /build/curl/src/curl/tests/../docs/cmdline-opts/*.md > log/6/stdout1478 2> log/6/stderr1478 RUN: Process with pid 141633 gracefully died .074733 accept_connection 3 returned 4 10:33:53.074896 accept_connection 3 returned 0 10:33:53.075006 Read 93 bytes 10:33:53.075080 Process 93 bytes request 10:33:53.075158 Got request: GET /verifiedserver HTTP/1.1 10:33:53.075232 Are-we-friendly question received 10:33:53.075445 Wrote request (93 bytes) input to log/4/server.input 10:33:53.075607 Identifying ourselves as friends 10:33:53.076246 Response sent (56 bytes) and written to log/4/server.response 10:33:53.076371 special request received, no persistency 10:33:53.076435 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 41290 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1468 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file socks2_server.log 10:33:52.103597 Running unix version 10:33:52.104171 Listening on Unix socket /tmp/curl-socksd-OIaz2fgN 10:33:52.104543 Wrote pid 151882 to log/4/server/socks2_server.pid === End of file socks2_server.log === Start of file valgrind1468 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1468 test 1477...[Verify that error codes in headers and libcurl-errors.3 are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1477.pl /build/curl/src/curl/tests/.. /build/curl/src/build-curl/tests/.. > log/7/stdout1477 2> log/7/stderr1477 valgrind SKIPPED s------e--- OK (1391 out of 1725, remaining: 00:47, took 0.145s, duration: 03:17) test 1476...[PSL violating cookie with mixed case domain and cookie domain property] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1476 ../src/curl -q --output log/2/curl1476.out --include --trace-ascii log/2/trace1476 --trace-time -x http://127.0.0.1:43789/1476 http://curl.co.UK -c log/2/cookies1476.txt > log/2/stdout1476 2> log/2/stderr1476 1476: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1476 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1476 ../src/curl -q --output log/2/curl1476.out --include --trace-ascii log/2/trace1476 --trace-time -x http://127.0.0.1:43789/1476 http://curl.co.UK -c log/2/cookies1476.txt > log/2/stdout1476 2> log/2/stderr1476 === End of file commands.log === Start of file http_server.log 10:33:53.411480 ====> Client connect 10:33:53.411794 accept_connection 3 returned 4 10:33:53.411970 accept_connection 3 returned 0 10:33:53.412104 Read 93 bytes 10:33:53.412188 Process 93 bytes request 10:33:53.412275 Got request: GET /verifiedserver HTTP/1.1 10:33:53.412358 Are-we-friendly question received 10:33:53.412620 Wrote request (93 bytes) input to log/2/server.input 10:33:53.412800 Identifying ourselves as friends 10:33:53.413658 Response sent (56 bytes) and written to log/2/server.response 10:33:53.413793 special request received, no persistency 10:33:53.413861 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 41092 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1476 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1476 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1476 test 1478...[src/tool_listhelp.c is in sync with docs/cmdline-opts] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -d /build/curl/src/curl/tests/../docs/cmdline-opts -I /build/curl/src/curl/tests/../include listhelp /build/curl/src/curl/tests/../docs/cmdline-opts/*.md > log/6/stdout1478 2> log/6/stderr1478 valgrind SKIPPED s------e--- OK (1392 out of 1725, remaining: 00:47, took 0.520s, duration: 03:18) test 1475...[-f and 416 with Content-Range: */size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1475 ../src/curl -q --output log/1/curl1475.out --include --trace-ascii log/1/trace1475 --trace-time http://127.0.0.1:33601CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1479 ../src/curl -q --output log/4/curl1479.out --include --trace-ascii log/4/trace1479 --trace-time http://127.0.0.1:36757/1479 http://127.0.0.1:36757/14790002 > log/4/stdout1479 2> log/4/stderr1479 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1480 ../src/curl -q --output log/7/curl1480.out --include --trace-ascii log/7/trace1480 --trace-time http://127.0.0.1:40129/1480 > log/7/stdout1480 2> log/7/stderr1480 /1475 -C - -f > log/1/stdout1475 2> log/1/stderr1475 1475: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1475 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1475 ../src/curl -q --output log/1/curl1475.out --include --trace-ascii log/1/trace1475 --trace-time http://127.0.0.1:33601/1475 -C - -f > log/1/stdout1475 2> log/1/stderr1475 === End of file commands.log === Start of file curl1475.out 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 012345678 === End of file curl1475.out === Start of file http_server.log 10:33:54.285265 ====> Client connect 10:33:54.285612 accept_connection 3 returned 4 10:33:54.285803 accept_connection 3 returned 0 10:33:54.285924 Read 93 bytes 10:33:54.286003 Process 93 bytes request 10:33:54.286077 Got request: GET /verifiedserver HTTP/1.1 10:33:54.286146 Are-we-friendly question received 10:33:54.286362 Wrote request (93 bytes) input to log/1/server.input 10:33:54.286527 Identifying ourselves as friends 10:33:54.287294 Response sent (57 bytes) and written to log/1/server.response 10:33:54.287464 special request received, no persistency 10:33:54.287534 ====> Client disconnect 0 exit_signal_handler: called 10:33:54.984039 signalled to die 10:33:54.984839 ========> IPv4 sws (port 33601 pid: 141633) exits with signal (15) 10:33:54.985136 ========> sws quits === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33601... * Established connection to 127.0.0.1 (127.0.0.1 port 33601) from 127.0.0.1 port 36604 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33601 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33601 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 141633 === End of file http_verify.out === Start of file server.cmd Testnum 1475 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 141633 === End of file server.response === Start of file valgrind1475 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1475 test 1479...[HTTP/1.1 response followed by an HTTP/0.9 response over the same connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1479 ../src/curl -q --output log/4/curl1479.out --include --trace-ascii log/4/trace1479 --trace-time http://127.0.0.1:36757/1479 http://127.0.0.1:36757/14790002 > log/4/stdout1479 2> log/4/stderr1479 1479: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1479 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1479 ../src/curl -q --output log/4/curl1479.out --include --trace-ascii log/4/trace1479 --trace-time http://127.0.0.1:36757/1479 http://127.0.0.1:36757/14790002 > log/4/stdout1479 2> log/4/stderr1479 === End of file commands.log === Start of file http_server.log 10:33:54.869449 ====> Client connect 10:33:54.869743 accept_connection 3 returned 4 10:33:54.869883 accept_connection 3 returned 0 10:33:54.869996 Read 93 bytes 10:33:54.870069 Process 93 bytes request 10:33:54.870147 Got request: GET /verifiedserver HTTP/1.1 10:33:54.870208 Are-we-friendly question received 10:33:54.870393 Wrote request (93 bytes) input to log/4/server.input 10:33:54.870538 Identifying ourselves as friends 10:33:54.871176 Response sent (56 bytes) and written to log/4/server.response 10:33:54.871302 special request received, no persistency 10:33:54.871362 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 41292 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1479 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1479 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1479 test 1480...[HTTP Continue response without final response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1480 ../src/curl -q --output log/7/curl1480.out --include --trace-ascii log/7/trace1480 --trace-time http://12CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1486.pl /build/curl/src/curl/tests > log/5/stdout1486 2> log/5/stderr1486 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1481 ../src/curl -q --output log/2/curl1481.out --include --trace-ascii log/2/trace1481 --trace-time http://moo/ --libcurl log/2/test1481.c --tls-max 1.3 --proxy-tlsv1 -x http://127.0.0.1:43789 > log/2/stdout1481 2> log/2/stderr1481 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1482 ../src/curl -q --output log/6/curl1482.out --include --trace-ascii log/6/trace1482 --trace-time http://127.0.0.1:33363/1482 -D log/6/heads1482 > log/6/stdout1482 2> log/6/stderr1482 7.0.0.1:40129/1480 > log/7/stdout1480 2> log/7/stderr1480 1480: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1480 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1480 ../src/curl -q --output log/7/curl1480.out --include --trace-ascii log/7/trace1480 --trace-time http://127.0.0.1:40129/1480 > log/7/stdout1480 2> log/7/stderr1480 === End of file commands.log === Start of file http_server.log 10:33:53.972352 ====> Client connect 10:33:53.972720 accept_connection 3 returned 4 10:33:53.972948 accept_connection 3 returned 0 10:33:53.973138 Read 93 bytes 10:33:53.973259 Process 93 bytes request 10:33:53.973349 Got request: GET /verifiedserver HTTP/1.1 10:33:53.973424 Are-we-friendly question received 10:33:53.973697 Wrote request (93 bytes) input to log/7/server.input 10:33:53.973922 Identifying ourselves as friends 10:33:53.974736 Response sent (56 bytes) and written to log/7/server.response 10:33:53.974930 special request received, no persistency 10:33:53.975016 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 45522 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1480 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1480 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1480 startnew: /build/curl/src/curl/tests/dictserver.py --port 44293 --pidfile "log/5/server/dict_server.pid" --logfile "log/5/dict_server.log" --srcdir "/build/curl/src/curl/tests" --host 127.0.0.1 startnew: child process has died, server might start up RUN: failed to start the DICT server test 1450 SKIPPED: failed starting DICT server test 1486...[Verify that write-out.md and tool_writeout.c are in sync] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1486.pl /build/curl/src/curl/tests > log/5/stdout1486 2> log/5/stderr1486 valgrind SKIPPED s------e--- OK (1400 out of 1725, remaining: 00:46, took 0.140s, duration: 03:18) test 1481...[--libcurl with TLS version options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1481 ../src/curl -q --output log/2/curl1481.out --include --trace-ascii log/2/trace1481 --trace-time http://moo/ --libcurl log/2/test1481.c --tls-max 1.3 --proxy-tlsv1 -x http://127.0.0.1:43789 > log/2/stdout1481 2> log/2/stderr1481 1481: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1481 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1481 ../src/curl -q --output log/2/curl1481.out --include --trace-ascii log/2/trace1481 --trace-time http://moo/ --libcurl log/2/test1481.c --tls-max 1.3 --proxy-tlsv1 -x http://127.0.0.1:43789 > log/2/stdout1481 2> log/2/stderr1481 === End of file commands.log === Start of file http_server.log 10:33:54.187412 ====> Client connect 10:33:54.187688 accept_connection 3 returned 4 10:33:54.187839 accept_connection 3 returned 0 10:33:54.187947 Read 93 bytes 10:33:54.188015 Process 93 bytes request 10:33:54.188089 Got request: GET /verifiedserver HTTP/1.1 10:33:54.188151 Are-we-friendly question received 10:33:54.188343 Wrote request (93 bytes) input to log/2/server.input 10:33:54.188485 Identifying ourselves as friends 10:33:54.189239 Response sent (56 bytes) and written to log/2/server.response 10:33:54.189364 special request received, no persistency 10:33:54.189428 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 41094 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1481 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1481 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1481 test 1482...[HTTP GET with douCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1484 ../src/curl -q --output log/4/curl1484.out --include --trace-ascii log/4/trace1484 --trace-time -I http://127.0.0.1:36757/1484 --http1.1 > log/4/stdout1484 2> log/4/stderr1484 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1488.pl /build/curl/src/curl/tests/.. ../include/curl /build/curl/src/curl/tests/../docs/VERSIONS.md > log/2/stdout1488 2> log/2/stderr1488 ble chunked in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1482 ../src/curl -q --output log/6/curl1482.out --include --trace-ascii log/6/trace1482 --trace-time http://127.0.0.1:33363/1482 -D log/6/heads1482 > log/6/stdout1482 2> log/6/stderr1482 1482: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1482 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1482 ../src/curl -q --output log/6/curl1482.out --include --trace-ascii log/6/trace1482 --trace-time http://127.0.0.1:33363/1482 -D log/6/heads1482 > log/6/stdout1482 2> log/6/stderr1482 === End of file commands.log === Start of file http_server.log 10:33:54.364540 ====> Client connect 10:33:54.364842 accept_connection 3 returned 4 10:33:54.365030 accept_connection 3 returned 0 10:33:54.365658 Read 93 bytes 10:33:54.365773 Process 93 bytes request 10:33:54.365868 Got request: GET /verifiedserver HTTP/1.1 10:33:54.365940 Are-we-friendly question received 10:33:54.366172 Wrote request (93 bytes) input to log/6/server.input 10:33:54.366350 Identifying ourselves as friends 10:33:54.367063 Response sent (56 bytes) and written to log/6/server.response 10:33:54.367203 special request received, no persistency 10:33:54.367270 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 40080 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1482 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1482 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1482 startnew: /build/curl/src/curl/tests/smbserver.py --port 37595 --pidfile "log/3/server/smb_server.pid" --logfile "log/3/smb_server.log" --srcdir "/build/curl/src/curl/tests" --host 127.0.0.1 startnew: child process has died, server might start up RUN: failed to start the SMB server test 1451 SKIPPED: failed starting SMB server startnew: /build/curl/src/curl/tests/negtelnetserver.py --port 46781 --pidfile "log/8/server/telnet_server.pid" --logfile "log/8/telnet_server.log" --srcdir "/build/curl/src/curl/tests" startnew: child process has died, server might start up RUN: failed to start the TELNET server test 1452 SKIPPED: failed starting neg TELNET server test 1484...[HTTP HEAD with response body to ignore] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1484 ../src/curl -q --output log/4/curl1484.out --include --trace-ascii log/4/trace1484 --trace-time -I http://127.0.0.1:36757/1484 --http1.1 > log/4/stdout1484 2> log/4/stderr1484 1484: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1484 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1484 ../src/curl -q --output log/4/curl1484.out --include --trace-ascii log/4/trace1484 --trace-time -I http://127.0.0.1:36757/1484 --http1.1 > log/4/stdout1484 2> log/4/stderr1484 === End of file commands.log === Start of file http_server.log 10:33:55.640289 ====> Client connect 10:33:55.640596 accept_connection 3 returned 4 10:33:55.640820 accept_connection 3 returned 0 10:33:55.640975 Read 93 bytes 10:33:55.641163 Process 93 bytes request 10:33:55.641270 Got request: GET /verifiedserver HTTP/1.1 10:33:55.641346 Are-we-friendly question received 10:33:55.641624 Wrote request (93 bytes) input to log/4/server.input 10:33:55.641805 Identifying ourselves as friends 10:33:55.642410 Response sent (56 bytes) and written to log/4/server.response 10:33:55.642514 special request received, no persistency 10:33:55.642580 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 41294 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1484 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1484 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if yoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1485 ./libtest/libtests lib1485 http://127.0.0.1:40129/1485 > log/7/stdout1485 2> log/7/stderr1485 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1487 ../src/curl -q --trace-ascii log/5/trace1487 --trace-time http://127.0.0.1:41733/1487 -J -O --output-dir log/5 > log/5/stdout1487 2> log/5/stderr1487 u are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1484 test 1488...[symbols-in-versions and manpages agree on added-in versions] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1488.pl /build/curl/src/curl/tests/.. ../include/curl /build/curl/src/curl/tests/../docs/VERSIONS.md > log/2/stdout1488 2> log/2/stderr1488 valgrind SKIPPED s------e--- OK (1402 out of 1725, remaining: 00:45, took 0.351s, duration: 03:19) test 1485...[get curlinfo on last header in callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1485 ./libtest/libtests lib1485 http://127.0.0.1:40129/1485 > log/7/stdout1485 2> log/7/stderr1485 1485: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1485 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1485 ./libtest/libtests lib1485 http://127.0.0.1:40129/1485 > log/7/stdout1485 2> log/7/stderr1485 === End of file commands.log === Start of file http_server.log 10:33:54.709844 ====> Client connect 10:33:54.710142 accept_connection 3 returned 4 10:33:54.710298 accept_connection 3 returned 0 10:33:54.710413 Read 93 bytes 10:33:54.710495 Process 93 bytes request 10:33:54.710577 Got request: GET /verifiedserver HTTP/1.1 10:33:54.710644 Are-we-friendly question received 10:33:54.710852 Wrote request (93 bytes) input to log/7/server.input 10:33:54.710996 Identifying ourselves as friends 10:33:54.711650 Response sent (56 bytes) and written to log/7/server.response 10:33:54.711792 special request received, no persistency 10:33:54.711863 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 45526 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1485 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1485 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1485 test 1487...[HTTP GET with -J and Content-Disposition on 301] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1487 ../src/curl -q --trace-ascii log/5/trace1487 --trace-time http://127.0.0.1:41733/1487 -J -O --output-dir log/5 > log/5/stdout1487 2> log/5/stderr1487 1487: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1487 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1487 ../src/curl -q --trace-ascii log/5/trace1487 --trace-time http://127.0.0.1:41733/1487 -J -O --output-dir log/5 > log/5/stdout1487 2> log/5/stderr1487 === End of file commands.log === Start of file http_server.log 10:33:55.895783 ====> Client connect 10:33:55.896128 accept_connection 3 returned 4 10:33:55.896302 accept_connection 3 returned 0 10:33:55.896420 Read 93 bytes 10:33:55.896510 Process 93 bytes request 10:33:55.896605 Got request: GET /verifiedserver HTTP/1.1 10:33:55.896679 Are-we-friendly question received 10:33:55.896924 Wrote request (93 bytes) input to log/5/server.input 10:33:55.897390 Identifying ourselves as friends 10:33:55.898294 Response sent (56 bytes) and written to log/5/server.response 10:33:55.898452 special request received, no persistency 10:33:55.898526 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 52836 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1487 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1487 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1490 ../src/curl -q --output log/3/curl1490.out --trace-ascii log/3/trace1490 --trace-time file://localhost/build/curl/src/build-curl/tests/log/3/result1490.txt -T log/3/upload1490.txt > log/3/stdout1490 2> log/3/stderr1490 ile valgrind1487 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1489 ../src/curl -q --output log/6/curl1489.out --trace-ascii log/6/trace1489 --trace-time http://127.0.0.1:33363/1489 -D % -s > log/6/stdout1489 2> log/6/stderr1489 test 1490...["upload" with file:// overwriting existing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1490 ../src/curl -q --output log/3/curl1490.out --trace-ascii log/3/trace1490 --trace-time file://localhost/build/curl/src/build-curl/tests/log/3/result1490.txt -T log/3/upload1490.txt > log/3/stdout1490 2> log/3/stderr1490 1490: output (log/3/result1490.txt) FAILED: --- log/3/check-expected 2025-09-11 10:33:56.150764692 +0000 +++ log/3/check-generated 2025-09-11 10:33:56.150764692 +0000 @@ -1,5 +1 @@ -data[LF] -in[LF] -file[LF] -to[LF] -write[LF] +already existing[LF] == Contents of files in the log/3/ dir after test 1490 === Start of file check-expected data[LF] in[LF] file[LF] to[LF] write[LF] === End of file check-expected === Start of file check-generated already existing[LF] === End of file check-generated === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1490 ../src/curl -q --output log/3/curl1490.out --trace-ascii log/3/trace1490 --trace-time file://localhost/build/curl/src/build-curl/tests/log/3/result1490.txt -T log/3/upload1490.txt > log/3/stdout1490 2> log/3/stderr1490 === End of file commands.log === Start of file result1490.txt already existing === End of file result1490.txt === Start of file server.cmd Testnum 1490 === End of file server.cmd === Start of file upload1490.txt data in file to write === End of file upload1490.txt === Start of file valgrind1490 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1490 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1491 ../src/curl -q --include --trace-ascii log/8/trace1491 --trace-time file://localhost/build/curl/src/build-curl/tests/log/8/test1491.txt -o log/8/test1491.txt --skip-existing > log/8/stdout1491 2> log/8/stderr1491 test 1489...[-D sent to stderr] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1489 ../src/curl -q --output log/6/curl1489.out --trace-ascii log/6/trace1489 --trace-time http://127.0.0.1:33363/1489 -D % -s > log/6/stdout1489 2> log/6/stderr1489 1489: stderr FAILED: --- log/6/check-expected 2025-09-11 10:33:56.338768434 +0000 +++ log/6/check-generated 2025-09-11 10:33:56.334768354 +0000 @@ -1,11 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -ETag: "21025-dc7-39462498"[CR][LF] -Accept-Ranges: bytes[CR][LF] -Content-Length: 6[CR][LF] -Connection: close[CR][LF] -Content-Type: text/html[CR][LF] -Funny-head: yesyes[CR][LF] -[CR][LF] == Contents of files in the log/6/ dir after test 1489 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] ETag: "21025-dc7-39462498"[CR][LF] Accept-Ranges: bytes[CR][LF] Content-Length: 6[CR][LF] Connection: close[CR][LF] Content-Type: text/html[CR][LF] Funny-head: yesyes[CR][LF] [CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1489 ../src/curl -q --output log/6/curl1489.out --trace-ascii log/6/trace1489 --trace-time http://127.0.0.1:33363/1489 -D % -s > log/6/stdout1489 2> log/6/stderr1489 === End of file commands.log === Start of file http_server.log 10:33:55.190433 ====> Client connect 10:33:55.190734 accept_connection 3 returned 4 10:33:55.190916 accept_connection 3 returned 0 10:33:55.191060 Read 93 bytes 10:33:55.191139 Process 93 bytes request 10:33:55.191222 Got request: GET /verifiedserver HTTP/1.1 10:33:55.191291 Are-we-friendly question received 10:33:55.191509 Wrote request (93 bytes) input to log/6/server.input 10:33:55.191706 Identifying ourselves as friends 10:33:55.192425 Response sent (56 bytes) and written to log/6/server.response 10:33:55.192548 special request received, no persistency 10:33:55.192613 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 40082 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1489 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1489 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1489 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1483 ../src/curl -q --output log/1/curl1483.out --include --trace-ascii log/1/trace1483 --trace-time http://127.0.0.1:42781/1483 -D log/1/heads1483 > log/1/stdout1483 2> log/1/stderr1483 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1492 ../src/curl -q --trace-ascii log/4/trace1492 --trace-time http://127.0.0.1:36757/junk1492 -J -O --show-headers --output-dir log/4 > log/4/stdout1492 2> log/4/stderr1492 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1493 ../src/curl -q --output log/2/curl1493.out --include --trace-ascii log/2/trace1493 --trace-time http://127.0.0.1:43789/1493 -D log/2/heads1493 > log/2/stdout1493 2> log/2/stderr1493 test 1491...[file:// don't overwrite self with --skip-existing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1491 ../src/curl -q --include --trace-ascii log/8/trace1491 --trace-time file://localhost/build/curl/src/build-curl/tests/log/8/test1491.txt -o log/8/test1491.txt --skip-existing > log/8/stdout1491 2> log/8/stderr1491 1491: stderr FAILED: --- log/8/check-expected 2025-09-11 10:33:56.406769788 +0000 +++ log/8/check-generated 2025-09-11 10:33:56.402769708 +0000 @@ -1 +0,0 @@ -Note: skips transfer, "log/8/test1491.txt" exists locally[CR][LF] == Contents of files in the log/8/ dir after test 1491 === Start of file check-expected Note: skips transfer, "log/8/test1491.txt" exists locally[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1491 ../src/curl -q --include --trace-ascii log/8/trace1491 --trace-time file://localhost/build/curl/src/build-curl/tests/log/8/test1491.txt -o log/8/test1491.txt --skip-existing > log/8/stdout1491 2> log/8/stderr1491 === End of file commands.log === Start of file server.cmd Testnum 1491 === End of file server.cmd === Start of file test1491.txt foo bar bar foo moo === End of file test1491.txt === Start of file valgrind1491 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1491 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/1/server/http_server.pid" --logfile "log/1/http_server.log" --logdir "log/1" --portfile log/1/server/http_server.port --config log/1/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 152547 port 42781 * pid http => 152547 152547 test 1483...[HTTP GET with double chunked in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1483 ../src/curl -q --output log/1/curl1483.out --include --trace-ascii log/1/trace1483 --trace-time http://127.0.0.1:42781/1483 -D log/1/heads1483 > log/1/stdout1483 2> log/1/stderr1483 1483: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1483 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1483 ../src/curl -q --output log/1/curl1483.out --include --trace-ascii log/1/trace1483 --trace-time http://127.0.0.1:42781/1483 -D log/1/heads1483 > log/1/stdout1483 2> log/1/stderr1483 === End of file commands.log === Start of file http_server.log 10:33:54.488716 Running HTTP IPv4 version on port 42781 10:33:54.489661 Wrote pid 152547 to log/1/server/http_server.pid 10:33:54.490125 Wrote port 42781 to log/1/server/http_server.port === End of file http_server.log === Start of file server.cmd writedelay: 10 Testnum 1483 === End of file server.cmd === Start of file valgrind1483 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1483 test 1492...[HTTP GET with -J + --show-headers but no Content-Disposition:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1492 ../src/curl -q --trace-ascii log/4/trace1492 --trace-time http://127.0.0.1:36757/junk1492 -J -O --show-headers --output-dir log/4 > log/4/stdout1492 2> log/4/stderr1492 1492: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1492 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1492 ../src/curl -q --trace-ascii log/4/trace1492 --trace-time http://127.0.0.1:36757/junk1492 -J -O --show-headers --output-dir log/4 > log/4/stdout1492 2> log/4/stderr1492 === End of file commands.log === Start of file http_server.log 10:33:56.469782 ====> Client connect 10:33:56.470165 accept_connection 3 returned 4 10:33:56.470389 accept_connection 3 returned 0 10:33:56.470570 Read 93 bytes 10:33:56.470692 Process 93 bytes request 10:33:56.470800 Got request: GET /verifiedserver HTTP/1.1 10:33:56.470915 Are-we-friendly question received 10:33:56.471208 Wrote request (93 bytes) input to log/4/server.input 10:33:56.471426 Identifying ourselves as friends 10:33:56.472274 Response sent (56 bytes) and written to log/4/server.response 10:33:56.472413 special request received, no persistency 10:33:56.472476 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 41308 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request coCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1494 ../src/curl -q --output log/7/curl1494.out --include --trace-ascii log/7/trace1494 --trace-time http://127.0.0.1:40129/1494 -D log/7/heads1494 > log/7/stdout1494 2> log/7/stderr1494 mpletely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1492 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1492 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1492 test 1493...[HTTP GET with identity + chunked in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1493 ../src/curl -q --output log/2/curl1493.out --include --trace-ascii log/2/trace1493 --trace-time http://127.0.0.1:43789/1493 -D log/2/heads1493 > log/2/stdout1493 2> log/2/stderr1493 1493: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1493 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1493 ../src/curl -q --output log/2/curl1493.out --include --trace-ascii log/2/trace1493 --trace-time http://127.0.0.1:43789/1493 -D log/2/heads1493 > log/2/stdout1493 2> log/2/stderr1493 === End of file commands.log === Start of file http_server.log 10:33:55.504334 ====> Client connect 10:33:55.504784 accept_connection 3 returned 4 10:33:55.505160 accept_connection 3 returned 0 10:33:55.506724 Read 93 bytes 10:33:55.506929 Process 93 bytes request 10:33:55.507057 Got request: GET /verifiedserver HTTP/1.1 10:33:55.507183 Are-we-friendly question received 10:33:55.507450 Wrote request (93 bytes) input to log/2/server.input 10:33:55.507725 Identifying ourselves as friends 10:33:55.508795 Response sent (56 bytes) and written to log/2/server.response 10:33:55.509017 special request received, no persistency 10:33:55.509226 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 41104 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1493 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1493 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1493 test 1494...[HTTP GET with identity twice in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1494 ../src/curl -q --output log/7/curl1494.out --include --trace-ascii log/7/trace1494 --trace-time http://127.0.0.1:40129/1494 -D log/7/heads1494 > log/7/stdout1494 2> log/7/stderr1494 1494: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1494 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1494 ../src/curl -q --output log/7/curl1494.out --include --trace-ascii log/7/trace1494 --trace-time http://127.0.0.1:40129/1494 -D log/7/heads1494 > log/7/stdout1494 2> log/7/stderr1494 === End of file commands.log === Start of file http_server.log 10:33:55.554647 ====> Client connect 10:33:55.554972 accept_connection 3 returned 4 10:33:55.555151 accept_connection 3 returned 0 10:33:55.555274 Read 93 bytes 10:33:55.555355 Process 93 bytes request 10:33:55.555437 Got request: GET /verifiedserver HTTP/1.1 10:33:55.555498 Are-we-friendly question received 10:33:55.555705 Wrote request (93 bytes) input to log/7/server.input 10:33:55.555910 Identifying ourselves as friends 10:33:55.556745 Response sent (56 bytes) and written to log/7/server.response 10:33:55.556925 special request received, no persistency 10:33:55.556998 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 45536 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1494 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1495 ../src/curl -q --output log/5/curl1495.out --include --trace-ascii log/5/trace1495 --trace-time http://127.0.0.1:41733/1495 -D log/5/heads1495 > log/5/stdout1495 2> log/5/stderr1495 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1496 ../src/curl -q --output log/3/curl1496.out --include --trace-ascii log/3/trace1496 --trace-time http://127.0.0.1:36933/1496 -D log/3/heads1496 > log/3/stdout1496 2> log/3/stderr1496 Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1494 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1494 test 1495...[HTTP GET with chunked + identity in TE header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1495 ../src/curl -q --output log/5/curl1495.out --include --trace-ascii log/5/trace1495 --trace-time http://127.0.0.1:41733/1495 -D log/5/heads1495 > log/5/stdout1495 2> log/5/stderr1495 1495: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1495 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1495 ../src/curl -q --output log/5/curl1495.out --include --trace-ascii log/5/trace1495 --trace-time http://127.0.0.1:41733/1495 -D log/5/heads1495 > log/5/stdout1495 2> log/5/stderr1495 === End of file commands.log === Start of file http_server.log 10:33:56.774024 ====> Client connect 10:33:56.774347 accept_connection 3 returned 4 10:33:56.774564 accept_connection 3 returned 0 10:33:56.775487 Read 93 bytes 10:33:56.775744 Process 93 bytes request 10:33:56.775869 Got request: GET /verifiedserver HTTP/1.1 10:33:56.775960 Are-we-friendly question received 10:33:56.776258 Wrote request (93 bytes) input to log/5/server.input 10:33:56.776474 Identifying ourselves as friends 10:33:56.777191 Response sent (56 bytes) and written to log/5/server.response 10:33:56.777352 special request received, no persistency 10:33:56.777426 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 52846 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1495 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1495 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1495 test 1496...[HTTP GET with gzip + chunked transfer-encoding without being asked] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1496 ../src/curl -q --output log/3/curl1496.out --include --trace-ascii log/3/trace1496 --trace-time http://127.0.0.1:36933/1496 -D log/3/heads1496 > log/3/stdout1496 2> log/3/stderr1496 1496: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1496 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1496 ../src/curl -q --output log/3/curl1496.out --include --trace-ascii log/3/trace1496 --trace-time http://127.0.0.1:36933/1496 -D log/3/heads1496 > log/3/stdout1496 2> log/3/stderr1496 === End of file commands.log === Start of file http_server.log 10:33:56.027154 ====> Client connect 10:33:56.027570 accept_connection 3 returned 4 10:33:56.027785 accept_connection 3 returned 0 10:33:56.028036 Read 93 bytes 10:33:56.028160 Process 93 bytes request 10:33:56.028269 Got request: GET /verifiedserver HTTP/1.1 10:33:56.028352 Are-we-friendly question received 10:33:56.028632 Wrote request (93 bytes) input to log/3/server.input 10:33:56.028856 Identifying ourselves as friends 10:33:56.029790 Response sent (56 bytes) and written to log/3/server.response 10:33:56.029927 special request received, no persistency 10:33:56.029995 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 48932 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1496 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1496 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1497 ../src/curl -q --output log/6/curl1497.out --include --trace-ascii log/6/trace1497 --trace-time http://127.0.0.1:33363/1497 --retry 3 -o /dev/null > log/6/stdout1497 2> log/6/stderr1497 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1498 ../src/curl -q --output log/8/curl1498.out --include --trace-ascii log/8/trace1498 --trace-time http://127.0.0.1:36007/bzz/1498 -T . log/8/stdout1498 2> log/8/stderr1498 cmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1496 test 1497...[HTTP GET --retry on 503 error with output to /dev/null] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1497 ../src/curl -q --output log/6/curl1497.out --include --trace-ascii log/6/trace1497 --trace-time http://127.0.0.1:33363/1497 --retry 3 -o /dev/null > log/6/stdout1497 2> log/6/stderr1497 1497: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1497 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1497 ../src/curl -q --output log/6/curl1497.out --include --trace-ascii log/6/trace1497 --trace-time http://127.0.0.1:33363/1497 --retry 3 -o /dev/null > log/6/stdout1497 2> log/6/stderr1497 === End of file commands.log === Start of file http_server.log 10:33:56.224097 ====> Client connect 10:33:56.224500 accept_connection 3 returned 4 10:33:56.224722 accept_connection 3 returned 0 10:33:56.224879 Read 93 bytes 10:33:56.224983 Process 93 bytes request 10:33:56.225230 Got request: GET /verifiedserver HTTP/1.1 10:33:56.225347 Are-we-friendly question received 10:33:56.225638 Wrote request (93 bytes) input to log/6/server.input 10:33:56.225887 Identifying ourselves as friends 10:33:56.226894 Response sent (56 bytes) and written to log/6/server.response 10:33:56.227080 special request received, no persistency 10:33:56.227153 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 40092 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1497 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1497 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1497 test 1498...[HTTP PUT from stdin using period] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1498 ../src/curl -q --output log/8/curl1498.out --include --trace-ascii log/8/trace1498 --trace-time http://127.0.0.1:36007/bzz/1498 -T . log/8/stdout1498 2> log/8/stderr1498 1498: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1498 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1498 ../src/curl -q --output log/8/curl1498.out --include --trace-ascii log/8/trace1498 --trace-time http://127.0.0.1:36007/bzz/1498 -T . log/8/stdout1498 2> log/8/stderr1498 === End of file commands.log === Start of file http_server.log 10:33:56.335049 ====> Client connect 10:33:56.335369 accept_connection 3 returned 4 10:33:56.335576 accept_connection 3 returned 0 10:33:56.335730 Read 93 bytes 10:33:56.335824 Process 93 bytes request 10:33:56.335916 Got request: GET /verifiedserver HTTP/1.1 10:33:56.335983 Are-we-friendly question received 10:33:56.336198 Wrote request (93 bytes) input to log/8/server.input 10:33:56.336396 Identifying ourselves as friends 10:33:56.341963 Response sent (56 bytes) and written to log/8/server.response 10:33:56.342185 special request received, no persistency 10:33:56.342291 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 36652 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1498 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file stdin-for-1498 hejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejheCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1500 ./libtest/libtests lib1500 http://127.0.0.1:36757/1500 > log/4/stdout1500 2> log/4/stderr1500 jhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhejhej === End of file stdin-for-1498 === Start of file valgrind1498 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1498 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1499 ../src/curl -q --output log/1/curl1499.out --include --trace-ascii log/1/trace1499 --trace-time http://127.0.0.1:42781/1499 http://127.0.0.1:42781/1499 -D log/1/heads1499 > log/1/stdout1499 2> log/1/stderr1499 test 1500...[curl_multi_wait] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1500 ./libtest/libtests lib1500 http://127.0.0.1:36757/1500 > log/4/stdout1500 2> log/4/stderr1500 1500: data FAILED: --- log/4/check-expected 2025-09-11 10:33:57.558792720 +0000 +++ log/4/check-generated 2025-09-11 10:33:57.558792720 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 all good![CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Content-Type: text/html[CR][LF] -Content-Length: 12[CR][LF] -Connection: close[CR][LF] -[CR][LF] -Hello World[LF] == Contents of files in the log/4/ dir after test 1500 === Start of file check-expected HTTP/1.1 200 all good![CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Content-Type: text/html[CR][LF] Content-Length: 12[CR][LF] Connection: close[CR][LF] [CR][LF] Hello World[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1500 ./libtest/libtests lib1500 http://127.0.0.1:36757/1500 > log/4/stdout1500 2> log/4/stderr1500 === End of file commands.log === Start of file http_server.log 10:33:57.485380 ====> Client connect 10:33:57.485874 accept_connection 3 returned 4 10:33:57.486180 accept_connection 3 returned 0 10:33:57.486378 Read 93 bytes 10:33:57.486505 Process 93 bytes request 10:33:57.486628 Got request: GET /verifiedserver HTTP/1.1 10:33:57.486721 Are-we-friendly question received 10:33:57.487050 Wrote request (93 bytes) input to log/4/server.input 10:33:57.487348 Identifying ourselves as friends 10:33:57.488469 Response sent (56 bytes) and written to log/4/server.response 10:33:57.488714 special request received, no persistency 10:33:57.488803 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 41318 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1500 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1500 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1500 test 1499...[HTTP chunked encoding and chunked trailer, twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1499 ../src/curl -q --output log/1/curl1499.out --include --trace-ascii log/1/trace1499 --trace-time http://127.0.0.1:42781/1499 http://127.0.0.1:42781/1499 -D log/1/heads1499 > log/1/stdout1499 2> log/1/stderr1499 1499: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1499 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1499 ../src/curl -q --output log/1/curl1499.out --include --trace-ascii log/1/trace1499 --trace-time http://127.0.0.1:42781/1499 http://127.0.0.1:42781/1499 -D log/1/heads1499 > log/1/stdout1499 2> log/1/stderr1499 === End of file commands.log === Start of file http_server.log 10:33:56.393768 ====> Client connect 10:33:56.394115 accept_connection 3 returned 4 10:33:56.394308 accept_connection 3 returned 0 10:33:56.395447 Read 93 bytes 10:33:56.395624 Process 93 bytes request 10:33:56.395711 Got request: GET /verifiedserver HTTP/1.1 10:33:56.395783 Are-we-friendly question received 10:33:56.396051 Wrote request (93 bytes) input to log/1/server.input 10:33:56.396282 Identifying ourselves as friends 10:33:56.397987 Response sent (57 bytes) and written to log/1/server.response 10:33:56.398144 special request received, no persistency 10:33:56.398409 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 43864 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1499 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1499 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. SoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1502 ./libtest/libtests lib1502 http://google.com:40129/1502 40129 127.0.0.1 > log/7/stdout1502 2> log/7/stderr1502 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1501 ./libtest/libtests lib1501 ftp://127.0.0.1:37959/1501/ > log/2/stdout1501 2> log/2/stderr1501 * kill pid for ftp-ctrl => 79600 RUN: Process with pid 79558 signalled to die RUN: Process with pid 79558 gracefully died rry. === End of file valgrind1499 test 1502...[HTTP multi with CURLOPT_RESOLVE, cleanup sequence UA] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1502 ./libtest/libtests lib1502 http://google.com:40129/1502 40129 127.0.0.1 > log/7/stdout1502 2> log/7/stderr1502 1502: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1502 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1502 ./libtest/libtests lib1502 http://google.com:40129/1502 40129 127.0.0.1 > log/7/stdout1502 2> log/7/stderr1502 === End of file commands.log === Start of file http_server.log 10:33:56.545154 ====> Client connect 10:33:56.545544 accept_connection 3 returned 4 10:33:56.545799 accept_connection 3 returned 0 10:33:56.545946 Read 93 bytes 10:33:56.546040 Process 93 bytes request 10:33:56.546130 Got request: GET /verifiedserver HTTP/1.1 10:33:56.546211 Are-we-friendly question received 10:33:56.546483 Wrote request (93 bytes) input to log/7/server.input 10:33:56.546687 Identifying ourselves as friends 10:33:56.547415 Response sent (56 bytes) and written to log/7/server.response 10:33:56.547581 special request received, no persistency 10:33:56.547655 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 45546 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1502 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1502 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1502 test 1501...[FTP with multi interface and slow LIST response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1501 ./libtest/libtests lib1501 ftp://127.0.0.1:37959/1501/ > log/2/stdout1501 2> log/2/stderr1501 1501: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1501 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1501 ./libtest/libtests lib1501 ftp://127.0.0.1:37959/1501/ > log/2/stdout1501 2> log/2/stderr1501 === End of file commands.log === Start of file ftp_server.log 10:33:56.857634 ====> Client connect 10:33:56.858951 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:56.870596 < "USER anonymous" 10:33:56.871178 > "331 We are happy you popped in![CR][LF]" 10:33:56.874701 < "PASS ftp@example.com" 10:33:56.875267 > "230 Welcome you silly person[CR][LF]" 10:33:56.883673 < "PWD" 10:33:56.884274 > "257 "/" is current directory[CR][LF]" 10:33:56.887978 < "EPSV" 10:33:56.888363 ====> Passive DATA channel requested by client 10:33:56.888599 DATA sockfilt for passive data channel starting... 10:33:56.901227 DATA sockfilt for passive data channel started (pid 153512) 10:33:56.903209 DATA sockfilt for passive data channel listens on port 44915 10:33:56.903822 > "229 Entering Passive Mode (|||44915|)[LF]" 10:33:56.904193 Client has been notified that DATA conn will be accepted on port 44915 10:33:56.906931 Client connects to port 44915 10:33:56.907352 ====> Client established passive DATA connection on port 44915 10:33:56.908393 < "TYPE I" 10:33:56.908888 > "200 I modify TYPE as you wanted[CR][LF]" 10:33:56.912986 < "SIZE verifiedserver" 10:33:56.913686 > "213 17[CR][LF]" 10:33:56.918831 < "RETR verifiedserver" 10:33:56.919373 > "150 Binary junk (17 bytes).[CR][LF]" 10:33:56.922424 =====> Closing passive DATA connection... 10:33:56.922883 Server disconnects passive DATA connection 10:33:56.924151 Server disconnected passive DATA connection 10:33:56.924650 DATA sockfilt for passive data channel quits (pid 153512) 10:33:56.928004 DATA sockfilt for passive data channel quit (pid 153512) 10:33:56.928447 =====> Closed passive DATA connection 10:33:56.928841 > "226 File transfer complete[CR][LF]" 10:33:56.964171 < "QUIT" 10:33:56.964672 > "221 bye bye baby[CR][LF]" 10:33:56.972106 MAIN sockfilt said DISC 10:33:56.972591 ====> Client disconnected 10:33:56.973202 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:33:56.523044 ====> Client connect 10:33:56.526525 Received DATA (on stdin) 10:33:56.526779 > 160 bytes data, server => client 10:33:56.526928 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:56.527040 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:56.527123 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:56.531908 < 16 bytes data, client => server 10:33:56.532198 'USER anonymous\r\n' 10:33:56.538763 Received DATA (on stdin) 10:33:56.539003 > 33 bytes data, server => client 10:33:56.539127 '331 We are happy you popped in!\r\n' 10:33:56.541404 < 22 bytes data, client => server 10:33:56.541620 'PASS ftp@example.com\r\n' 10:33:56.542850 Received DATA (on stdin) 10:33:56.543068 > 30 bytes data, server => client 10:33:56.543252 '230 Welcome you silly person\r\n' 10:33:56.550023 < 5 bytes data, client => server 10:33:56.550248 'PWD\r\n' 10:33:56.552376 Received DATA (on stdin) 10:33:56.552600 > 30 bytes data, server => client 10:33:56.552735 '257 "/" is current directory\r\n' 10:33:56.554489 < 6 bytes data, client => server 10:33:56.554690 'EPSV\r\n' 10:33:56.572305 Received DATA (on stdin) 10:33:56.572539 > 38 bytes data, server => client 10:33:56.572651 '229 Entering Passive Mode (|||44915|)\n' 10:33:56.574106 < 8 bytes data, client => server 10:33:56.574306 'TYPE I\r\n' 10:33:56.578827 Received DACMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1503 ./libtest/libtests lib1502 http://google.com:41733/1503 41733 127.0.0.1 > log/5/stdout1503 2> log/5/stderr1503 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1504 ./libtest/libtests lib1502 http://google.com:36933/1504 36933 127.0.0.1 > log/3/stdout1504 2> log/3/stderr1504 TA (on stdin) 10:33:56.579062 > 33 bytes data, server => client 10:33:56.579157 '200 I modify TYPE as you wanted\r\n' 10:33:56.579862 < 21 bytes data, client => server 10:33:56.580079 'SIZE verifiedserver\r\n' 10:33:56.584624 Received DATA (on stdin) 10:33:56.584856 > 8 bytes data, server => client 10:33:56.584944 '213 17\r\n' 10:33:56.585734 < 21 bytes data, client => server 10:33:56.585979 'RETR verifiedserver\r\n' 10:33:56.586946 Received DATA (on stdin) 10:33:56.587156 > 29 bytes data, server => client 10:33:56.587256 '150 Binary junk (17 bytes).\r\n' 10:33:56.597216 Received DATA (on stdin) 10:33:56.597508 > 28 bytes data, server => client 10:33:56.597640 '226 File transfer complete\r\n' 10:33:56.630532 < 6 bytes data, client => server 10:33:56.630784 'QUIT\r\n' 10:33:56.634285 Received DATA (on stdin) 10:33:56.634537 > 18 bytes data, server => client 10:33:56.634672 '221 bye bye baby\r\n' 10:33:56.636139 ====> Client disconnect 10:33:56.640182 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:33:56.566847 Running IPv4 version 10:33:56.567458 Listening on port 44915 10:33:56.567990 Wrote pid 153512 to log/2/server/ftp_sockdata.pid 10:33:56.568248 Received PING (on stdin) 10:33:56.569875 Received PORT (on stdin) 10:33:56.574147 ====> Client connect 10:33:56.587359 Received DATA (on stdin) 10:33:56.587502 > 17 bytes data, server => client 10:33:56.588122 'WE ROOLZ: 79558\r\n' 10:33:56.590851 Received DISC (on stdin) 10:33:56.591116 ====> Client forcibly disconnected 10:33:56.592577 Received QUIT (on stdin) 10:33:56.592762 quits 10:33:56.594739 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd DELAY LIST 2 DELAY TYPE 2 Testnum 1501 === End of file server.cmd === Start of file valgrind1501 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1501 test 1503...[HTTP multi with CURLOPT_RESOLVE, cleanup sequence PA] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1503 ./libtest/libtests lib1502 http://google.com:41733/1503 41733 127.0.0.1 > log/5/stdout1503 2> log/5/stderr1503 1503: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1503 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1503 ./libtest/libtests lib1502 http://google.com:41733/1503 41733 127.0.0.1 > log/5/stdout1503 2> log/5/stderr1503 === End of file commands.log === Start of file http_server.log 10:33:57.796974 ====> Client connect 10:33:57.797330 accept_connection 3 returned 4 10:33:57.797491 accept_connection 3 returned 0 10:33:57.797610 Read 93 bytes 10:33:57.797697 Process 93 bytes request 10:33:57.797788 Got request: GET /verifiedserver HTTP/1.1 10:33:57.797868 Are-we-friendly question received 10:33:57.798103 Wrote request (93 bytes) input to log/5/server.input 10:33:57.798296 Identifying ourselves as friends 10:33:57.799079 Response sent (56 bytes) and written to log/5/server.response 10:33:57.799215 special request received, no persistency 10:33:57.799280 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 52856 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1503 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1503 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1503 test 1504...[HTTP multi with CURLOPT_RESOLVE, cleanup sequence UB] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1504 ./libtest/libtests lib1502 http://google.com:36933/1504 36933 127.0.0.1 > log/3/stdout1504 2> log/3/stderr1504 1504: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1504 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1504 ./libtest/libtests lib1502 http://google.com:36933/1504 36933 127.0.0.1 > log/3/stdout1504 2> log/3/stderr1504 === End of file commands.log === Start of file http_server.log 10:33:57.082111 ====> Client connect 10:33:57.082664 accept_connection 3 returned 4 10:33:57.082922 accept_connection 3 returned 0 10:33:57.083111 Read 93 bytes 10:33:57.083237 Process 93 bytes request 10:3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1508 ./libtest/libtests lib1508 - > log/1/stdout1508 2> log/1/stderr1508 3:57.083368 Got request: GET /verifiedserver HTTP/1.1 10:33:57.083488 Are-we-friendly question received 10:33:57.083849 Wrote request (93 bytes) input to log/3/server.input 10:33:57.084109 Identifying ourselves as friends 10:33:57.085718 Response sent (56 bytes) and written to log/3/server.response 10:33:57.085996 special request received, no persistency 10:33:57.086140 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 48940 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1504 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1504 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1504 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1505 ./libtest/libtests lib1502 http://google.com:33363/1505 33363 127.0.0.1 > log/6/stdout1505 2> log/6/stderr1505 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1506 ./libtest/libtests lib1506 - 127.0.0.1 36007 > log/8/stdout1506 2> log/8/stderr1506 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1507 ./libtest/libtests lib1507 smtp://127.0.0.1:44481/1507 log/4/stdout1507 2> log/4/stderr1507 test 1508...[Close a multi handle without using it] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1508 ./libtest/libtests lib1508 - > log/1/stdout1508 2> log/1/stderr1508 1508: output (log/1/stdout1508) FAILED: --- log/1/check-expected 2025-09-11 10:33:58.318807849 +0000 +++ log/1/check-generated 2025-09-11 10:33:58.318807849 +0000 @@ -1 +0,0 @@ -We are done[LF] == Contents of files in the log/1/ dir after test 1508 === Start of file check-expected We are done[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1508 ./libtest/libtests lib1508 - > log/1/stdout1508 2> log/1/stderr1508 === End of file commands.log === Start of file server.cmd Testnum 1508 === End of file server.cmd === Start of file valgrind1508 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1508 test 1505...[HTTP multi with CURLOPT_RESOLVE, cleanup sequence PB] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1505 ./libtest/libtests lib1502 http://google.com:33363/1505 33363 127.0.0.1 > log/6/stdout1505 2> log/6/stderr1505 1505: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1505 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1505 ./libtest/libtests lib1502 http://google.com:33363/1505 33363 127.0.0.1 > log/6/stdout1505 2> log/6/stderr1505 === End of file commands.log === Start of file http_server.log 10:33:57.288244 ====> Client connect 10:33:57.288547 accept_connection 3 returned 4 10:33:57.288732 accept_connection 3 returned 0 10:33:57.288866 Read 93 bytes 10:33:57.288955 Process 93 bytes request 10:33:57.289126 Got request: GET /verifiedserver HTTP/1.1 10:33:57.289216 Are-we-friendly question received 10:33:57.289479 Wrote request (93 bytes) input to log/6/server.input 10:33:57.289676 Identifying ourselves as friends 10:33:57.290504 Response sent (56 bytes) and written to log/6/server.response 10:33:57.290674 special request received, no persistency 10:33:57.290758 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 40104 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1505 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1505 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1505 test 1506...[HTTP GET connection cache limit (CURLMOPT_MAXCONNECTS)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1506 ./libtest/libtests lib1506 - 127.0.0.1 36007 > log/8/stdout1506 2> log/8/stderr1506 1506: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1506 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1506 ./libtest/libtests lib1506 - 127.0.0.1 36007 > log/8/stdout1506 2> log/8/stderr1506 === End of file commands.log === Start of file http_server.log 10:33:57.332829 ====> Client connect 10:33:57.333416 accept_connection 3 returned 4 10:33:57.333700 accept_connection 3 returned 0 10:33:57.335186 Read 93 bytes 10:33:57.335393 Process 93 bytes request 10:33:57.335501 Got request: GET /verifiedserver HTTP/1.1 10:33:57.335587 Are-we-friendly question received 10:33:57.335876 Wrote request (93 bytes) input to log/8/server.input 10:33:57.336095 Identifying ourselves as friends 10:33:57.341140 Response sent (56 bytes) and written to log/8/server.response 10:33:57.341416 special request received, no persistency 10:33:57.341523 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 36668 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1509 ./libtest/libtests lib1509 http://the.old.moo.1509:40129/1509 127.0.0.1:46821 > log/7/stdout1509 2> log/7/stderr1509 1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1506 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1506 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1506 test 1507...[SMTP with multi interface and CURLE_ABORTED_BY_CALLBACK] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1507 ./libtest/libtests lib1507 smtp://127.0.0.1:44481/1507 log/4/stdout1507 2> log/4/stderr1507 1507: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1507 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1507 ./libtest/libtests lib1507 smtp://127.0.0.1:44481/1507 log/4/stdout1507 2> log/4/stderr1507 === End of file commands.log === Start of file server.cmd Testnum 1507 === End of file server.cmd === Start of file smtp_server.log 10:33:57.761457 ====> Client connect 10:33:57.763056 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:57.765308 < "EHLO verifiedserver" 10:33:57.768094 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:33:57.770391 < "HELP" 10:33:57.770856 > "214 WE ROOLZ: 120358[CR][LF]" 10:33:57.771123 return proof we are we 10:33:57.773664 < "QUIT" 10:33:57.774691 > "221 curl ESMTP server signing off[CR][LF]" 10:33:57.776274 MAIN sockfilt said DISC 10:33:57.777415 ====> Client disconnected 10:33:57.778406 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:33:57.428383 ====> Client connect 10:33:57.430598 Received DATA (on stdin) 10:33:57.430822 > 160 bytes data, server => client 10:33:57.430928 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:57.431007 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:57.431078 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:57.431810 < 21 bytes data, client => server 10:33:57.432057 'EHLO verifiedserver\r\n' 10:33:57.435627 Received DATA (on stdin) 10:33:57.435873 > 53 bytes data, server => client 10:33:57.435973 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:33:57.436687 < 6 bytes data, client => server 10:33:57.436901 'HELP\r\n' 10:33:57.438988 Received DATA (on stdin) 10:33:57.439142 > 22 bytes data, server => client 10:33:57.439223 '214 WE ROOLZ: 120358\r\n' 10:33:57.440185 < 6 bytes data, client => server 10:33:57.440370 'QUIT\r\n' 10:33:57.441728 Received DATA (on stdin) 10:33:57.441949 > 35 bytes data, server => client 10:33:57.442683 '221 curl ESMTP server signing off\r\n' 10:33:57.443412 ====> Client disconnect 10:33:57.444286 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-1507 From: different To: another body === End of file stdin-for-1507 === Start of file valgrind1507 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1507 test 1509...[simple multi http:// through proxytunnel with authentication info] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1509 ./libtest/libtests lib1509 http://the.old.moo.1509:40129/1509 127.0.0.1:46821 > log/7/stdout1509 2> log/7/stderr1509 1509: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1509 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1509 ./libtest/libtests lib1509 http://the.old.moo.1509:40129/1509 127.0.0.1:46821 > log/7/stdout1509 2> log/7/stderr1509 === End of file commands.log === Start of file http2_server.log 10:33:58.664499 ====> Client connect 10:33:58.664851 accept_connection 3 returned 4 10:33:58.665178 accept_connection 3 returned 0 10:33:58.665360 Read 93 bytes 10:33:58.665453 Process 93 bytes request 10:33:58.665563 Got request: GET /verifiedserver HTTP/1.1 10:33:58.665652 Are-we-friendly question received 10:33:58.665963 Wrote request (93 bytes) input to log/7/proxy.input 10:33:58.666193 Identifying ourselves as friends 10:33:58.667033 Response sent (57 bytes) and written to log/7/proxy.response 10:33:58.667195 special request received, no persistency 10:33:58.667280 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:46821... * Established connection to 127.0.0.1 (127.0.0.1 port 46821) from 127.0.0.1 port 60876 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46821 > User-Agent: curl/8.16.0 > Accept: */* > CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1510 ./libtest/libtests lib1510 - 127.0.0.1 43789 > log/2/stdout1510 2> log/2/stderr1510 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1511 ./libtest/libtests lib1511 http://127.0.0.1:41733/1511 > log/5/stdout1511 2> log/5/stderr1511 * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:46821 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 110953 === End of file http2_verify.out === Start of file http_server.log 10:33:57.516754 ====> Client connect 10:33:57.517481 accept_connection 3 returned 4 10:33:57.517689 accept_connection 3 returned 0 10:33:57.517823 Read 93 bytes 10:33:57.517898 Process 93 bytes request 10:33:57.517972 Got request: GET /verifiedserver HTTP/1.1 10:33:57.518035 Are-we-friendly question received 10:33:57.518266 Wrote request (93 bytes) input to log/7/server.input 10:33:57.518473 Identifying ourselves as friends 10:33:57.519222 Response sent (56 bytes) and written to log/7/server.response 10:33:57.519352 special request received, no persistency 10:33:57.519423 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 45552 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 110953 === End of file proxy.response === Start of file server.cmd connection-monitor Testnum 1509 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file test1509.txt foo bar bar foo moo === End of file test1509.txt === Start of file valgrind1509 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1509 test 1510...[HTTP GET connection cache limit (CURLOPT_MAXCONNECTS)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1510 ./libtest/libtests lib1510 - 127.0.0.1 43789 > log/2/stdout1510 2> log/2/stderr1510 1510: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1510 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1510 ./libtest/libtests lib1510 - 127.0.0.1 43789 > log/2/stdout1510 2> log/2/stderr1510 === End of file commands.log === Start of file http_server.log 10:33:57.707646 ====> Client connect 10:33:57.708017 accept_connection 3 returned 4 10:33:57.708220 accept_connection 3 returned 0 10:33:57.708346 Read 93 bytes 10:33:57.708433 Process 93 bytes request 10:33:57.708513 Got request: GET /verifiedserver HTTP/1.1 10:33:57.708588 Are-we-friendly question received 10:33:57.708834 Wrote request (93 bytes) input to log/2/server.input 10:33:57.709108 Identifying ourselves as friends 10:33:57.709776 Response sent (56 bytes) and written to log/2/server.response 10:33:57.709921 special request received, no persistency 10:33:57.709990 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 41116 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1510 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1510 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1510 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1513 ./libtest/libtests lib1513 http://127.0.0.1:36933/1513 > log/3/stdout1513 2> log/3/stderr1513 test 1511...[HTTP GET time conditions in repeated requests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1511 ./libtest/libtests lib1511 http://127.0.0.1:41733/1511 > log/5/stdout1511 2> log/5/stderr1511 1511: data FAILED: --- log/5/check-expected 2025-09-11 10:33:59.050822420 +0000 +++ log/5/check-generated 2025-09-11 10:33:59.050822420 +0000 @@ -1,17 +0,0 @@ -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fakem[CR][LF] -Last-Modified: Mon, 22 Apr 2013 17:45:05 GMT[CR][LF] -Content-Type: text/html[CR][LF] -Content-Length: 12[CR][LF] -Connection: close[CR][LF] -[CR][LF] -HTTP/1.1 200 OK[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fakem[CR][LF] -Last-Modified: Mon, 22 Apr 2013 17:45:05 GMT[CR][LF] -Content-Type: text/html[CR][LF] -Content-Length: 12[CR][LF] -Connection: close[CR][LF] -[CR][LF] -Hello World[LF] == Contents of files in the log/5/ dir after test 1511 === Start of file check-expected HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fakem[CR][LF] Last-Modified: Mon, 22 Apr 2013 17:45:05 GMT[CR][LF] Content-Type: text/html[CR][LF] Content-Length: 12[CR][LF] Connection: close[CR][LF] [CR][LF] HTTP/1.1 200 OK[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fakem[CR][LF] Last-Modified: Mon, 22 Apr 2013 17:45:05 GMT[CR][LF] Content-Type: text/html[CR][LF] Content-Length: 12[CR][LF] Connection: close[CR][LF] [CR][LF] Hello World[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1511 ./libtest/libtests lib1511 http://127.0.0.1:41733/1511 > log/5/stdout1511 2> log/5/stderr1511 === End of file commands.log === Start of file http_server.log 10:33:58.826583 ====> Client connect 10:33:58.827040 accept_connection 3 returned 4 10:33:58.827319 accept_connection 3 returned 0 10:33:58.827543 Read 93 bytes 10:33:58.827668 Process 93 bytes request 10:33:58.827773 Got request: GET /verifiedserver HTTP/1.1 10:33:58.827851 Are-we-friendly question received 10:33:58.828200 Wrote request (93 bytes) input to log/5/server.input 10:33:58.828523 Identifying ourselves as friends 10:33:58.829776 Response sent (56 bytes) and written to log/5/server.response 10:33:58.829980 special request received, no persistency 10:33:58.830107 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 52864 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1511 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1511 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1511 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1514 ./libtest/libtests lib1514 http://127.0.0.1:42781/1514 > log/1/stdout1514 2> log/1/stderr1514 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1515 ./libtest/libtests lib1515 path/1515 127.0.0.1 33363 > log/6/stdout1515 2> log/6/stderr1515 test 1513...[return failure immediately from progress callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1513 ./libtest/libtests lib1513 http://127.0.0.1:36933/1513 > log/3/stdout1513 2> log/3/stderr1513 1513: stdout FAILED: --- log/3/check-expected 2025-09-11 10:33:59.258826560 +0000 +++ log/3/check-generated 2025-09-11 10:33:59.258826560 +0000 @@ -1 +0,0 @@ -PROGRESSFUNCTION called[LF] == Contents of files in the log/3/ dir after test 1513 === Start of file check-expected PROGRESSFUNCTION called[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1513 ./libtest/libtests lib1513 http://127.0.0.1:36933/1513 > log/3/stdout1513 2> log/3/stderr1513 === End of file commands.log === Start of file http_server.log 10:33:58.159941 ====> Client connect 10:33:58.160245 accept_connection 3 returned 4 10:33:58.160405 accept_connection 3 returned 0 10:33:58.160524 Read 93 bytes 10:33:58.160607 Process 93 bytes request 10:33:58.160685 Got request: GET /verifiedserver HTTP/1.1 10:33:58.160763 Are-we-friendly question received 10:33:58.161116 Wrote request (93 bytes) input to log/3/server.input 10:33:58.161380 Identifying ourselves as friends 10:33:58.162198 Response sent (56 bytes) and written to log/3/server.response 10:33:58.162333 special request received, no persistency 10:33:58.162415 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 48952 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1513 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1513 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1513 test 1514...[HTTP POST with read callback and unknown data size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1514 ./libtest/libtests lib1514 http://127.0.0.1:42781/1514 > log/1/stdout1514 2> log/1/stderr1514 1514: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1514 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1514 ./libtest/libtests lib1514 http://127.0.0.1:42781/1514 > log/1/stdout1514 2> log/1/stderr1514 === End of file commands.log === Start of file http_server.log 10:33:58.211165 ====> Client connect 10:33:58.211522 accept_connection 3 returned 4 10:33:58.211726 accept_connection 3 returned 0 10:33:58.212609 Read 93 bytes 10:33:58.212805 Process 93 bytes request 10:33:58.212953 Got request: GET /verifiedserver HTTP/1.1 10:33:58.213126 Are-we-friendly question received 10:33:58.213445 Wrote request (93 bytes) input to log/1/server.input 10:33:58.213715 Identifying ourselves as friends 10:33:58.214568 Response sent (57 bytes) and written to log/1/server.response 10:33:58.214743 special request received, no persistency 10:33:58.214857 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 43872 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 1514 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1514 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1514 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1517 ./libtest/libtests lib1517 http://127.0.0.1:36757/1517 > log/4/stdout1517 2> log/4/stderr1517 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1516 ./libtest/libtests lib1515 path/1516 127.0.0.1 36007 > log/8/stdout1516 2> log/8/stderr1516 test 1515...[caching of manual libcurl DNS entries after DNS cache timeout] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1515 ./libtest/libtests lib1515 path/1515 127.0.0.1 33363 > log/6/stdout1515 2> log/6/stderr1515 1515: data FAILED: --- log/6/check-expected 2025-09-11 10:33:59.402829427 +0000 +++ log/6/check-generated 2025-09-11 10:33:59.402829427 +0000 @@ -1,2 +0,0 @@ -hello[LF] -hello[LF] == Contents of files in the log/6/ dir after test 1515 === Start of file check-expected hello[LF] hello[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1515 ./libtest/libtests lib1515 path/1515 127.0.0.1 33363 > log/6/stdout1515 2> log/6/stderr1515 === End of file commands.log === Start of file http_server.log 10:33:58.238779 ====> Client connect 10:33:58.239091 accept_connection 3 returned 4 10:33:58.239264 accept_connection 3 returned 0 10:33:58.239415 Read 93 bytes 10:33:58.239528 Process 93 bytes request 10:33:58.239644 Got request: GET /verifiedserver HTTP/1.1 10:33:58.239752 Are-we-friendly question received 10:33:58.240035 Wrote request (93 bytes) input to log/6/server.input 10:33:58.240281 Identifying ourselves as friends 10:33:58.241218 Response sent (56 bytes) and written to log/6/server.response 10:33:58.241412 special request received, no persistency 10:33:58.241532 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 40116 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd Testnum 1515 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1515 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1515 test 1517...[HTTP POST, server responds before completed send] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1517 ./libtest/libtests lib1517 http://127.0.0.1:36757/1517 > log/4/stdout1517 2> log/4/stderr1517 1517: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1517 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1517 ./libtest/libtests lib1517 http://127.0.0.1:36757/1517 > log/4/stdout1517 2> log/4/stderr1517 === End of file commands.log === Start of file http_server.log 10:33:59.421937 ====> Client connect 10:33:59.422347 accept_connection 3 returned 4 10:33:59.422543 accept_connection 3 returned 0 10:33:59.423829 Read 93 bytes 10:33:59.424038 Process 93 bytes request 10:33:59.424146 Got request: GET /verifiedserver HTTP/1.1 10:33:59.424228 Are-we-friendly question received 10:33:59.424503 Wrote request (93 bytes) input to log/4/server.input 10:33:59.424740 Identifying ourselves as friends 10:33:59.426490 Response sent (56 bytes) and written to log/4/server.response 10:33:59.429451 special request received, no persistency 10:33:59.429671 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 41330 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd skip: 45 Testnum 1517 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1517 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1517 test 1516...[caching of manual libcurl DNS entries after dead connection] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1516 ./libtest/libtests lib1515 path/1516 127.0.0.1 36007 > log/8/stdout1516 2> log/8/stderr1516 libtests returned 1, when expecting 0 1516: exit FAILED == Contents of files in the log/8/ dir after test 1516 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leakCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1518 ./libtest/libtests lib1518 http://127.0.0.1:40129/1518 > log/7/stdout1518 2> log/7/stderr1518 -check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1516 ./libtest/libtests lib1515 path/1516 127.0.0.1 36007 > log/8/stdout1516 2> log/8/stderr1516 === End of file commands.log === Start of file http_server.log 10:33:58.387416 ====> Client connect 10:33:58.387853 accept_connection 3 returned 4 10:33:58.388229 accept_connection 3 returned 0 10:33:58.388493 Read 93 bytes 10:33:58.388660 Process 93 bytes request 10:33:58.388795 Got request: GET /verifiedserver HTTP/1.1 10:33:58.388899 Are-we-friendly question received 10:33:58.389307 Wrote request (93 bytes) input to log/8/server.input 10:33:58.389614 Identifying ourselves as friends 10:33:58.390589 Response sent (56 bytes) and written to log/8/server.response 10:33:58.390835 special request received, no persistency 10:33:58.390977 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 36674 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1516 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1516 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1516 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1519 ./libtest/libtests lib1518 http://127.0.0.1:43789/1519 > log/2/stdout1519 2> log/2/stderr1519 test 1518...[Extract Location: with broken URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1518 ./libtest/libtests lib1518 http://127.0.0.1:40129/1518 > log/7/stdout1518 2> log/7/stderr1518 1518: stdout FAILED: --- log/7/check-expected 2025-09-11 10:33:59.826837867 +0000 +++ log/7/check-generated 2025-09-11 10:33:59.826837867 +0000 @@ -1,5 +0,0 @@ -res 0[LF] -status 302[LF] -redirects 0[LF] -effectiveurl http://127.0.0.1:40129/1518[LF] -redirecturl http://1.2 .4.5/test[LF] == Contents of files in the log/7/ dir after test 1518 === Start of file check-expected res 0[LF] status 302[LF] redirects 0[LF] effectiveurl http://127.0.0.1:40129/1518[LF] redirecturl http://1.2 .4.5/test[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1518 ./libtest/libtests lib1518 http://127.0.0.1:40129/1518 > log/7/stdout1518 2> log/7/stderr1518 === End of file commands.log === Start of file http_server.log 10:33:58.668102 ====> Client connect 10:33:58.668497 accept_connection 3 returned 4 10:33:58.668703 accept_connection 3 returned 0 10:33:58.668853 Read 93 bytes 10:33:58.669120 Process 93 bytes request 10:33:58.669292 Got request: GET /verifiedserver HTTP/1.1 10:33:58.669429 Are-we-friendly question received 10:33:58.669773 Wrote request (93 bytes) input to log/7/server.input 10:33:58.669973 Identifying ourselves as friends 10:33:58.671627 Response sent (56 bytes) and written to log/7/server.response 10:33:58.671851 special request received, no persistency 10:33:58.671942 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 45562 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1518 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1518 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1518 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1521 ./libtest/libtests lib1521 - > log/3/stdout1521 2> log/3/stderr1521 test 1519...[Extract Location: with broken absolute URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1519 ./libtest/libtests lib1518 http://127.0.0.1:43789/1519 > log/2/stdout1519 2> log/2/stderr1519 1519: stdout FAILED: --- log/2/check-expected 2025-09-11 10:33:59.902839380 +0000 +++ log/2/check-generated 2025-09-11 10:33:59.898839300 +0000 @@ -1,5 +0,0 @@ -res 0[LF] -status 302[LF] -redirects 0[LF] -effectiveurl http://127.0.0.1:43789/1519[LF] -redirecturl http://127.0.0.1:43789/h%20ttp://1.2.4.5/test[LF] == Contents of files in the log/2/ dir after test 1519 === Start of file check-expected res 0[LF] status 302[LF] redirects 0[LF] effectiveurl http://127.0.0.1:43789/1519[LF] redirecturl http://127.0.0.1:43789/h%20ttp://1.2.4.5/test[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1519 ./libtest/libtests lib1518 http://127.0.0.1:43789/1519 > log/2/stdout1519 2> log/2/stderr1519 === End of file commands.log === Start of file http_server.log 10:33:58.756507 ====> Client connect 10:33:58.756936 accept_connection 3 returned 4 10:33:58.757243 accept_connection 3 returned 0 10:33:58.757410 Read 93 bytes 10:33:58.757526 Process 93 bytes request 10:33:58.757631 Got request: GET /verifiedserver HTTP/1.1 10:33:58.757716 Are-we-friendly question received 10:33:58.758005 Wrote request (93 bytes) input to log/2/server.input 10:33:58.758250 Identifying ourselves as friends 10:33:58.759164 Response sent (56 bytes) and written to log/2/server.response 10:33:58.759386 special request received, no persistency 10:33:58.759493 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 41130 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1519 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1519 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1519 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1520 ./libtest/libtests lib1520 smtp://127.0.0.1:34989/1520 log/5/stdout1520 2> log/5/stderr1520 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1522 ./libtest/libtests lib1522 http://127.0.0.1:42781/1522 > log/1/stdout1522 2> log/1/stderr1522 test 1521...[Test all curl_easy_setopt and curl_easy_getinfo options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1521 ./libtest/libtests lib1521 - > log/3/stdout1521 2> log/3/stderr1521 1521: stdout FAILED: --- log/3/check-expected 2025-09-11 10:34:00.034842008 +0000 +++ log/3/check-generated 2025-09-11 10:34:00.034842008 +0000 @@ -1 +0,0 @@ -ok[LF] == Contents of files in the log/3/ dir after test 1521 === Start of file check-expected ok[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1521 ./libtest/libtests lib1521 - > log/3/stdout1521 2> log/3/stderr1521 === End of file commands.log === Start of file server.cmd Testnum 1521 === End of file server.cmd === Start of file valgrind1521 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1521 test 1520...[SMTP with CRLF-dot-CRLF in data] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1520 ./libtest/libtests lib1520 smtp://127.0.0.1:34989/1520 log/5/stdout1520 2> log/5/stderr1520 1520: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1520 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1520 ./libtest/libtests lib1520 smtp://127.0.0.1:34989/1520 log/5/stdout1520 2> log/5/stderr1520 === End of file commands.log === Start of file server.cmd Testnum 1520 === End of file server.cmd === Start of file smtp_server.log 10:33:59.263943 ====> Client connect 10:33:59.271068 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:33:59.279688 < "EHLO verifiedserver" 10:33:59.285988 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:33:59.290417 < "HELP" 10:33:59.291849 > "214 WE ROOLZ: 120432[CR][LF]" 10:33:59.292397 return proof we are we 10:33:59.301739 < "QUIT" 10:33:59.302290 > "221 curl ESMTP server signing off[CR][LF]" 10:33:59.305896 MAIN sockfilt said DISC 10:33:59.306400 ====> Client disconnected 10:33:59.307056 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:33:58.930787 ====> Client connect 10:33:58.934897 Received DATA (on stdin) 10:33:58.936315 > 160 bytes data, server => client 10:33:58.936791 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:33:58.937488 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:33:58.937757 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:33:58.945249 < 21 bytes data, client => server 10:33:58.945528 'EHLO verifiedserver\r\n' 10:33:58.947949 Received DATA (on stdin) 10:33:58.948187 > 53 bytes data, server => client 10:33:58.954202 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:33:58.956200 < 6 bytes data, client => server 10:33:58.956515 'HELP\r\n' 10:33:58.958672 Received DATA (on stdin) 10:33:58.958960 > 22 bytes data, server => client 10:33:58.961180 '214 WE ROOLZ: 120432\r\n' 10:33:58.968282 < 6 bytes data, client => server 10:33:58.968555 'QUIT\r\n' 10:33:58.969802 Received DATA (on stdin) 10:33:58.970040 > 35 bytes data, server => client 10:33:58.970175 '221 curl ESMTP server signing off\r\n' 10:33:58.973005 ====> Client disconnect 10:33:58.975066 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-1520 From: different To: another . . . body === End of file stdin-for-1520 === Start of file valgrind1520 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1520 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1523 ./libtest/libtests lib1523 http://127.0.0.1:33363/1523 > log/6/stdout1523 2> log/6/stderr1523 RUN: Process with pid 75518 signalled to die RUN: Process with pid 75518 gracefully died CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1524 ../src/curl -q --output log/4/curl1524.out --include --trace-ascii log/4/trace1524 --trace-time http://127.0.0.1:36757/blah/1524 -L -T log/4/upload1524.txt > log/4/stdout1524 2> log/4/stderr1524 test 1522...[CURLINFO_SIZE_UPLOAD with small SO_SNDBUF] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1522 ./libtest/libtests lib1522 http://127.0.0.1:42781/1522 > log/1/stdout1522 2> log/1/stderr1522 1522: stdout FAILED: --- log/1/check-expected 2025-09-11 10:34:00.310847502 +0000 +++ log/1/check-generated 2025-09-11 10:34:00.310847502 +0000 @@ -1,3 +0,0 @@ --foo-[LF] -uploadSize = 40960[LF] -!!!!!!!!!! PASS[LF] == Contents of files in the log/1/ dir after test 1522 === Start of file check-expected -foo-[LF] uploadSize = 40960[LF] !!!!!!!!!! PASS[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1522 ./libtest/libtests lib1522 http://127.0.0.1:42781/1522 > log/1/stdout1522 2> log/1/stderr1522 === End of file commands.log === Start of file http_server.log 10:33:59.214457 ====> Client connect 10:33:59.214782 accept_connection 3 returned 4 10:33:59.214969 accept_connection 3 returned 0 10:33:59.215108 Read 93 bytes 10:33:59.215202 Process 93 bytes request 10:33:59.215284 Got request: GET /verifiedserver HTTP/1.1 10:33:59.215352 Are-we-friendly question received 10:33:59.215592 Wrote request (93 bytes) input to log/1/server.input 10:33:59.215771 Identifying ourselves as friends 10:33:59.216462 Response sent (57 bytes) and written to log/1/server.response 10:33:59.216587 special request received, no persistency 10:33:59.216656 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 43882 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 1522 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1522 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1522 test 1523...[CURLINFO_LOW_SPEED_LIMIT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1523 ./libtest/libtests lib1523 http://127.0.0.1:33363/1523 > log/6/stdout1523 2> log/6/stderr1523 libtests returned 1, when expecting 0 1523: exit FAILED == Contents of files in the log/6/ dir after test 1523 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1523 ./libtest/libtests lib1523 http://127.0.0.1:33363/1523 > log/6/stdout1523 2> log/6/stderr1523 === End of file commands.log === Start of file http_server.log 10:33:59.294389 ====> Client connect 10:33:59.294781 accept_connection 3 returned 4 10:33:59.294972 accept_connection 3 returned 0 10:33:59.295106 Read 93 bytes 10:33:59.295293 Process 93 bytes request 10:33:59.295413 Got request: GET /verifiedserver HTTP/1.1 10:33:59.295493 Are-we-friendly question received 10:33:59.295693 Wrote request (93 bytes) input to log/6/server.input 10:33:59.295854 Identifying ourselves as friends 10:33:59.296554 Response sent (56 bytes) and written to log/6/server.response 10:33:59.296711 special request received, no persistency 10:33:59.296795 ====> Client disconnect 0 exit_signal_handler: called 10:34:00.056544 signalled to die 10:34:00.059009 ========> IPv4 sws (port 33363 pid: 75518) exits with signal (15) 10:34:00.059260 ========> sws quits === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:33363... * Established connection to 127.0.0.1 (127.0.0.1 port 33363) from 127.0.0.1 port 40130 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33363 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33363 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 75518 === End of file http_verify.out === Start of file server.cmd writedelay: 1000 Testnum 1523 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 75518 === End of file server.response === Start of file valgrind1523 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1523 test 1524...[HTTP PUT with 303 redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1524 ../src/curl -q --output log/4/curl1524.out --include --trace-ascii log/4/trace1524 --trace-time http://127.0.0.1:36757/blah/1524 -L -T log/4/upload1524.txt > log/4/stdout1524 2> log/4/stderr1524 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1525 ./libtest/libtests lib1525 http://the.old.moo.1525:36007/1525 127.0.0.1:33375 > log/8/stdout1525 2> log/8/stderr1525 1524: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1524 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1524 ../src/curl -q --output log/4/curl1524.out --include --trace-ascii log/4/trace1524 --trace-time http://127.0.0.1:36757/blah/1524 -L -T log/4/upload1524.txt > log/4/stdout1524 2> log/4/stderr1524 === End of file commands.log === Start of file http_server.log 10:34:00.445467 ====> Client connect 10:34:00.445913 accept_connection 3 returned 4 10:34:00.446232 accept_connection 3 returned 0 10:34:00.446475 Read 93 bytes 10:34:00.446599 Process 93 bytes request 10:34:00.446705 Got request: GET /verifiedserver HTTP/1.1 10:34:00.446809 Are-we-friendly question received 10:34:00.447119 Wrote request (93 bytes) input to log/4/server.input 10:34:00.447387 Identifying ourselves as friends 10:34:00.448342 Response sent (56 bytes) and written to log/4/server.response 10:34:00.448574 special request received, no persistency 10:34:00.448671 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 41346 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1524 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file upload1524.txt moo === End of file upload1524.txt === Start of file valgrind1524 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1524 test 1525...[CURLOPT_PROXYHEADER is ignored CURLHEADER_UNIFIED] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1525 ./libtest/libtests lib1525 http://the.old.moo.1525:36007/1525 127.0.0.1:33375 > log/8/stdout1525 2> log/8/stderr1525 1525: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1525 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1525 ./libtest/libtests lib1525 http://the.old.moo.1525:36007/1525 127.0.0.1:33375 > log/8/stdout1525 2> log/8/stderr1525 === End of file commands.log === Start of file http2_server.log 10:34:00.652559 ====> Client connect 10:34:00.653041 accept_connection 3 returned 4 10:34:00.653316 accept_connection 3 returned 0 10:34:00.653526 Read 93 bytes 10:34:00.653624 Process 93 bytes request 10:34:00.653719 Got request: GET /verifiedserver HTTP/1.1 10:34:00.653806 Are-we-friendly question received 10:34:00.654117 Wrote request (93 bytes) input to log/8/proxy.input 10:34:00.654365 Identifying ourselves as friends 10:34:00.655218 Response sent (57 bytes) and written to log/8/proxy.response 10:34:00.655413 special request received, no persistency 10:34:00.655506 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:33375... * Established connection to 127.0.0.1 (127.0.0.1 port 33375) from 127.0.0.1 port 40606 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33375 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:33375 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 101334 === End of file http2_verify.out === Start of file http_server.log 10:33:59.472547 ====> Client connect 10:33:59.472940 accept_connection 3 returned 4 10:33:59.473228 accept_connection 3 returned 0 10:33:59.473353 Read 93 bytes 10:33:59.473436 Process 93 bytes request 10:33:59.473517 Got request: GET /verifiedserver HTTP/1.1 10:33:59.473592 Are-we-friendly question received 10:33:59.473847 Wrote request (93 bytes) input to log/8/server.input 10:33:59.474036 Identifying ourselves as friends 10:33:59.474821 Response sent (56 bytes) and written to log/8/server.response 10:33:59.474978 special request received, no persistency 10:33:59.475049 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 36678 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 101334 === End of file proxy.response === Start of file server.cmd Testnum 1525 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1525 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1530 ./libtest/libtests lib1530 - > log/1/stdout1530 2> log/1/stderr1530 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1526 ./libtest/libtests lib1526 http://the.old.moo.1526:40129/1526 127.0.0.1:46821 > log/7/stdout1526 2> log/7/stderr1526 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1527 ./libtest/libtests lib1527 http://the.old.moo.1527:43789/1527 127.0.0.1:38053 > log/2/stdout1527 2> log/2/stderr1527 The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1525 test 1530...[CURLOPT_OPENSOCKETFUNCTION returns bad socket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1530 ./libtest/libtests lib1530 - > log/1/stdout1530 2> log/1/stderr1530 libtests returned 1, when expecting 7 1530: exit FAILED == Contents of files in the log/1/ dir after test 1530 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1530 ./libtest/libtests lib1530 - > log/1/stdout1530 2> log/1/stderr1530 === End of file commands.log === Start of file server.cmd Testnum 1530 === End of file server.cmd === Start of file valgrind1530 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1530 test 1526...[CURLOPT_PROXYHEADER: separate host/proxy headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1526 ./libtest/libtests lib1526 http://the.old.moo.1526:40129/1526 127.0.0.1:46821 > log/7/stdout1526 2> log/7/stderr1526 1526: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1526 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1526 ./libtest/libtests lib1526 http://the.old.moo.1526:40129/1526 127.0.0.1:46821 > log/7/stdout1526 2> log/7/stderr1526 === End of file commands.log === Start of file http2_server.log 10:34:00.885370 ====> Client connect 10:34:00.885902 accept_connection 3 returned 4 10:34:00.886209 accept_connection 3 returned 0 10:34:00.886505 Read 93 bytes 10:34:00.886710 Process 93 bytes request 10:34:00.886852 Got request: GET /verifiedserver HTTP/1.1 10:34:00.886977 Are-we-friendly question received 10:34:00.887350 Wrote request (93 bytes) input to log/7/proxy.input 10:34:00.887664 Identifying ourselves as friends 10:34:00.888562 Response sent (57 bytes) and written to log/7/proxy.response 10:34:00.888729 special request received, no persistency 10:34:00.888826 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:46821... * Established connection to 127.0.0.1 (127.0.0.1 port 46821) from 127.0.0.1 port 37304 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:46821 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:46821 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 110953 === End of file http2_verify.out === Start of file http_server.log 10:33:59.715415 ====> Client connect 10:33:59.715937 accept_connection 3 returned 4 10:33:59.716436 accept_connection 3 returned 0 10:33:59.716683 Read 93 bytes 10:33:59.716828 Process 93 bytes request 10:33:59.717052 Got request: GET /verifiedserver HTTP/1.1 10:33:59.717219 Are-we-friendly question received 10:33:59.717610 Wrote request (93 bytes) input to log/7/server.input 10:33:59.717897 Identifying ourselves as friends 10:33:59.721327 Response sent (56 bytes) and written to log/7/server.response 10:33:59.725773 special request received, no persistency 10:33:59.725933 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 45574 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 110953 === End of file proxy.response === Start of file server.cmd Testnum 1526 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1526 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1526 test 1527...[Same headers with CURLOPT_HEADEROPT == CURLHEADER_UNIFIED] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1527 ./libtest/libtests lib1527 http://the.old.moo.1527:4CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1528 ./libtest/libtests lib1528 http://the.old.moo:36933/1528 127.0.0.1:33181 > log/3/stdout1528 2> log/3/stderr1528 3789/1527 127.0.0.1:38053 > log/2/stdout1527 2> log/2/stderr1527 1527: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1527 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1527 ./libtest/libtests lib1527 http://the.old.moo.1527:43789/1527 127.0.0.1:38053 > log/2/stdout1527 2> log/2/stderr1527 === End of file commands.log === Start of file http2_server.log 10:34:00.973688 ====> Client connect 10:34:00.974019 accept_connection 3 returned 4 10:34:00.974206 accept_connection 3 returned 0 10:34:00.974365 Read 93 bytes 10:34:00.974467 Process 93 bytes request 10:34:00.974574 Got request: GET /verifiedserver HTTP/1.1 10:34:00.974674 Are-we-friendly question received 10:34:00.974980 Wrote request (93 bytes) input to log/2/proxy.input 10:34:00.975573 Identifying ourselves as friends 10:34:00.976635 Response sent (57 bytes) and written to log/2/proxy.response 10:34:00.976853 special request received, no persistency 10:34:00.980086 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:38053... * Established connection to 127.0.0.1 (127.0.0.1 port 38053) from 127.0.0.1 port 60866 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38053 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:38053 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 110927 === End of file http2_verify.out === Start of file http_server.log 10:33:59.792260 ====> Client connect 10:33:59.792583 accept_connection 3 returned 4 10:33:59.792780 accept_connection 3 returned 0 10:33:59.793544 Read 93 bytes 10:33:59.793664 Process 93 bytes request 10:33:59.793776 Got request: GET /verifiedserver HTTP/1.1 10:33:59.793850 Are-we-friendly question received 10:33:59.794120 Wrote request (93 bytes) input to log/2/server.input 10:33:59.794358 Identifying ourselves as friends 10:33:59.795444 Response sent (56 bytes) and written to log/2/server.response 10:33:59.795632 special request received, no persistency 10:33:59.795713 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 32982 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 110927 === End of file proxy.response === Start of file server.cmd Testnum 1527 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1527 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1527 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1529 ./libtest/libtests lib1529 "http://the.old.moo:41733/1529" 127.0.0.1:43353 > log/5/stdout1529 2> log/5/stderr1529 test 1528...[Separately specified proxy/server headers sent in a proxy GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1528 ./libtest/libtests lib1528 http://the.old.moo:36933/1528 127.0.0.1:33181 > log/3/stdout1528 2> log/3/stderr1528 1528: data FAILED: --- log/3/check-expected 2025-09-11 10:34:01.230865816 +0000 +++ log/3/check-generated 2025-09-11 10:34:01.226865736 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK swsclose[CR][LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] -Server: test-server/fake[CR][LF] -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] -ETag: "21025-dc7-39462498"[CR][LF] -Content-Length: 5[CR][LF] -[CR][LF] -stop[LF] == Contents of files in the log/3/ dir after test 1528 === Start of file check-expected HTTP/1.1 200 OK swsclose[CR][LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] Server: test-server/fake[CR][LF] Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT[CR][LF] ETag: "21025-dc7-39462498"[CR][LF] Content-Length: 5[CR][LF] [CR][LF] stop[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1528 ./libtest/libtests lib1528 http://the.old.moo:36933/1528 127.0.0.1:33181 > log/3/stdout1528 2> log/3/stderr1528 === End of file commands.log === Start of file http2_server.log 10:34:00.089731 ====> Client connect 10:34:00.090586 accept_connection 3 returned 4 10:34:00.090857 accept_connection 3 returned 0 10:34:00.091018 Read 93 bytes 10:34:00.091100 Process 93 bytes request 10:34:00.091179 Got request: GET /verifiedserver HTTP/1.1 10:34:00.091242 Are-we-friendly question received 10:34:00.091498 Wrote request (93 bytes) input to log/3/proxy.input 10:34:00.091711 Identifying ourselves as friends 10:34:00.092502 Response sent (56 bytes) and written to log/3/proxy.response 10:34:00.092636 special request received, no persistency 10:34:00.092696 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:33181... * Established connection to 127.0.0.1 (127.0.0.1 port 33181) from 127.0.0.1 port 56732 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33181 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:33181 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 78298 === End of file http2_verify.out === Start of file http_server.log 10:33:59.931399 ====> Client connect 10:33:59.931686 accept_connection 3 returned 4 10:33:59.931841 accept_connection 3 returned 0 10:33:59.931950 Read 93 bytes 10:33:59.932032 Process 93 bytes request 10:33:59.932118 Got request: GET /verifiedserver HTTP/1.1 10:33:59.932188 Are-we-friendly question received 10:33:59.932432 Wrote request (93 bytes) input to log/3/server.input 10:33:59.932642 Identifying ourselves as friends 10:33:59.933448 Response sent (56 bytes) and written to log/3/server.response 10:33:59.933610 special request received, no persistency 10:33:59.933693 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 38440 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 78298 === End of file proxy.response === Start of file server.cmd Testnum 1528 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1528 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1528 test 1529...[HTTP request-injection in URL sent over proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1529 ./libtest/libtests lib1529 "http://the.old.moo:41733/1529" 127.0.0.1:43353 > log/5/stdout1529 2> log/5/stderr1529 libtests returned 1, when expecting 3 1529: exit FAILED == Contents of files in the log/5/ dir after test 1529 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1529 ./libtest/libtests lib1529 "http://the.old.moo:41733/1529" 127.0.0.1:43353 > log/5/stdout1529 2> log/5/stderr1529 === End of file commands.log === Start of file http2_server.log 10:34:01.181247 ====> Client connect 10:34:01.181613 accept_connection 3 returned 4 10:34:01.181839 accept_connection 3 returned 0 10:34:01.182000 Read 93 bytes 10:34:01.182109 Process 93 bytes request 10:34:01.182216 Got request: GET /verifiedserver HTTP/1.1 10:34:01.182306 Are-we-friendly question received 10:34:01.182587 Wrote request (93 bytes) input to log/5/proxy.input 10:34:01.182817 Identifying ourselves as friends 10:34:01.183714 Response sent (57 bytes) and written to log/5/proxy.response 10:34:01.183869 special request received, no persistency 10:34:01.183957 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:43353... * Established connection to 127.0.0.1 (127.0.0.1 port 43353) from 127.0.0.1 port 57960 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43353 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43353 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 112645 === End of file http2_verify.out === Start of file http_server.log 10:34:01.026322 ====> Client connect 10:34:01.026682 accept_connection 3 returned 4 10:34:01.026888 accept_connection 3 returned 0 10:34:01.027038 Read 93 bytes 10:34:01.027139 Process 93 bytes request 10:34:01.027243 Got request: GET /verifiedserver HTTP/1.1 10:34:01.027327 Are-we-friendly question received 10:34:01.027601 Wrote request (93 bytes) input to log/5/serCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1532 ./libtest/libtests lib1532 http://127.0.0.1:36757/1532 > log/4/stdout1532 2> log/4/stderr1532 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1533 ./libtest/libtests lib1533 http://127.0.0.1:36007/1533 > log/8/stdout1533 2> log/8/stderr1533 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1537 ./libtest/libtests lib1537 - > log/3/stdout1537 2> log/3/stderr1537 ver.input 10:34:01.027824 Identifying ourselves as friends 10:34:01.028639 Response sent (56 bytes) and written to log/5/server.response 10:34:01.028764 special request received, no persistency 10:34:01.028841 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 41018 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 112645 === End of file proxy.response === Start of file server.cmd Testnum 1529 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1529 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1529 test 1532...[Test CURLINFO_RESPONSE_CODE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1532 ./libtest/libtests lib1532 http://127.0.0.1:36757/1532 > log/4/stdout1532 2> log/4/stderr1532 1532: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1532 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1532 ./libtest/libtests lib1532 http://127.0.0.1:36757/1532 > log/4/stdout1532 2> log/4/stderr1532 === End of file commands.log === Start of file http_server.log 10:34:01.478593 ====> Client connect 10:34:01.478968 accept_connection 3 returned 4 10:34:01.479154 accept_connection 3 returned 0 10:34:01.479298 Read 93 bytes 10:34:01.479404 Process 93 bytes request 10:34:01.479505 Got request: GET /verifiedserver HTTP/1.1 10:34:01.479589 Are-we-friendly question received 10:34:01.479920 Wrote request (93 bytes) input to log/4/server.input 10:34:01.480145 Identifying ourselves as friends 10:34:01.480821 Response sent (56 bytes) and written to log/4/server.response 10:34:01.481043 special request received, no persistency 10:34:01.481134 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 49862 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1532 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1532 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1532 test 1533...[HTTP with CURLOPT_KEEP_SENDING_ON_ERROR and an early error response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1533 ./libtest/libtests lib1533 http://127.0.0.1:36007/1533 > log/8/stdout1533 2> log/8/stderr1533 1533: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1533 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1533 ./libtest/libtests lib1533 http://127.0.0.1:36007/1533 > log/8/stdout1533 2> log/8/stderr1533 === End of file commands.log === Start of file http_server.log 10:34:00.725387 ====> Client connect 10:34:00.725755 accept_connection 3 returned 4 10:34:00.725968 accept_connection 3 returned 0 10:34:00.726094 Read 93 bytes 10:34:00.726188 Process 93 bytes request 10:34:00.726272 Got request: GET /verifiedserver HTTP/1.1 10:34:00.726340 Are-we-friendly question received 10:34:00.726587 Wrote request (93 bytes) input to log/8/server.input 10:34:00.726785 Identifying ourselves as friends 10:34:00.727483 Response sent (56 bytes) and written to log/8/server.response 10:34:00.727600 special request received, no persistency 10:34:00.727660 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 56658 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-LCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1535 ./libtest/libtests lib1535 http://127.0.0.1:40129/1535 > log/7/stdout1535 2> log/7/stderr1535 ength: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd auth_required Testnum 1533 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1533 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1533 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1534 ./libtest/libtests lib1534 http://127.0.0.1:42781/1534 > log/1/stdout1534 2> log/1/stderr1534 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1536 ./libtest/libtests lib1536 http://127.0.0.1:43789/1536 > log/2/stdout1536 2> log/2/stderr1536 test 1537...[libcurl URL escape/unescape tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1537 ./libtest/libtests lib1537 - > log/3/stdout1537 2> log/3/stderr1537 1537: stdout FAILED: --- log/3/check-expected 2025-09-11 10:34:01.938879909 +0000 +++ log/3/check-generated 2025-09-11 10:34:01.938879909 +0000 @@ -1,8 +0,0 @@ -%2F%3A%3B%3C%3D%3E%3F%91%A2%B3%C4%D5%E6%F7[LF] -%2F%3A%3B%3C%3D%3E%3F%91%A2%B3%C4%D5%E6%F7[LF] -outlen == 14[LF] -unescape == original? YES[LF] -[old] outlen == 14[LF] -[old] unescape == original? YES[LF] -escape -1 length: (nil)[LF] -unescape -1 length: (nil) 2017[LF] == Contents of files in the log/3/ dir after test 1537 === Start of file check-expected %2F%3A%3B%3C%3D%3E%3F%91%A2%B3%C4%D5%E6%F7[LF] %2F%3A%3B%3C%3D%3E%3F%91%A2%B3%C4%D5%E6%F7[LF] outlen == 14[LF] unescape == original? YES[LF] [old] outlen == 14[LF] [old] unescape == original? YES[LF] escape -1 length: (nil)[LF] unescape -1 length: (nil) 2017[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1537 ./libtest/libtests lib1537 - > log/3/stdout1537 2> log/3/stderr1537 === End of file commands.log === Start of file server.cmd Testnum 1537 === End of file server.cmd === Start of file valgrind1537 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1537 test 1535...[Test CURLINFO_RESPONSE_CODE CURLINFO_PROTOCOL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1535 ./libtest/libtests lib1535 http://127.0.0.1:40129/1535 > log/7/stdout1535 2> log/7/stderr1535 1535: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1535 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1535 ./libtest/libtests lib1535 http://127.0.0.1:40129/1535 > log/7/stdout1535 2> log/7/stderr1535 === End of file commands.log === Start of file http_server.log 10:34:00.909955 ====> Client connect 10:34:00.910822 accept_connection 3 returned 4 10:34:00.911158 accept_connection 3 returned 0 10:34:00.911350 Read 93 bytes 10:34:00.911479 Process 93 bytes request 10:34:00.911579 Got request: GET /verifiedserver HTTP/1.1 10:34:00.911660 Are-we-friendly question received 10:34:00.911917 Wrote request (93 bytes) input to log/7/server.input 10:34:00.912123 Identifying ourselves as friends 10:34:00.912893 Response sent (56 bytes) and written to log/7/server.response 10:34:00.913118 special request received, no persistency 10:34:00.913192 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37020 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1535 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1535 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1535 test 1534...[CURLINFO_FILETIME init and reset] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1534 ./libtest/libtests lib1534 http://127.0.0.1:42781/1534 > log/1/stdout1534 2> log/1/stderr1534 1534: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1534 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1534 ./libtest/libtests lib1534 http://127.0.0.1:42781/1534 > log/1/stdout1534 2> log/1/stderr1534 === End of file commands.log === Start of file http_server.log 10:34:00.855164 ====> Client connect 10:34:00.855564 accept_connection 3 returned 4 10:34:00.855823 accept_connection 3 returned 0 10:34:00.855979 Read 93 bytes 10:34:00.856079 Process 93 bytes request 10:34:00.856188 Got request: GET /verifiedserver HTTP/1.1 10:34:00.856284 Are-we-friendly question received 10:34:00.856640 Wrote request (93 bytes) input to log/1/server.input 10:34:00.856889 Identifying ourselves as friends 10:34:00.857939 Response sent (57 bytes) and written to log/1/server.response 10:34:00.858141 special request received, no persistency 10:34:00.858244 ====> Client discCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1531 ./libtest/libtests lib1531 127.0.0.1:39357/1531 > log/6/stdout1531 2> log/6/stderr1531 onnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 55048 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 1534 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1534 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1534 test 1536...[Test CURLINFO_RESPONSE_CODE CURLINFO_SCHEME] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1536 ./libtest/libtests lib1536 http://127.0.0.1:43789/1536 > log/2/stdout1536 2> log/2/stderr1536 1536: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1536 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1536 ./libtest/libtests lib1536 http://127.0.0.1:43789/1536 > log/2/stdout1536 2> log/2/stderr1536 === End of file commands.log === Start of file http_server.log 10:34:00.942867 ====> Client connect 10:34:00.943165 accept_connection 3 returned 4 10:34:00.943331 accept_connection 3 returned 0 10:34:00.943451 Read 93 bytes 10:34:00.943528 Process 93 bytes request 10:34:00.943612 Got request: GET /verifiedserver HTTP/1.1 10:34:00.943675 Are-we-friendly question received 10:34:00.943882 Wrote request (93 bytes) input to log/2/server.input 10:34:00.944033 Identifying ourselves as friends 10:34:00.944676 Response sent (56 bytes) and written to log/2/server.response 10:34:00.944801 special request received, no persistency 10:34:00.944862 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 32988 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1536 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1536 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1536 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http-server.pl --keepalive 30 --pidfile "log/6/server/http_server.pid" --logfile "log/6/http_server.log" --logdir "log/6" --portfile log/6/server/http_server.port --config log/6/server.cmd --ipv4 --port 0 --srcdir "/build/curl/src/curl/tests" RUN: HTTP server is on PID 155301 port 39357 * pid http => 155301 155301 test 1531...[CURLOPT_POSTFIELDS with binary data set after multi_add_handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1531 ./libtest/libtests lib1531 127.0.0.1:39357/1531 > log/6/stdout1531 2> log/6/stderr1531 1531: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1531 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1531 ./libtest/libtests lib1531 127.0.0.1:39357/1531 > log/6/stdout1531 2> log/6/stderr1531 === End of file commands.log === Start of file http_server.log 10:34:00.491398 Running HTTP IPv4 version on port 39357 10:34:00.492077 Wrote pid 155301 to log/6/server/http_server.pid 10:34:00.492594 Wrote port 39357 to log/6/server/http_server.port === End of file http_server.log === Start of file server.cmd Testnum 1531 === End of file server.cmd === Start of file valgrind1531 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1538 ./libtest/libtests lib1538 - > log/5/stdout1538 2> log/5/stderr1538 ne. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1531 test 1538...[libcurl strerror API call tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1538 ./libtest/libtests lib1538 - > log/5/stdout1538 2> log/5/stderr1538 1538: stdout FAILED: --- log/5/check-expected 2025-09-11 10:34:02.310887314 +0000 +++ log/5/check-generated 2025-09-11 10:34:02.310887314 +0000 @@ -1,158 +0,0 @@ -e0: No error[LF] -e1: Unsupported protocol[LF] -e2: Failed initialization[LF] -e3: URL using bad/illegal format or missing URL[LF] -e4: A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.[LF] -e5: Could not resolve proxy name[LF] -e6: Could not resolve hostname[LF] -e7: Could not connect to server[LF] -e8: Weird server reply[LF] -e9: Access denied to remote resource[LF] -e10: FTP: The server failed to connect to data port[LF] -e11: FTP: unknown PASS reply[LF] -e12: FTP: Accepting server connect has timed out[LF] -e13: FTP: unknown PASV reply[LF] -e14: FTP: unknown 227 response format[LF] -e15: FTP: cannot figure out the host in the PASV response[LF] -e16: Error in the HTTP2 framing layer[LF] -e17: FTP: could not set file type[LF] -e18: Transferred a partial file[LF] -e19: FTP: could not retrieve (RETR failed) the specified file[LF] -e20: Unknown error[LF] -e21: Quote command returned error[LF] -e22: HTTP response code said error[LF] -e23: Failed writing received data to disk/application[LF] -e24: Unknown error[LF] -e25: Upload failed (at start/before it took off)[LF] -e26: Failed to open/read local data from file/application[LF] -e27: Out of memory[LF] -e28: Timeout was reached[LF] -e29: Unknown error[LF] -e30: FTP: command PORT failed[LF] -e31: FTP: command REST failed[LF] -e32: Unknown error[LF] -e33: Requested range was not delivered by the server[LF] -e34: Unknown error[LF] -e35: SSL connect error[LF] -e36: Could not resume download[LF] -e37: Could not read a file:// file[LF] -e38: LDAP: cannot bind[LF] -e39: LDAP: search failed[LF] -e40: Unknown error[LF] -e41: Unknown error[LF] -e42: Operation was aborted by an application callback[LF] -e43: A libcurl function was given a bad argument[LF] -e44: Unknown error[LF] -e45: Failed binding local connection end[LF] -e46: Unknown error[LF] -e47: Number of redirects hit maximum amount[LF] -e48: An unknown option was passed in to libcurl[LF] -e49: Malformed option provided in a setopt[LF] -e50: Unknown error[LF] -e51: Unknown error[LF] -e52: Server returned nothing (no headers, no data)[LF] -e53: SSL crypto engine not found[LF] -e54: Can not set SSL crypto engine as default[LF] -e55: Failed sending data to the peer[LF] -e56: Failure when receiving data from the peer[LF] -e57: Unknown error[LF] -e58: Problem with the local SSL certificate[LF] -e59: Could not use specified SSL cipher[LF] -e60: SSL peer certificate or SSH remote key was not OK[LF] -e61: Unrecognized or bad HTTP Content or Transfer-Encoding[LF] -e62: Unknown error[LF] -e63: Maximum file size exceeded[LF] -e64: Requested SSL level failed[LF] -e65: Send failed since rewinding of the data stream failed[LF] -e66: Failed to initialise SSL crypto engine[LF] -e67: Login denied[LF] -e68: TFTP: File Not Found[LF] -e69: TFTP: Access Violation[LF] -e70: Disk full or allocation exceeded[LF] -e71: TFTP: Illegal operation[LF] -e72: TFTP: Unknown transfer ID[LF] -e73: Remote file already exists[LF] -e74: TFTP: No such user[LF] -e75: Unknown error[LF] -e76: Unknown error[LF] -e77: Problem with the SSL CA cert (path? access rights?)[LF] -e78: Remote file not found[LF] -e79: Error in the SSH layer[LF] -e80: Failed to shut down the SSL connection[LF] -e81: Socket not ready for send/recv[LF] -e82: Failed to load CRL file (path? access rights?, format?)[LF] -e83: Issuer check against peer certificate failed[LF] -e84: FTP: The server did not accept the PRET command.[LF] -e85: RTSP CSeq mismatch or invalid CSeq[LF] -e86: RTSP session error[LF] -e87: Unable to parse FTP file list[LF] -e88: Chunk callback failed[LF] -e89: The max connection limit is reached[LF] -e90: SSL public key does not match pinned public key[LF] -e91: SSL server certificate status verification FAILED[LF] -e92: Stream error in the HTTP/2 framing layer[LF] -e93: API function called from within callback[LF] -e94: An authentication function returned an error[LF] -e95: HTTP/3 error[LF] -e96: QUIC connection error[LF] -e97: proxy handshake error[LF] -e98: SSL Client Certificate required[LF] -e99: Unrecoverable error in select/poll[LF] -e100: A value or data field grew larger than allowed[LF] -e101: ECH attempted but failed[LF] -e102: Unknown error[LF] -m-1: Please call curl_multi_perform() soon[LF] -m0: No error[LF] -m1: Invalid multi handle[LF] -m2: Invalid easy handle[LF] -m3: Out of memory[LF] -m4: Internal error[LF] -m5: Invalid socket argument[LF] -m6: Unknown option[LF] -m7: The easy handle is already added to a multi handle[LF] -m8: API function called from within callback[LF] -m9: Wakeup is unavailable or failed[LF] -m10: A libcurl function was given a bad argument[LF] -m11: Operation was aborted by an application callback[LF] -m12: Unrecoverable error in select/poll[LF] -m13: Unknown error[LF] -s0: No error[LF] -s1: Unknown share option[LF] -s2: Share currently in use[LF] -s3: Invalid share handle[LF] -s4: Out of memory[LF] -s5: Feature not enabled in this library[LF] -s6: CURLSHcode unknown[LF] -u0: No error[LF] -u1: An invalid CURLU pointer was passed as argument[LF] -u2: An invalid 'part' argument was passed as argument[LF] -u3: Malformed input to a URL function[LF] -u4: Port number was not a decimal number between 0 and 65535[LF] -u5: Unsupported URL scheme[LF] -u6: URL decode error, most likely because of rubbish in the input[LF] -u7: A memory function failed[LF] -u8: Credentials was passed in the URL when prohibited[LF] -u9: An unknown part ID was passed to a URL API function[LF] -u10: No scheme part in the URL[LF] -u11: No user part in the URL[LF] -u12: No password part in the URL[LF] -u13: No options part in the URL[LF] -u14: No host part in the URL[LF] -u15: No port part in the URL[LF] -u16: No query part in the URL[LF] -u17: No fragment part in the URL[LF] -u18: No zoneid part in the URL[LF] -u19: Bad file:// URL[LF] -u20: Bad fragment[LF] -u21: Bad hostname[LF] -u22: Bad IPv6 address[LF] -u23: Bad login part[LF] -u24: Bad password[LF] -u25: Bad path[LF] -u26: Bad query[LF] -u27: Bad scheme[LF] -u28: Unsupported number of slashes following scheme[LF] -u29: Bad user[LF] -u30: libcurl lacks IDN support[LF] -u31: A value or data field is larger than allowed[LF] -u32: CURLUcode unknown[LF] == Contents of files in the log/5/ dir after test 1538 === Start of file check-expected e0: No error[LF] e1: Unsupported protocol[LF] e2: Failed initialization[LF] e3: URL using bad/illegal format or missing URL[LF] e4: A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.[LF] e5: Could not resolve proxy name[LF] e6: Could not resolve hostname[LF] e7: Could not connect to server[LF] e8: Weird server reply[LF] e9: Access denied to remote resource[LF] e10: FTP: The server failed to connect to data port[LF] e11: FTP: unknown PASS reply[LF] e12: FTP: Accepting server connect has timed out[LF] e13: FTP: unknown PASV reply[LF] e14: FTP: unknown 227 response format[LF] e15: FTP: cannot figure out the host in the PASV response[LF] e16: Error in the HTTP2 framing layer[LF] e17: FTP: could not set file type[LF] e18: Transferred a partial file[LF] e19: FTP: could not retrieve (RETR failed) the specified file[LF] e20: Unknown error[LF] e21: Quote command returned error[LF] e22: HTTP response code said error[LF] e23: Failed writing received data to disk/application[LF] e24: Unknown error[LF] e25: Upload failed (at start/before it took off)[LF] e26: Failed to open/read local data from file/application[LF] e27: Out of memory[LF] e28: Timeout was reached[LF] e29: Unknown error[LF] e30: FTP: command PORT failed[LF] e31: FTP: command REST failed[LF] e32: Unknown error[LF] e33: Requested range was not deCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1539 ./libtest/libtests lib1514 http://127.0.0.1:36757/1539 > log/4/stdout1539 2> log/4/stderr1539 livered by the server[LF] e34: Unknown error[LF] e35: SSL connect error[LF] e36: Could not resume download[LF] e37: Could not read a file:// file[LF] e38: LDAP: cannot bind[LF] e39: LDAP: search failed[LF] e40: Unknown error[LF] e41: Unknown error[LF] e42: Operation was aborted by an application callback[LF] e43: A libcurl function was given a bad argument[LF] e44: Unknown error[LF] e45: Failed binding local connection end[LF] e46: Unknown error[LF] e47: Number of redirects hit maximum amount[LF] e48: An unknown option was passed in to libcurl[LF] e49: Malformed option provided in a setopt[LF] e50: Unknown error[LF] e51: Unknown error[LF] e52: Server returned nothing (no headers, no data)[LF] e53: SSL crypto engine not found[LF] e54: Can not set SSL crypto engine as default[LF] e55: Failed sending data to the peer[LF] e56: Failure when receiving data from the peer[LF] e57: Unknown error[LF] e58: Problem with the local SSL certificate[LF] e59: Could not use specified SSL cipher[LF] e60: SSL peer certificate or SSH remote key was not OK[LF] e61: Unrecognized or bad HTTP Content or Transfer-Encoding[LF] e62: Unknown error[LF] e63: Maximum file size exceeded[LF] e64: Requested SSL level failed[LF] e65: Send failed since rewinding of the data stream failed[LF] e66: Failed to initialise SSL crypto engine[LF] e67: Login denied[LF] e68: TFTP: File Not Found[LF] e69: TFTP: Access Violation[LF] e70: Disk full or allocation exceeded[LF] e71: TFTP: Illegal operation[LF] e72: TFTP: Unknown transfer ID[LF] e73: Remote file already exists[LF] e74: TFTP: No such user[LF] e75: Unknown error[LF] e76: Unknown error[LF] e77: Problem with the SSL CA cert (path? access rights?)[LF] e78: Remote file not found[LF] e79: Error in the SSH layer[LF] e80: Failed to shut down the SSL connection[LF] e81: Socket not ready for send/recv[LF] e82: Failed to load CRL file (path? access rights?, format?)[LF] e83: Issuer check against peer certificate failed[LF] e84: FTP: The server did not accept the PRET command.[LF] e85: RTSP CSeq mismatch or invalid CSeq[LF] e86: RTSP session error[LF] e87: Unable to parse FTP file list[LF] e88: Chunk callback failed[LF] e89: The max connection limit is reached[LF] e90: SSL public key does not match pinned public key[LF] e91: SSL server certificate status verification FAILED[LF] e92: Stream error in the HTTP/2 framing layer[LF] e93: API function called from within callback[LF] e94: An authentication function returned an error[LF] e95: HTTP/3 error[LF] e96: QUIC connection error[LF] e97: proxy handshake error[LF] e98: SSL Client Certificate required[LF] e99: Unrecoverable error in select/poll[LF] e100: A value or data field grew larger than allowed[LF] e101: ECH attempted but failed[LF] e102: Unknown error[LF] m-1: Please call curl_multi_perform() soon[LF] m0: No error[LF] m1: Invalid multi handle[LF] m2: Invalid easy handle[LF] m3: Out of memory[LF] m4: Internal error[LF] m5: Invalid socket argument[LF] m6: Unknown option[LF] m7: The easy handle is already added to a multi handle[LF] m8: API function called from within callback[LF] m9: Wakeup is unavailable or failed[LF] m10: A libcurl function was given a bad argument[LF] m11: Operation was aborted by an application callback[LF] m12: Unrecoverable error in select/poll[LF] m13: Unknown error[LF] s0: No error[LF] s1: Unknown share option[LF] s2: Share currently in use[LF] s3: Invalid share handle[LF] s4: Out of memory[LF] s5: Feature not enabled in this library[LF] s6: CURLSHcode unknown[LF] u0: No error[LF] u1: An invalid CURLU pointer was passed as argument[LF] u2: An invalid 'part' argument was passed as argument[LF] u3: Malformed input to a URL function[LF] u4: Port number was not a decimal number between 0 and 65535[LF] u5: Unsupported URL scheme[LF] u6: URL decode error, most likely because of rubbish in the input[LF] u7: A memory function failed[LF] u8: Credentials was passed in the URL when prohibited[LF] u9: An unknown part ID was passed to a URL API function[LF] u10: No scheme part in the URL[LF] u11: No user part in the URL[LF] u12: No password part in the URL[LF] u13: No options part in the URL[LF] u14: No host part in the URL[LF] u15: No port part in the URL[LF] u16: No query part in the URL[LF] u17: No fragment part in the URL[LF] u18: No zoneid part in the URL[LF] u19: Bad file:// URL[LF] u20: Bad fragment[LF] u21: Bad hostname[LF] u22: Bad IPv6 address[LF] u23: Bad login part[LF] u24: Bad password[LF] u25: Bad path[LF] u26: Bad query[LF] u27: Bad scheme[LF] u28: Unsupported number of slashes following scheme[LF] u29: Bad user[LF] u30: libcurl lacks IDN support[LF] u31: A value or data field is larger than allowed[LF] u32: CURLUcode unknown[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1538 ./libtest/libtests lib1538 - > log/5/stdout1538 2> log/5/stderr1538 === End of file commands.log === Start of file server.cmd Testnum 1538 === End of file server.cmd === Start of file valgrind1538 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1538 test 1539...[HTTP 1.0 POST with read callback and unknown data size] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1539 ./libtest/libtests lib1514 http://127.0.0.1:36757/1539 > log/4/stdout1539 2> log/4/stderr1539 libtests returned 1, when expecting 25 1539: exit FAILED == Contents of files in the log/4/ dir after test 1539 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1539 ./libtest/libtests lib1514 http://127.0.0.1:36757/1539 > log/4/stdout1539 2> log/4/stderr1539 === End of file commands.log === Start of file http_server.log 10:34:02.405688 ====> Client connect 10:34:02.406071 accept_connection 3 returned 4 10:34:02.406289 accept_connection 3 returned 0 10:34:02.406441 Read 93 bytes 10:34:02.406523 Process 93 bytes request 10:34:02.406607 Got request: GET /verifiedserver HTTP/1.1 10:34:02.406673 Are-we-friendly question received 10:34:02.406895 Wrote request (93 bytes) input to log/4/server.input 10:34:02.407060 Identifying ourselves as friends 10:34:02.407824 Response sent (56 bytes) and written to log/4/server.response 10:34:02.407968 special request received, no persistency 10:34:02.408050 ====> Client disconnect 0 === End of file http_server.log === Start of file CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1544.pl /build/curl/src/curl/tests/.. > log/3/stdout1544 2> log/3/stderr1544 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1540 ./libtest/libtests lib1540 http://127.0.0.1:36007/1540 > log/8/stdout1540 2> log/8/stderr1540 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1541 ./libtest/libtests lib1541 http://127.0.0.1:40129/1541 > log/7/stdout1541 2> log/7/stderr1541 http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 49874 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1539 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1539 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1539 test 1544...[Verify all string options are translated by OS/400 wrapper] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/test1544.pl /build/curl/src/curl/tests/.. > log/3/stdout1544 2> log/3/stderr1544 valgrind SKIPPED -------e--- OK (1457 out of 1725, remaining: 00:37, took 0.415s, duration: 03:26) test 1540...[chunked with trailers and pausing the receive] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1540 ./libtest/libtests lib1540 http://127.0.0.1:36007/1540 > log/8/stdout1540 2> log/8/stderr1540 1540: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1540 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1540 ./libtest/libtests lib1540 http://127.0.0.1:36007/1540 > log/8/stdout1540 2> log/8/stderr1540 === End of file commands.log === Start of file http_server.log 10:34:01.742336 ====> Client connect 10:34:01.742649 accept_connection 3 returned 4 10:34:01.742822 accept_connection 3 returned 0 10:34:01.742996 Read 93 bytes 10:34:01.743092 Process 93 bytes request 10:34:01.743186 Got request: GET /verifiedserver HTTP/1.1 10:34:01.743288 Are-we-friendly question received 10:34:01.743571 Wrote request (93 bytes) input to log/8/server.input 10:34:01.743772 Identifying ourselves as friends 10:34:01.744692 Response sent (56 bytes) and written to log/8/server.response 10:34:01.744894 special request received, no persistency 10:34:01.745268 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 56668 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1540 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1540 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1540 test 1541...[chunked with trailers and pausing the receive] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1541 ./libtest/libtests lib1541 http://127.0.0.1:40129/1541 > log/7/stdout1541 2> log/7/stderr1541 1541: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1541 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1541 ./libtest/libtests lib1541 http://127.0.0.1:40129/1541 > log/7/stdout1541 2> log/7/stderr1541 === End of file commands.log === Start of file http_server.log 10:34:01.784118 ====> Client connect 10:34:01.784488 accept_connection 3 returned 4 10:34:01.784703 accept_connection 3 returned 0 10:34:01.784875 Read 93 bytes 10:34:01.789204 Process 93 bytes request 10:34:01.789411 Got request: GET /verifiedserver HTTP/1.1 10:34:01.789493 Are-we-friendly question received 10:34:01.789773 Wrote request (93 bytes) input to log/7/server.input 10:34:01.789956 Identifying ourselves as friends 10:34:01.790641 Response sent (56 bytes) and written to log/7/server.response 10:34:01.790769 special request received, no persistency 10:34:01.790837 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37030 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1542 ./libtest/libtests lib1542 http://127.0.0.1:43789/1542 > log/2/stdout1542 2> log/2/stderr1542 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1545 ./libtest/libtests lib1545 http://127.0.0.1:39357/1545 > log/6/stdout1545 2> log/6/stderr1545 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1543 ./libtest/libtests lib1518 "http://127.0.0.1:42781/ /with/ space/ /file" > log/1/stdout1543 2> log/1/stderr1543 129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd writedelay: 10 Testnum 1541 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1541 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1541 test 1542...[connection reuse with CURLOPT_MAXLIFETIME_CONN] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1542 ./libtest/libtests lib1542 http://127.0.0.1:43789/1542 > log/2/stdout1542 2> log/2/stderr1542 1542: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1542 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1542 ./libtest/libtests lib1542 http://127.0.0.1:43789/1542 > log/2/stdout1542 2> log/2/stderr1542 === End of file commands.log === Start of file http_server.log 10:34:01.841352 ====> Client connect 10:34:01.841714 accept_connection 3 returned 4 10:34:01.841938 accept_connection 3 returned 0 10:34:01.842110 Read 93 bytes 10:34:01.842209 Process 93 bytes request 10:34:01.842299 Got request: GET /verifiedserver HTTP/1.1 10:34:01.842375 Are-we-friendly question received 10:34:01.842672 Wrote request (93 bytes) input to log/2/server.input 10:34:01.842875 Identifying ourselves as friends 10:34:01.843610 Response sent (56 bytes) and written to log/2/server.response 10:34:01.843750 special request received, no persistency 10:34:01.843814 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 32994 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1542 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1542 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1542 test 1545...[use curl_formadd() data twice with unreadable file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1545 ./libtest/libtests lib1545 http://127.0.0.1:39357/1545 > log/6/stdout1545 2> log/6/stderr1545 libtests returned 1, when expecting 0 1545: exit FAILED == Contents of files in the log/6/ dir after test 1545 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1545 ./libtest/libtests lib1545 http://127.0.0.1:39357/1545 > log/6/stdout1545 2> log/6/stderr1545 === End of file commands.log === Start of file http_server.log 10:34:02.078941 ====> Client connect 10:34:02.079256 accept_connection 3 returned 4 10:34:02.079433 accept_connection 3 returned 0 10:34:02.079558 Read 93 bytes 10:34:02.079639 Process 93 bytes request 10:34:02.079720 Got request: GET /verifiedserver HTTP/1.1 10:34:02.079794 Are-we-friendly question received 10:34:02.080008 Wrote request (93 bytes) input to log/6/server.input 10:34:02.080224 Identifying ourselves as friends 10:34:02.081198 Response sent (57 bytes) and written to log/6/server.response 10:34:02.081416 special request received, no persistency 10:34:02.081493 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 57638 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 1545 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind1545 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1545 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1546 ../src/curl -q --output log/5/curl1546.out --include --trace-ascii log/5/trace1546 --trace-time http://127.0.0.1:41733/1546 --tr-encoding > log/5/stdout1546 2> log/5/stderr1546 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1547 ../src/curl -q --output log/4/curl1547.out --include --trace-ascii log/4/trace1547 --trace-time ftp://127.0.0.1:42635/test-1547/ -P 127.0.0.1 --ftp-pasv > log/4/stdout1547 2> log/4/stderr1547 test 1543...[CURLOPT_CURLU, URL with space and CURLINFO_EFFECTIVE_URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1543 ./libtest/libtests lib1518 "http://127.0.0.1:42781/ /with/ space/ /file" > log/1/stdout1543 2> log/1/stderr1543 1543: stdout FAILED: --- log/1/check-expected 2025-09-11 10:34:03.154904115 +0000 +++ log/1/check-generated 2025-09-11 10:34:03.150904036 +0000 @@ -1,5 +0,0 @@ -res 0[LF] -status 200[LF] -redirects 1[LF] -effectiveurl http://127.0.0.1:42781/%20/with/%20space/15430002[LF] -redirecturl blank[LF] == Contents of files in the log/1/ dir after test 1543 === Start of file check-expected res 0[LF] status 200[LF] redirects 1[LF] effectiveurl http://127.0.0.1:42781/%20/with/%20space/15430002[LF] redirecturl blank[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1543 ./libtest/libtests lib1518 "http://127.0.0.1:42781/ /with/ space/ /file" > log/1/stdout1543 2> log/1/stderr1543 === End of file commands.log === Start of file http_server.log 10:34:01.954387 ====> Client connect 10:34:01.954721 accept_connection 3 returned 4 10:34:01.954927 accept_connection 3 returned 0 10:34:01.955085 Read 93 bytes 10:34:01.955177 Process 93 bytes request 10:34:01.955272 Got request: GET /verifiedserver HTTP/1.1 10:34:01.955359 Are-we-friendly question received 10:34:01.955623 Wrote request (93 bytes) input to log/1/server.input 10:34:01.955831 Identifying ourselves as friends 10:34:01.956558 Response sent (57 bytes) and written to log/1/server.response 10:34:01.956708 special request received, no persistency 10:34:01.956790 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 55064 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 1543 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1543 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1543 test 1546...[HTTP transfer-encoding wrong order] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1546 ../src/curl -q --output log/5/curl1546.out --include --trace-ascii log/5/trace1546 --trace-time http://127.0.0.1:41733/1546 --tr-encoding > log/5/stdout1546 2> log/5/stderr1546 1546: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1546 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1546 ../src/curl -q --output log/5/curl1546.out --include --trace-ascii log/5/trace1546 --trace-time http://127.0.0.1:41733/1546 --tr-encoding > log/5/stdout1546 2> log/5/stderr1546 === End of file commands.log === Start of file http_server.log 10:34:03.200035 ====> Client connect 10:34:03.200473 accept_connection 3 returned 4 10:34:03.200686 accept_connection 3 returned 0 10:34:03.202517 Read 93 bytes 10:34:03.202696 Process 93 bytes request 10:34:03.202792 Got request: GET /verifiedserver HTTP/1.1 10:34:03.202871 Are-we-friendly question received 10:34:03.203148 Wrote request (93 bytes) input to log/5/server.input 10:34:03.203360 Identifying ourselves as friends 10:34:03.204090 Response sent (56 bytes) and written to log/5/server.response 10:34:03.204212 special request received, no persistency 10:34:03.204280 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 41028 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1546 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1546 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1546 test 1547...[FTP dir list PASV overriding PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1548 ../src/curl -q --output log/3/curl1548.out --include --trace-ascii log/3/trace1548 --trace-time -m 1 telnet://127.0.0.1:36933 log/3/stdout1548 2> log/3/stderr1548 curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1547 ../src/curl -q --output log/4/curl1547.out --include --trace-ascii log/4/trace1547 --trace-time ftp://127.0.0.1:42635/test-1547/ -P 127.0.0.1 --ftp-pasv > log/4/stdout1547 2> log/4/stderr1547 1547: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1547 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1547 ../src/curl -q --output log/4/curl1547.out --include --trace-ascii log/4/trace1547 --trace-time ftp://127.0.0.1:42635/test-1547/ -P 127.0.0.1 --ftp-pasv > log/4/stdout1547 2> log/4/stderr1547 === End of file commands.log === Start of file ftp_server.log 10:34:02.668139 ====> Client connect 10:34:02.669850 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:02.673278 < "USER anonymous" 10:34:02.674617 > "331 We are happy you popped in![CR][LF]" 10:34:02.677841 < "PASS ftp@example.com" 10:34:02.678466 > "230 Welcome you silly person[CR][LF]" 10:34:02.681388 < "PWD" 10:34:02.682070 > "257 "/" is current directory[CR][LF]" 10:34:02.685115 < "EPSV" 10:34:02.685592 ====> Passive DATA channel requested by client 10:34:02.685940 DATA sockfilt for passive data channel starting... 10:34:02.700380 DATA sockfilt for passive data channel started (pid 156296) 10:34:02.701644 DATA sockfilt for passive data channel listens on port 41325 10:34:02.702324 > "229 Entering Passive Mode (|||41325|)[LF]" 10:34:02.702803 Client has been notified that DATA conn will be accepted on port 41325 10:34:02.706567 Client connects to port 41325 10:34:02.707161 ====> Client established passive DATA connection on port 41325 10:34:02.709128 < "TYPE I" 10:34:02.710509 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:02.713256 < "SIZE verifiedserver" 10:34:02.714071 > "213 17[CR][LF]" 10:34:02.717701 < "RETR verifiedserver" 10:34:02.718542 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:02.719949 =====> Closing passive DATA connection... 10:34:02.720522 Server disconnects passive DATA connection 10:34:02.724434 Server disconnected passive DATA connection 10:34:02.725058 DATA sockfilt for passive data channel quits (pid 156296) 10:34:02.727883 DATA sockfilt for passive data channel quit (pid 156296) 10:34:02.728456 =====> Closed passive DATA connection 10:34:02.729212 > "226 File transfer complete[CR][LF]" 10:34:02.775162 < "QUIT" 10:34:02.776663 > "221 bye bye baby[CR][LF]" 10:34:02.777586 MAIN sockfilt said DISC 10:34:02.780116 ====> Client disconnected 10:34:02.780934 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:03.334857 ====> Client connect 10:34:03.337823 Received DATA (on stdin) 10:34:03.338091 > 160 bytes data, server => client 10:34:03.338233 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:03.338322 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:03.338400 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:03.339305 < 16 bytes data, client => server 10:34:03.339539 'USER anonymous\r\n' 10:34:03.341393 Received DATA (on stdin) 10:34:03.341693 > 33 bytes data, server => client 10:34:03.342552 '331 We are happy you popped in!\r\n' 10:34:03.343525 < 22 bytes data, client => server 10:34:03.343798 'PASS ftp@example.com\r\n' 10:34:03.346406 Received DATA (on stdin) 10:34:03.346642 > 30 bytes data, server => client 10:34:03.346752 '230 Welcome you silly person\r\n' 10:34:03.347926 < 5 bytes data, client => server 10:34:03.348162 'PWD\r\n' 10:34:03.349975 Received DATA (on stdin) 10:34:03.350166 > 30 bytes data, server => client 10:34:03.350281 '257 "/" is current directory\r\n' 10:34:03.351091 < 6 bytes data, client => server 10:34:03.351326 'EPSV\r\n' 10:34:03.370771 Received DATA (on stdin) 10:34:03.371071 > 38 bytes data, server => client 10:34:03.371242 '229 Entering Passive Mode (|||41325|)\n' 10:34:03.375243 < 8 bytes data, client => server 10:34:03.375478 'TYPE I\r\n' 10:34:03.377269 Received DATA (on stdin) 10:34:03.377554 > 33 bytes data, server => client 10:34:03.378485 '200 I modify TYPE as you wanted\r\n' 10:34:03.379537 < 21 bytes data, client => server 10:34:03.379749 'SIZE verifiedserver\r\n' 10:34:03.382031 Received DATA (on stdin) 10:34:03.382221 > 8 bytes data, server => client 10:34:03.382332 '213 17\r\n' 10:34:03.383242 < 21 bytes data, client => server 10:34:03.383550 'RETR verifiedserver\r\n' 10:34:03.388576 Received DATA (on stdin) 10:34:03.389027 > 29 bytes data, server => client 10:34:03.389228 '150 Binary junk (17 bytes).\r\n' 10:34:03.397736 Received DATA (on stdin) 10:34:03.398074 > 28 bytes data, server => client 10:34:03.398236 '226 File transfer complete\r\n' 10:34:03.441082 < 6 bytes data, client => server 10:34:03.441327 'QUIT\r\n' 10:34:03.443173 Received DATA (on stdin) 10:34:03.443363 > 18 bytes data, server => client 10:34:03.443563 '221 bye bye baby\r\n' 10:34:03.444256 ====> Client disconnect 10:34:03.445545 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:02.365033 Running IPv4 version 10:34:02.365712 Listening on port 41325 10:34:02.366194 Wrote pid 156296 to log/4/server/ftp_sockdata.pid 10:34:02.367310 Received PING (on stdin) 10:34:02.368353 Received PORT (on stdin) 10:34:02.372776 ====> Client connect 10:34:02.389876 Received DATA (on stdin) 10:34:02.390191 > 17 bytes data, server => client 10:34:02.390339 'WE ROOLZ: 79516\r\n' 10:34:02.390825 Received DISC (on stdin) 10:34:02.391151 ====> Client forcibly disconnected 10:34:02.393010 Received QUIT (on stdin) 10:34:02.393290 quits 10:34:02.393894 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 1547 === End of file server.cmd === Start of file valgrind1547 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1547 test 1548...[TELNET read stdin without upload file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1548 ../src/curl -q --output log/3/curl1548.out --include --trace-ascii log/3/trace1548 --trace-time -m 1 telnet://127.0.0.1:36933 log/3/stdout1548 2> log/3/stderr1548 curl returned 1, when expecting 28 1548: exit FAILED == Contents of files in the log/3/ dir after test 1548 === Start of fiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1550 ./libtest/libtests lib1550 - > log/7/stdout1550 2> log/7/stderr1550 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1549 ./libtest/libtests lib1549 http://127.0.0.1:36007/1549 > log/8/stdout1549 2> log/8/stderr1549 le commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1548 ../src/curl -q --output log/3/curl1548.out --include --trace-ascii log/3/trace1548 --trace-time -m 1 telnet://127.0.0.1:36933 log/3/stdout1548 2> log/3/stderr1548 === End of file commands.log === Start of file http_server.log 10:34:02.490684 ====> Client connect 10:34:02.491086 accept_connection 3 returned 4 10:34:02.491314 accept_connection 3 returned 0 10:34:02.491464 Read 93 bytes 10:34:02.491564 Process 93 bytes request 10:34:02.491659 Got request: GET /verifiedserver HTTP/1.1 10:34:02.491746 Are-we-friendly question received 10:34:02.492223 Wrote request (93 bytes) input to log/3/server.input 10:34:02.492550 Identifying ourselves as friends 10:34:02.493618 Response sent (56 bytes) and written to log/3/server.response 10:34:02.493787 special request received, no persistency 10:34:02.493864 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 38454 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1548 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file stdin-for-1548 GET /we/want/1548 HTTP/1.0 === End of file stdin-for-1548 === Start of file valgrind1548 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1548 test 1550...[verify setting pipelining blocklisting options] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1550 ./libtest/libtests lib1550 - > log/7/stdout1550 2> log/7/stderr1550 libtests returned 1, when expecting 0 1550: exit FAILED == Contents of files in the log/7/ dir after test 1550 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1550 ./libtest/libtests lib1550 - > log/7/stdout1550 2> log/7/stderr1550 === End of file commands.log === Start of file server.cmd Testnum 1550 === End of file server.cmd === Start of file valgrind1550 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1550 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1551 ./libtest/libtests lib1551 http://127.0.0.1:43789/1551 > log/2/stdout1551 2> log/2/stderr1551 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1552 ./libtest/libtests lib1552 'imap://127.0.0.1:34025/1552/;MAILINDEX=1' > log/6/stdout1552 2> log/6/stderr1552 test 1549...[Receive expired cookies and CURLINFO_COOKIELIST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1549 ./libtest/libtests lib1549 http://127.0.0.1:36007/1549 > log/8/stdout1549 2> log/8/stderr1549 1549: stderr FAILED: --- log/8/check-expected 2025-09-11 10:34:03.882918607 +0000 +++ log/8/check-generated 2025-09-11 10:34:03.882918607 +0000 @@ -1,3 +0,0 @@ -URL: http://127.0.0.1:36007/1549[CR][LF] -0 cookies[CR][LF] -Test ended with result 0[CR][LF] == Contents of files in the log/8/ dir after test 1549 === Start of file check-expected URL: http://127.0.0.1:36007/1549[CR][LF] 0 cookies[CR][LF] Test ended with result 0[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1549 ./libtest/libtests lib1549 http://127.0.0.1:36007/1549 > log/8/stdout1549 2> log/8/stderr1549 === End of file commands.log === Start of file http_server.log 10:34:02.712796 ====> Client connect 10:34:02.713343 accept_connection 3 returned 4 10:34:02.714142 accept_connection 3 returned 0 10:34:02.714405 Read 93 bytes 10:34:02.714531 Process 93 bytes request 10:34:02.714640 Got request: GET /verifiedserver HTTP/1.1 10:34:02.714742 Are-we-friendly question received 10:34:02.715083 Wrote request (93 bytes) input to log/8/server.input 10:34:02.715450 Identifying ourselves as friends 10:34:02.716420 Response sent (56 bytes) and written to log/8/server.response 10:34:02.716624 special request received, no persistency 10:34:02.716708 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 56678 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1549 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1549 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1549 test 1551...[re-run redirected transfer without setting URL again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1551 ./libtest/libtests lib1551 http://127.0.0.1:43789/1551 > log/2/stdout1551 2> log/2/stderr1551 1551: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1551 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1551 ./libtest/libtests lib1551 http://127.0.0.1:43789/1551 > log/2/stdout1551 2> log/2/stderr1551 === End of file commands.log === Start of file http_server.log 10:34:02.852316 ====> Client connect 10:34:02.852682 accept_connection 3 returned 4 10:34:02.852965 accept_connection 3 returned 0 10:34:02.853752 Read 93 bytes 10:34:02.853945 Process 93 bytes request 10:34:02.854045 Got request: GET /verifiedserver HTTP/1.1 10:34:02.854120 Are-we-friendly question received 10:34:02.854331 Wrote request (93 bytes) input to log/2/server.input 10:34:02.854500 Identifying ourselves as friends 10:34:02.854997 Response sent (56 bytes) and written to log/2/server.response 10:34:02.855150 special request received, no persistency 10:34:02.855232 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 33000 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1551 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1551 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1551 test 1552...[IMAP multi transfer error without curl_multi_remove_handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1552 ./libtest/libtests lib1552 'imap://127.0.0.1:34025/1552/;MAILINDEX=1' > log/6/stdout1552 2> log/6/stderr1552 libtests returned 1, when expecting 0 1552: exit FAILED == Contents of files in the log/6/ dir afterCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1553 ./libtest/libtests lib1553 imap://non-existing-host.haxx.se:33191/1553 > log/1/stdout1553 2> log/1/stderr1553 test 1552 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1552 ./libtest/libtests lib1552 'imap://127.0.0.1:34025/1552/;MAILINDEX=1' > log/6/stdout1552 2> log/6/stderr1552 === End of file commands.log === Start of file imap_server.log 10:34:03.322323 ====> Client connect 10:34:03.329761 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:34:03.333202 < "A001 CAPABILITY" 10:34:03.334499 > "A001 BAD Command[CR][LF]" 10:34:03.340436 < "A002 LIST "verifiedserver" *" 10:34:03.340930 LIST_imap got "verifiedserver" * 10:34:03.341541 > "* LIST () "/" "WE ROOLZ: 107147"[CR][LF]" 10:34:03.342028 > "A002 OK LIST Completed[CR][LF]" 10:34:03.342349 return proof we are we 10:34:03.391453 < "A003 LOGOUT" 10:34:03.394013 > "* BYE curl IMAP server signing off[CR][LF]" 10:34:03.394574 > "A003 OK LOGOUT completed[CR][LF]" 10:34:03.395839 MAIN sockfilt said DISC 10:34:03.396286 ====> Client disconnected 10:34:03.396829 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:34:03.989078 ====> Client connect 10:34:03.990881 Received DATA (on stdin) 10:34:03.991100 > 178 bytes data, server => client 10:34:03.997851 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:34:03.998117 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:34:03.998219 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:34:03.998291 'rve\r\n' 10:34:03.999223 < 17 bytes data, client => server 10:34:03.999428 'A001 CAPABILITY\r\n' 10:34:04.002389 Received DATA (on stdin) 10:34:04.002567 > 18 bytes data, server => client 10:34:04.002661 'A001 BAD Command\r\n' 10:34:04.006665 < 30 bytes data, client => server 10:34:04.006878 'A002 LIST "verifiedserver" *\r\n' 10:34:04.010212 Received DATA (on stdin) 10:34:04.010454 > 34 bytes data, server => client 10:34:04.010573 '* LIST () "/" "WE ROOLZ: 107147"\r\n' 10:34:04.010935 Received DATA (on stdin) 10:34:04.011105 > 24 bytes data, server => client 10:34:04.011221 'A002 OK LIST Completed\r\n' 10:34:04.057682 < 13 bytes data, client => server 10:34:04.057958 'A003 LOGOUT\r\n' 10:34:04.059362 Received DATA (on stdin) 10:34:04.059612 > 36 bytes data, server => client 10:34:04.061422 '* BYE curl IMAP server signing off\r\n' 10:34:04.062016 Received DATA (on stdin) 10:34:04.062205 > 26 bytes data, server => client 10:34:04.062316 'A003 OK LOGOUT completed\r\n' 10:34:04.062700 ====> Client disconnect 10:34:04.063741 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1552 === End of file server.cmd === Start of file valgrind1552 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1552 test 1553...[IMAP cleanup before a connection was created] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1553 ./libtest/libtests lib1553 imap://non-existing-host.haxx.se:33191/1553 > log/1/stdout1553 2> log/1/stderr1553 libtests returned 1, when expecting 0 1553: exit FAILED == Contents of files in the log/1/ dir after test 1553 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1553 ./libtest/libtests lib1553 imap://non-existing-host.haxx.se:33191/1553 > log/1/stdout1553 2> log/1/stderr1553 === End of file commands.log === Start of file imap_server.log 10:34:03.354656 ====> Client connect 10:34:03.356097 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:34:03.361680 < "A001 CAPABILITY" 10:34:03.362257 > "A001 BAD Command[CR][LF]" 10:34:03.367014 < "A002 LIST "verifiedserver" *" 10:34:03.367380 LIST_imap got "verifiedserver" * 10:34:03.367813 > "* LIST () "/" "WE ROOLZ: 114681"[CR][LF]" 10:34:03.368152 > "A002 OK LIST Completed[CR][LF]" 10:34:03.368354 return proof we are we 10:34:03.422107 < "A003 LOGOUT" 10:34:03.425431 > "* BYE curl IMAP server signing off[CR][LF]" 10:34:03.426151 > "A003 OK LOGOUT completed[CR][LF]" 10:34:03.427783 MAIN sockfilt said DISC 10:34:03.428565 ====> Client disconnected 10:34:03.429197 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:34:03.020659 ====> Client connect 10:34:03.023724 Received DATA (on stdin) 10:34:03.023983 > 178 bytes data, server => client 10:34:03.024161 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:34:03.024402 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:34:03.024511 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:34:03.024596 'rve\r\n' 10:34:03.026788 < 17 bytes data, client => server 10:34:03.027011 'A001 CAPABILITY\r\n' 10:34:03.030117 Received DATA (on stdin) 10:34:03.030325 > 18 bytes data, server => client 10:34:03.030427 'A001 BAD Command\r\n' 10:34:03.033610 < 30 bytes data, client => server 10:34:03.033835 'A002 LIST "verifiedserver" *\r\n' 10:34:03.036097 Received DATA (on stdin) 10:34:03.036331 > 34 bytes data, server => client 10:34:03.036508 '* LIST () "/" "WE ROOLZ: 114681"\r\n' 10:34:03.036869 Received DATA (on stdin) 10:34:03.037159 > 24 bytes data, server => client 10:34:03.037277 'A002 OK LIST Completed\r\n' 10:34:03.085654 < 13 bytes data, client => server 10:34:03.085877 'A003 LOGOUT\r\n' 10:34:03.090115 Received DATA (on stdin) 10:34:03.090342 > 36 bytes data, server => client 10:34:03.090567 '* BYE curl IMAP server signing off\r\n' 10:34:03.094066 Received DATA (on stdin) 10:34:03.094317 > 26 bytes data, server => client 10:34:03.094429 'A003 OK LOGOUT completed\r\n' 10:34:03.094833 ====> Client disconnect 10:34:03.095649 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1553 === End of file server.cmd === Start of file valgrind1553 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1557 ./libtest/libtests lib1557 hostname.invalid > log/7/stdout1557 2> log/7/stderr1557 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1554 ./libtest/libtests lib1554 http://127.0.0.1:41733/1554 > log/5/stdout1554 2> log/5/stderr1554 found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1553 test 1557...[Remove easy handle in pending connections doesn't leave dangling entry] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1557 ./libtest/libtests lib1557 hostname.invalid > log/7/stdout1557 2> log/7/stderr1557 libtests returned 1, when expecting 0 1557: exit FAILED == Contents of files in the log/7/ dir after test 1557 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1557 ./libtest/libtests lib1557 hostname.invalid > log/7/stdout1557 2> log/7/stderr1557 === End of file commands.log === Start of file server.cmd Testnum 1557 === End of file server.cmd === Start of file valgrind1557 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1557 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1556 ./libtest/libtests lib1556 http://127.0.0.1:36933/1556 > log/3/stdout1556 2> log/3/stderr1556 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1555 ./libtest/libtests lib1555 http://127.0.0.1:36757/1555 > log/4/stdout1555 2> log/4/stderr1555 test 1554...[HTTP with shared connection cache] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1554 ./libtest/libtests lib1554 http://127.0.0.1:41733/1554 > log/5/stdout1554 2> log/5/stderr1554 1554: data FAILED: --- log/5/check-expected 2025-09-11 10:34:04.446929834 +0000 +++ log/5/check-generated 2025-09-11 10:34:04.442929755 +0000 @@ -1,49 +0,0 @@ --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] -run 1: foobar and so on fun![LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] -run 1: foobar and so on fun![LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] -run 1: foobar and so on fun![LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock CONNECT[LF] -<- Mutex unlock CONNECT[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] --> Mutex lock SHARE[LF] -<- Mutex unlock SHARE[LF] == Contents of files in the log/5/ dir after test 1554 === Start of file check-expected -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] run 1: foobar and so on fun![LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] run 1: foobar and so on fun![LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] run 1: foobar and so on fun![LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock CONNECT[LF] <- Mutex unlock CONNECT[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] -> Mutex lock SHARE[LF] <- Mutex unlock SHARE[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1554 ./libtest/libtests lib1554 http://127.0.0.1:41733/1554 > log/5/stdout1554 2> log/5/stderr1554 === End of file commands.log === Start of file http_server.log 10:34:04.225446 ====> Client connect 10:34:04.225984 accept_connection 3 returned 4 10:34:04.226374 accept_connection 3 returned 0 10:34:04.233009 Read 93 bytes 10:34:04.233273 Process 93 bytes request 10:34:04.233386 Got request: GET /verifiedserver HTTP/1.1 10:34:04.233458 Are-we-friendly question received 10:34:04.233757 Wrote request (93 bytes) input to log/5/server.input 10:34:04.234018 Identifying ourselves as friends 10:34:04.234875 Response sent (56 bytes) and written to log/5/server.response 10:34:04.235021 special request received, no persistency 10:34:04.235092 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 41038 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1554 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1554 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1554 test 1556...[send long HTTP headers to header callback] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1556 ./libtest/libtests lib1556 http://127.0.0.1:36933/1556 > log/3/stdout1556 2> log/3/stderr1556 1556: stdout FAILED: --- log/3/check-expected 2025-09-11 10:34:04.610933099 +0000 +++ log/3/check-generated 2025-09-11 10:34:04.610933099 +0000 @@ -1,2 +0,0 @@ --foo-[LF] -Max = 100009[LF] == Contents of files in the log/3/ dir after test 1556 === Start of file check-expected -foo-[LF] Max = 100009[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1556 ./libtest/libtests lib1556 http://127.0.0.1:36933/1556 > log/3/stdout1556 2> log/3/stderr1556 === End of file commands.log === Start of file http_server.log 10:34:03.493618 ====> Client connect 10:34:03.493948 accept_connection 3 returned 4 10:34:03.494139 accept_connection 3 returned 0 10:34:03.494268 Read 93 bytes 10:34:03.494349 Process 93 bytes request 10:34:03.494437 Got request: GET /verifiedserver HTTP/1.1 10:34:03.494508 Are-we-friendly question received 10:34:03.494751 Wrote request (93 bytes) input to log/3/server.input 10:34:03.494932 Identifying ourselves as friends 10:34:03.495573 Response sent (56 bytes) and written to log/3/server.response 10:34:03.495682 special request received, no persistency 10:34:03.495752 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 38468 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1556 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1556 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1556 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1558 ./libtest/libtests lib1558 file:///build/curl/src/build-curl/tests/log/8/data1558 > log/8/stdout1558 2> log/8/stderr1558 test 1555...[verify api is protected against calls from callbacks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1555 ./libtest/libtests lib1555 http://127.0.0.1:36757/1555 > log/4/stdout1555 2> log/4/stderr1555 1555: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:04.670934293 +0000 +++ log/4/check-generated 2025-09-11 10:34:04.666934214 +0000 @@ -1,2 +0,0 @@ -curl_easy_recv returned 93[LF] -curl_easy_send returned 93[LF] == Contents of files in the log/4/ dir after test 1555 === Start of file check-expected curl_easy_recv returned 93[LF] curl_easy_send returned 93[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1555 ./libtest/libtests lib1555 http://127.0.0.1:36757/1555 > log/4/stdout1555 2> log/4/stderr1555 === End of file commands.log === Start of file http_server.log 10:34:04.442285 ====> Client connect 10:34:04.442692 accept_connection 3 returned 4 10:34:04.442901 accept_connection 3 returned 0 10:34:04.443061 Read 93 bytes 10:34:04.443175 Process 93 bytes request 10:34:04.443279 Got request: GET /verifiedserver HTTP/1.1 10:34:04.443369 Are-we-friendly question received 10:34:04.443633 Wrote request (93 bytes) input to log/4/server.input 10:34:04.443866 Identifying ourselves as friends 10:34:04.444803 Response sent (56 bytes) and written to log/4/server.response 10:34:04.449174 special request received, no persistency 10:34:04.449280 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 49882 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1555 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1555 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1555 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1559 ./libtest/libtests lib1559 - > log/2/stdout1559 2> log/2/stderr1559 test 1558...[CURLINFO_PROTOCOL for file:// transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1558 ./libtest/libtests lib1558 file:///build/curl/src/build-curl/tests/log/8/data1558 > log/8/stdout1558 2> log/8/stderr1558 1558: stdout FAILED: --- log/8/check-expected 2025-09-11 10:34:04.726935408 +0000 +++ log/8/check-generated 2025-09-11 10:34:04.726935408 +0000 @@ -1,2 +0,0 @@ -hello[LF] -Protocol: 400[LF] == Contents of files in the log/8/ dir after test 1558 === Start of file check-expected hello[LF] Protocol: 400[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1558 ./libtest/libtests lib1558 file:///build/curl/src/build-curl/tests/log/8/data1558 > log/8/stdout1558 2> log/8/stderr1558 === End of file commands.log === Start of file data1558 hello === End of file data1558 === Start of file server.cmd Testnum 1558 === End of file server.cmd === Start of file valgrind1558 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1558 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1564 ./libtest/libtests lib1564 - > log/6/stdout1564 2> log/6/stderr1564 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1563 ../src/curl -q --output log/7/curl1563.out --include --trace-ascii log/7/trace1563 --trace-time http://127.0.0.1:40129/15630001 -L -H "Host: www.example.com" > log/7/stdout1563 2> log/7/stderr1563 test 1559...[Set excessive URL lengths] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1559 ./libtest/libtests lib1559 - > log/2/stdout1559 2> log/2/stderr1559 1559: stdout FAILED: --- log/2/check-expected 2025-09-11 10:34:04.818937239 +0000 +++ log/2/check-generated 2025-09-11 10:34:04.818937239 +0000 @@ -1,5 +0,0 @@ -CURLOPT_URL 10000000 bytes URL == 43[LF] -CURLOPT_POSTFIELDS 10000000 bytes data == 0[LF] -CURLUPART_URL 10000000 bytes URL == 3 (Malformed input to a URL function)[LF] -CURLUPART_SCHEME 10000000 bytes scheme == 3 (Malformed input to a URL function)[LF] -CURLUPART_USER 10000000 bytes user == 3 (Malformed input to a URL function)[LF] == Contents of files in the log/2/ dir after test 1559 === Start of file check-expected CURLOPT_URL 10000000 bytes URL == 43[LF] CURLOPT_POSTFIELDS 10000000 bytes data == 0[LF] CURLUPART_URL 10000000 bytes URL == 3 (Malformed input to a URL function)[LF] CURLUPART_SCHEME 10000000 bytes scheme == 3 (Malformed input to a URL function)[LF] CURLUPART_USER 10000000 bytes user == 3 (Malformed input to a URL function)[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1559 ./libtest/libtests lib1559 - > log/2/stdout1559 2> log/2/stderr1559 === End of file commands.log === Start of file server.cmd Testnum 1559 === End of file server.cmd === Start of file valgrind1559 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1559 test 1564...[wakeup before poll with no easy handles] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1564 ./libtest/libtests lib1564 - > log/6/stdout1564 2> log/6/stderr1564 libtests returned 1, when expecting 0 1564: exit FAILED == Contents of files in the log/6/ dir after test 1564 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1564 ./libtest/libtests lib1564 - > log/6/stdout1564 2> log/6/stderr1564 === End of file commands.log === Start of file server.cmd Testnum 1564 === End of file server.cmd === Start of file valgrind1564 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1564 test 1563...[Make sure redirects to CURLPROTO_GOPHER are forbidden by default] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1563 ../src/curl -q --output log/7/curl1563.out --include --trace-ascii log/7/trace1563 --trace-time http://127.0.0.1:40129/15630001 -L -H "Host: www.example.com" > log/7/stdout1563 2> log/7/stderr1563 1563: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1563 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1563 ../src/curl -q --output log/7/curl1563.out --include --trace-ascii log/7/trace1563 --trace-time http://127.0.0.1:40129/15630001 -L -H "Host: www.example.com" > log/7/stdout1563 2> log/7/stderr1563 === End of file commands.log === Start of file http_server.log 10:34:04.238985 ====> Client connect 10:34:04.239466 accept_connection 3 returned 4 10:34:04.239727 accept_connection 3 returned 0 10:34:04.239906 Read 93 bytes 10:34:04.240046 Process 93 bytes request 10:34:04.240166 Got request: GET /verifiedserver HTTP/1.1 10:34:04.240261 Are-we-friendly question received 10:34:04.240604 Wrote request (93 bytes) input to log/7/server.input 10:34:04.240984 Identifying ourselves as friends 10:34:04.242033 Response sent (56 bytes) and written to log/7/server.response 10:34:04.242182 special request received, no persistency 10:34:04.242263 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37044 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1563 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1563 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: inCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1565 ./libtest/libtests lib1565 http://127.0.0.1:41733/1 > log/5/stdout1565 2> log/5/stderr1565 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1566 ../src/curl -q --trace-ascii log/1/trace1566 --trace-time http://127.0.0.1:42781/1566 -o log/1/output1566 --etag-compare log/1/etag1566 > log/1/stdout1566 2> log/1/stderr1566 an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1563 test 1565...[wakeup from another thread] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1565 ./libtest/libtests lib1565 http://127.0.0.1:41733/1 > log/5/stdout1565 2> log/5/stderr1565 libtests returned 1, when expecting 0 1565: exit FAILED == Contents of files in the log/5/ dir after test 1565 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1565 ./libtest/libtests lib1565 http://127.0.0.1:41733/1 > log/5/stdout1565 2> log/5/stderr1565 === End of file commands.log === Start of file http_server.log 10:34:05.361378 ====> Client connect 10:34:05.361822 accept_connection 3 returned 4 10:34:05.362103 accept_connection 3 returned 0 10:34:05.362257 Read 93 bytes 10:34:05.362347 Process 93 bytes request 10:34:05.362520 Got request: GET /verifiedserver HTTP/1.1 10:34:05.362620 Are-we-friendly question received 10:34:05.362955 Wrote request (93 bytes) input to log/5/server.input 10:34:05.363256 Identifying ourselves as friends 10:34:05.364101 Response sent (56 bytes) and written to log/5/server.response 10:34:05.364304 special request received, no persistency 10:34:05.364397 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 41052 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1565 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1565 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1565 test 1566...[--etag-compare that gets a 304 back shouldn't overwrite the file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1566 ../src/curl -q --trace-ascii log/1/trace1566 --trace-time http://127.0.0.1:42781/1566 -o log/1/output1566 --etag-compare log/1/etag1566 > log/1/stdout1566 2> log/1/stderr1566 1566: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1566 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1566 ../src/curl -q --trace-ascii log/1/trace1566 --trace-time http://127.0.0.1:42781/1566 -o log/1/output1566 --etag-compare log/1/etag1566 > log/1/stdout1566 2> log/1/stderr1566 === End of file commands.log === Start of file etag1566 "123456" === End of file etag1566 === Start of file http_server.log 10:34:04.353280 ====> Client connect 10:34:04.353683 accept_connection 3 returned 4 10:34:04.353893 accept_connection 3 returned 0 10:34:04.354039 Read 93 bytes 10:34:04.354132 Process 93 bytes request 10:34:04.354239 Got request: GET /verifiedserver HTTP/1.1 10:34:04.354333 Are-we-friendly question received 10:34:04.354625 Wrote request (93 bytes) input to log/1/server.input 10:34:04.354819 Identifying ourselves as friends 10:34:04.355578 Response sent (57 bytes) and written to log/1/server.response 10:34:04.355730 special request received, no persistency 10:34:04.355819 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 55082 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file output1566 downloaded already === End of file output1566 === Start of file server.cmd Testnum 1566 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1566 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exportsCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1567 ./libtest/libtests lib1567 http://127.0.0.1:36933/1567 > log/3/stdout1567 2> log/3/stderr1567 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1568 ./libtest/libtests lib1568 http://127.0.0.1/1568 36757 > log/4/stdout1568 2> log/4/stderr1568 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1569 ./libtest/libtests lib1569 "ftp://127.0.0.1:42977/1569;type=A" ftp://127.0.0.1:42977/1569 > log/8/stdout1569 2> log/8/stderr1569 the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1566 test 1567...[re-run redirected transfer without setting CURLU URL again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1567 ./libtest/libtests lib1567 http://127.0.0.1:36933/1567 > log/3/stdout1567 2> log/3/stderr1567 1567: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1567 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1567 ./libtest/libtests lib1567 http://127.0.0.1:36933/1567 > log/3/stdout1567 2> log/3/stderr1567 === End of file commands.log === Start of file http_server.log 10:34:04.479476 ====> Client connect 10:34:04.479808 accept_connection 3 returned 4 10:34:04.480007 accept_connection 3 returned 0 10:34:04.480793 Read 93 bytes 10:34:04.481167 Process 93 bytes request 10:34:04.481333 Got request: GET /verifiedserver HTTP/1.1 10:34:04.481427 Are-we-friendly question received 10:34:04.481754 Wrote request (93 bytes) input to log/3/server.input 10:34:04.481953 Identifying ourselves as friends 10:34:04.482501 Response sent (56 bytes) and written to log/3/server.response 10:34:04.482636 special request received, no persistency 10:34:04.482700 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 38480 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1567 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1567 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1567 test 1568...[HTTP with Digest authorization on custom CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1568 ./libtest/libtests lib1568 http://127.0.0.1/1568 36757 > log/4/stdout1568 2> log/4/stderr1568 1568: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1568 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1568 ./libtest/libtests lib1568 http://127.0.0.1/1568 36757 > log/4/stdout1568 2> log/4/stderr1568 === End of file commands.log === Start of file http_server.log 10:34:05.548448 ====> Client connect 10:34:05.548905 accept_connection 3 returned 4 10:34:05.549171 accept_connection 3 returned 0 10:34:05.549339 Read 93 bytes 10:34:05.549451 Process 93 bytes request 10:34:05.549546 Got request: GET /verifiedserver HTTP/1.1 10:34:05.549626 Are-we-friendly question received 10:34:05.549892 Wrote request (93 bytes) input to log/4/server.input 10:34:05.550107 Identifying ourselves as friends 10:34:05.550896 Response sent (56 bytes) and written to log/4/server.response 10:34:05.551054 special request received, no persistency 10:34:05.551133 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 49890 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1568 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1568 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1568 test 1569...[FTP first type=A then regular URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/builCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1571 ./libtest/libtests lib1571 http://127.0.0.1:39357/1571 > log/6/stdout1571 2> log/6/stderr1571 d/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1569 ./libtest/libtests lib1569 "ftp://127.0.0.1:42977/1569;type=A" ftp://127.0.0.1:42977/1569 > log/8/stdout1569 2> log/8/stderr1569 1569: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1569 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1569 ./libtest/libtests lib1569 "ftp://127.0.0.1:42977/1569;type=A" ftp://127.0.0.1:42977/1569 > log/8/stdout1569 2> log/8/stderr1569 === End of file commands.log === Start of file ftp_server.log 10:34:04.913615 ====> Client connect 10:34:04.914931 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:04.919720 < "USER anonymous" 10:34:04.920301 > "331 We are happy you popped in![CR][LF]" 10:34:04.927559 < "PASS ftp@example.com" 10:34:04.928097 > "230 Welcome you silly person[CR][LF]" 10:34:04.930002 < "PWD" 10:34:04.930575 > "257 "/" is current directory[CR][LF]" 10:34:04.932491 < "EPSV" 10:34:04.932908 ====> Passive DATA channel requested by client 10:34:04.933162 DATA sockfilt for passive data channel starting... 10:34:04.948292 DATA sockfilt for passive data channel started (pid 157351) 10:34:04.949530 DATA sockfilt for passive data channel listens on port 41845 10:34:04.950124 > "229 Entering Passive Mode (|||41845|)[LF]" 10:34:04.950430 Client has been notified that DATA conn will be accepted on port 41845 10:34:04.952023 Client connects to port 41845 10:34:04.952422 ====> Client established passive DATA connection on port 41845 10:34:04.953576 < "TYPE I" 10:34:04.954156 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:04.960271 < "SIZE verifiedserver" 10:34:04.960883 > "213 17[CR][LF]" 10:34:04.962920 < "RETR verifiedserver" 10:34:04.963454 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:04.964198 =====> Closing passive DATA connection... 10:34:04.964527 Server disconnects passive DATA connection 10:34:04.966155 Server disconnected passive DATA connection 10:34:04.966572 DATA sockfilt for passive data channel quits (pid 157351) 10:34:04.968551 DATA sockfilt for passive data channel quit (pid 157351) 10:34:04.968991 =====> Closed passive DATA connection 10:34:04.969433 > "226 File transfer complete[CR][LF]" 10:34:05.014715 < "QUIT" 10:34:05.015501 > "221 bye bye baby[CR][LF]" 10:34:05.024243 MAIN sockfilt said DISC 10:34:05.025650 ====> Client disconnected 10:34:05.026655 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:04.575274 ====> Client connect 10:34:04.582300 Received DATA (on stdin) 10:34:04.582599 > 160 bytes data, server => client 10:34:04.582738 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:04.582831 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:04.582905 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:04.585963 < 16 bytes data, client => server 10:34:04.586221 'USER anonymous\r\n' 10:34:04.592984 Received DATA (on stdin) 10:34:04.593218 > 33 bytes data, server => client 10:34:04.593330 '331 We are happy you popped in!\r\n' 10:34:04.594141 < 22 bytes data, client => server 10:34:04.594391 'PASS ftp@example.com\r\n' 10:34:04.595516 Received DATA (on stdin) 10:34:04.595737 > 30 bytes data, server => client 10:34:04.595855 '230 Welcome you silly person\r\n' 10:34:04.596577 < 5 bytes data, client => server 10:34:04.596808 'PWD\r\n' 10:34:04.597987 Received DATA (on stdin) 10:34:04.598241 > 30 bytes data, server => client 10:34:04.598366 '257 "/" is current directory\r\n' 10:34:04.599161 < 6 bytes data, client => server 10:34:04.599391 'EPSV\r\n' 10:34:04.617556 Received DATA (on stdin) 10:34:04.617782 > 38 bytes data, server => client 10:34:04.617895 '229 Entering Passive Mode (|||41845|)\n' 10:34:04.619330 < 8 bytes data, client => server 10:34:04.619555 'TYPE I\r\n' 10:34:04.624680 Received DATA (on stdin) 10:34:04.625131 > 33 bytes data, server => client 10:34:04.625299 '200 I modify TYPE as you wanted\r\n' 10:34:04.626950 < 21 bytes data, client => server 10:34:04.627193 'SIZE verifiedserver\r\n' 10:34:04.628300 Received DATA (on stdin) 10:34:04.628517 > 8 bytes data, server => client 10:34:04.628627 '213 17\r\n' 10:34:04.629637 < 21 bytes data, client => server 10:34:04.629896 'RETR verifiedserver\r\n' 10:34:04.630871 Received DATA (on stdin) 10:34:04.631088 > 29 bytes data, server => client 10:34:04.631202 '150 Binary junk (17 bytes).\r\n' 10:34:04.636928 Received DATA (on stdin) 10:34:04.637206 > 28 bytes data, server => client 10:34:04.637355 '226 File transfer complete\r\n' 10:34:04.681048 < 6 bytes data, client => server 10:34:04.681363 'QUIT\r\n' 10:34:04.689261 Received DATA (on stdin) 10:34:04.689624 > 18 bytes data, server => client 10:34:04.689812 '221 bye bye baby\r\n' 10:34:04.690764 ====> Client disconnect 10:34:04.693064 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:04.613260 Running IPv4 version 10:34:04.613880 Listening on port 41845 10:34:04.614308 Wrote pid 157351 to log/8/server/ftp_sockdata.pid 10:34:04.615250 Received PING (on stdin) 10:34:04.616185 Received PORT (on stdin) 10:34:04.619004 ====> Client connect 10:34:04.632249 Received DATA (on stdin) 10:34:04.632435 > 17 bytes data, server => client 10:34:04.632535 'WE ROOLZ: 86552\r\n' 10:34:04.632941 Received DISC (on stdin) 10:34:04.633150 ====> Client forcibly disconnected 10:34:04.634282 Received QUIT (on stdin) 10:34:04.634448 quits 10:34:04.634906 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1569 === End of file server.cmd === Start of file valgrind1569 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1569 test 1571...[CURLFOLLOW_OBEYCODE with custom POST method, 302 => GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1571 ./libtest/libtests lib1571 http://127.0.0.1:39357/1571 > log/6/stdout1571 2> log/6/stderr1571 1571: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1571 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1572 ./libtest/libtests lib1571 http://127.0.0.1:40129/1572 > log/7/stdout1572 2> log/7/stderr1572 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1573 ./libtest/libtests lib1571 http://127.0.0.1:41733/1573 > log/5/stdout1573 2> log/5/stderr1573 et --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1571 ./libtest/libtests lib1571 http://127.0.0.1:39357/1571 > log/6/stdout1571 2> log/6/stderr1571 === End of file commands.log === Start of file http_server.log 10:34:05.014789 ====> Client connect 10:34:05.015133 accept_connection 3 returned 4 10:34:05.015315 accept_connection 3 returned 0 10:34:05.015447 Read 93 bytes 10:34:05.015533 Process 93 bytes request 10:34:05.015620 Got request: GET /verifiedserver HTTP/1.1 10:34:05.015695 Are-we-friendly question received 10:34:05.015915 Wrote request (93 bytes) input to log/6/server.input 10:34:05.016077 Identifying ourselves as friends 10:34:05.016760 Response sent (57 bytes) and written to log/6/server.response 10:34:05.017040 special request received, no persistency 10:34:05.017174 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 57660 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 1571 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind1571 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1571 test 1572...[CURLFOLLOW_OBEYCODE with custom POST method, 308 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1572 ./libtest/libtests lib1571 http://127.0.0.1:40129/1572 > log/7/stdout1572 2> log/7/stderr1572 1572: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1572 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1572 ./libtest/libtests lib1571 http://127.0.0.1:40129/1572 > log/7/stdout1572 2> log/7/stderr1572 === End of file commands.log === Start of file http_server.log 10:34:05.215063 ====> Client connect 10:34:05.225246 accept_connection 3 returned 4 10:34:05.225467 accept_connection 3 returned 0 10:34:05.225598 Read 93 bytes 10:34:05.225675 Process 93 bytes request 10:34:05.225759 Got request: GET /verifiedserver HTTP/1.1 10:34:05.225830 Are-we-friendly question received 10:34:05.226066 Wrote request (93 bytes) input to log/7/server.input 10:34:05.226270 Identifying ourselves as friends 10:34:05.227076 Response sent (56 bytes) and written to log/7/server.response 10:34:05.227229 special request received, no persistency 10:34:05.227305 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37054 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1572 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1572 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1572 test 1573...[CURLFOLLOW_OBEYCODE with custom GET method, 301 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1573 ./libtest/libtests lib1571 http://127.0.0.1:41733/1573 > log/5/stdout1573 2> log/5/stderr1573 1573: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1573 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1573 ./libtest/libtests lib1571 http://127.0.0.1:41733/1573 > log/5/stdout1573 2> log/5/stderr1573 === End of file commands.log === Start of file http_server.log 10:34:06.280797 ====> Client connect 10:34:06.281377 accept_connection 3 returned 4 10:34:06.281675 accept_connection 3 returned 0 10:34:06.281823 Read 93 bytes 10:34:06.281911 Process 93 bytes request 10:34:06.282063 Got request: GET /verifiedserver HTTP/1.1 10:34:06.282142 Are-we-friendly question received 10:34:06.282377 Wrote request (93 bytes) input to log/5/server.input 10:34:06.282558 Identifying ourselves CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1575 ./libtest/libtests lib1571 http://127.0.0.1:36933/1575 > log/3/stdout1575 2> log/3/stderr1575 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1574 ./libtest/libtests lib1571 http://127.0.0.1:42781/1574 > log/1/stdout1574 2> log/1/stderr1574 as friends 10:34:06.283292 Response sent (56 bytes) and written to log/5/server.response 10:34:06.283466 special request received, no persistency 10:34:06.283533 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 41068 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1573 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1573 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1573 test 1575...[CURLFOLLOW_FIRSTONLY with custom POST method, 308 => POST] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1575 ./libtest/libtests lib1571 http://127.0.0.1:36933/1575 > log/3/stdout1575 2> log/3/stderr1575 1575: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1575 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1575 ./libtest/libtests lib1571 http://127.0.0.1:36933/1575 > log/3/stdout1575 2> log/3/stderr1575 === End of file commands.log === Start of file http_server.log 10:34:05.419759 ====> Client connect 10:34:05.420047 accept_connection 3 returned 4 10:34:05.420198 accept_connection 3 returned 0 10:34:05.420308 Read 93 bytes 10:34:05.420384 Process 93 bytes request 10:34:05.420457 Got request: GET /verifiedserver HTTP/1.1 10:34:05.420526 Are-we-friendly question received 10:34:05.420719 Wrote request (93 bytes) input to log/3/server.input 10:34:05.420973 Identifying ourselves as friends 10:34:05.421698 Response sent (56 bytes) and written to log/3/server.response 10:34:05.421829 special request received, no persistency 10:34:05.421896 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 38490 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1575 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1575 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1575 test 1574...[CURLFOLLOW_FIRSTONLY with custom GET method, 301 => GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1574 ./libtest/libtests lib1571 http://127.0.0.1:42781/1574 > log/1/stdout1574 2> log/1/stderr1574 1574: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1574 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1574 ./libtest/libtests lib1571 http://127.0.0.1:42781/1574 > log/1/stdout1574 2> log/1/stderr1574 === End of file commands.log === Start of file http_server.log 10:34:05.401721 ====> Client connect 10:34:05.402540 accept_connection 3 returned 4 10:34:05.402833 accept_connection 3 returned 0 10:34:05.402982 Read 93 bytes 10:34:05.403063 Process 93 bytes request 10:34:05.403147 Got request: GET /verifiedserver HTTP/1.1 10:34:05.403216 Are-we-friendly question received 10:34:05.403491 Wrote request (93 bytes) input to log/1/server.input 10:34:05.403710 Identifying ourselves as friends 10:34:05.404451 Response sent (57 bytes) and written to log/1/server.response 10:34:05.404602 special request received, no persistency 10:34:05.404676 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 55090 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.ouCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1570 ./libtest/libtests lib1569 "ftp://127.0.0.1:35999/1570;type=D" ftp://127.0.0.1:35999/1570 > log/2/stdout1570 2> log/2/stderr1570 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1576 ./libtest/libtests lib1576 http://127.0.0.1:36757/1576 > log/4/stdout1576 2> log/4/stderr1576 t WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 1574 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1574 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1574 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/ftpserver.pl --pidfile "log/2/server/ftp_server.pid" --logfile "log/2/ftp_server.log" --logdir "log/2" --portfile "log/2/server/ftp_server.port" --srcdir "/build/curl/src/curl/tests" --proto ftp --ipv4 --port 0 --addr "127.0.0.1" PINGPONG runs on port 35999 (log/2/server/ftp_server.port) RUN: FTP server is PID 157322 port 35999 * pid ftp => 157322 157322 test 1570...[FTP first type=D then regular URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1570 ./libtest/libtests lib1569 "ftp://127.0.0.1:35999/1570;type=D" ftp://127.0.0.1:35999/1570 > log/2/stdout1570 2> log/2/stderr1570 1570: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1570 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1570 ./libtest/libtests lib1569 "ftp://127.0.0.1:35999/1570;type=D" ftp://127.0.0.1:35999/1570 > log/2/stdout1570 2> log/2/stderr1570 === End of file commands.log === Start of file ftp_server.log 10:34:05.458600 FTP server listens on port IPv4/35999 10:34:05.460046 logged pid 157322 in log/2/server/ftp_server.pid 10:34:05.460591 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:05.122164 Running IPv4 version 10:34:05.122846 Listening on port 35999 10:34:05.123371 Wrote pid 157589 to log/2/server/ftp_sockctrl.pid 10:34:05.123746 Wrote port 35999 to log/2/server/ftp_server.port 10:34:05.125046 Received PING (on stdin) === End of file ftp_sockctrl.log === Start of file server.cmd REPLY EPSV 500 no such command Testnum 1570 === End of file server.cmd === Start of file valgrind1570 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1570 test 1576...[CURLFOLLOW_OBEYCODE with custom PUT method, 302 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1576 ./libtest/libtests lib1576 http://127.0.0.1:36757/1576 > log/4/stdout1576 2> log/4/stderr1576 1576: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1576 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1576 ./libtest/libtests lib1576 http://127.0.0.1:36757/1576 > log/4/stdout1576 2> log/4/stderr1576 === End of file commands.log === Start of file http_server.log 10:34:06.564434 ====> Client connect 10:34:06.564921 accept_connection 3 returned 4 10:34:06.565167 accept_connection 3 returned 0 10:34:06.565330 Read 93 bytes 10:34:06.565432 Process 93 bytes request 10:34:06.565527 Got request: GET /verifiedserver HTTP/1.1 10:34:06.565609 Are-we-friendly question received 10:34:06.565896 Wrote request (93 bytes) input to log/4/server.input 10:34:06.566171 Identifying ourselves as friends 10:34:06.566992 Response sent (56 bytes) and written to log/4/server.response 10:34:06.567143 special request received, no persistency 10:34:06.567223 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 49892 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1576 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1576 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future shCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1577 ./libtest/libtests lib1576 http://127.0.0.1:36007/1577 1577 > log/8/stdout1577 2> log/8/stderr1577 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1578 ./libtest/libtests lib1576 http://127.0.0.1:39357/1578 > log/6/stdout1578 2> log/6/stderr1578 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1579 ./libtest/libtests lib1576 http://127.0.0.1:40129/1579 1579 > log/7/stdout1579 2> log/7/stderr1579 ip a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1576 test 1577...[CURLFOLLOW_OBEYCODE with custom PUT method, 308 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1577 ./libtest/libtests lib1576 http://127.0.0.1:36007/1577 1577 > log/8/stdout1577 2> log/8/stderr1577 1577: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1577 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1577 ./libtest/libtests lib1576 http://127.0.0.1:36007/1577 1577 > log/8/stdout1577 2> log/8/stderr1577 === End of file commands.log === Start of file http_server.log 10:34:05.748621 ====> Client connect 10:34:05.749153 accept_connection 3 returned 4 10:34:05.749387 accept_connection 3 returned 0 10:34:05.749556 Read 93 bytes 10:34:05.749686 Process 93 bytes request 10:34:05.749815 Got request: GET /verifiedserver HTTP/1.1 10:34:05.749927 Are-we-friendly question received 10:34:05.750262 Wrote request (93 bytes) input to log/8/server.input 10:34:05.750529 Identifying ourselves as friends 10:34:05.751494 Response sent (56 bytes) and written to log/8/server.response 10:34:05.751722 special request received, no persistency 10:34:05.751837 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 56694 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1577 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1577 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1577 test 1578...[CURLFOLLOW_FIRSTONLY with custom PUT method, 302 => PUT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1578 ./libtest/libtests lib1576 http://127.0.0.1:39357/1578 > log/6/stdout1578 2> log/6/stderr1578 1578: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 1578 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1578 ./libtest/libtests lib1576 http://127.0.0.1:39357/1578 > log/6/stdout1578 2> log/6/stderr1578 === End of file commands.log === Start of file http_server.log 10:34:06.047275 ====> Client connect 10:34:06.047690 accept_connection 3 returned 4 10:34:06.047981 accept_connection 3 returned 0 10:34:06.048192 Read 93 bytes 10:34:06.048326 Process 93 bytes request 10:34:06.048440 Got request: GET /verifiedserver HTTP/1.1 10:34:06.048537 Are-we-friendly question received 10:34:06.048904 Wrote request (93 bytes) input to log/6/server.input 10:34:06.049213 Identifying ourselves as friends 10:34:06.050262 Response sent (57 bytes) and written to log/6/server.response 10:34:06.050411 special request received, no persistency 10:34:06.050484 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 57674 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 1578 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind1578 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1578 tCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1580 ./libtest/libtests lib1576 http://127.0.0.1:41733/1580 1578 > log/5/stdout1580 2> log/5/stderr1580 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1592 ./libtest/libtests lib1592 http://a-site-never-accessed.example.org/1592 > log/4/stdout1592 2> log/4/stderr1592 est 1579...[CURLFOLLOW_OBEYCODE with custom PUT method, 303 => GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1579 ./libtest/libtests lib1576 http://127.0.0.1:40129/1579 1579 > log/7/stdout1579 2> log/7/stderr1579 1579: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1579 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1579 ./libtest/libtests lib1576 http://127.0.0.1:40129/1579 1579 > log/7/stdout1579 2> log/7/stderr1579 === End of file commands.log === Start of file http_server.log 10:34:06.256744 ====> Client connect 10:34:06.257279 accept_connection 3 returned 4 10:34:06.257543 accept_connection 3 returned 0 10:34:06.257731 Read 93 bytes 10:34:06.257832 Process 93 bytes request 10:34:06.257923 Got request: GET /verifiedserver HTTP/1.1 10:34:06.258003 Are-we-friendly question received 10:34:06.258255 Wrote request (93 bytes) input to log/7/server.input 10:34:06.258444 Identifying ourselves as friends 10:34:06.259121 Response sent (56 bytes) and written to log/7/server.response 10:34:06.259252 special request received, no persistency 10:34:06.259321 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37056 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1579 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1579 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1579 test 1580...[CURLFOLLOW_FIRSTONLY with custom PUT method, 308 => PUT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1580 ./libtest/libtests lib1576 http://127.0.0.1:41733/1580 1578 > log/5/stdout1580 2> log/5/stderr1580 1580: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1580 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1580 ./libtest/libtests lib1576 http://127.0.0.1:41733/1580 1578 > log/5/stdout1580 2> log/5/stderr1580 === End of file commands.log === Start of file http_server.log 10:34:07.315856 ====> Client connect 10:34:07.316149 accept_connection 3 returned 4 10:34:07.316315 accept_connection 3 returned 0 10:34:07.316441 Read 93 bytes 10:34:07.316517 Process 93 bytes request 10:34:07.316602 Got request: GET /verifiedserver HTTP/1.1 10:34:07.316677 Are-we-friendly question received 10:34:07.316998 Wrote request (93 bytes) input to log/5/server.input 10:34:07.317214 Identifying ourselves as friends 10:34:07.317962 Response sent (56 bytes) and written to log/5/server.response 10:34:07.318106 special request received, no persistency 10:34:07.318175 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 41074 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1580 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1580 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1580 test 1592...[HTTP request, remove handle while resolving, don't block] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1592 ./libtest/libtests lib1592 http://a-site-never-accessed.example.org/1592 > log/4/stdout1592 2> log/4/stderr1592 libtests returned 1, when expecting 0 1592: exit FAILED == Contents of files in the log/4/ dir after test 1592 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1591 ./libtest/libtests lib1591 http://127.0.0.1:43789/bzz/1591 log/2/stdout1591 2> log/2/stderr1591 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1590 ./libtest/libtests lib1553 imap://localhost:33191/1590 > log/1/stdout1590 2> log/1/stderr1590 rind1592 ./libtest/libtests lib1592 http://a-site-never-accessed.example.org/1592 > log/4/stdout1592 2> log/4/stderr1592 === End of file commands.log === Start of file server.cmd Testnum 1592 === End of file server.cmd === Start of file valgrind1592 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1592 test 1591...[HTTP PUT with trailers at the end] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1591 ./libtest/libtests lib1591 http://127.0.0.1:43789/bzz/1591 log/2/stdout1591 2> log/2/stderr1591 1591: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1591 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1591 ./libtest/libtests lib1591 http://127.0.0.1:43789/bzz/1591 log/2/stdout1591 2> log/2/stderr1591 === End of file commands.log === Start of file http_server.log 10:34:06.506823 ====> Client connect 10:34:06.507090 accept_connection 3 returned 4 10:34:06.507234 accept_connection 3 returned 0 10:34:06.507343 Read 93 bytes 10:34:06.507418 Process 93 bytes request 10:34:06.507492 Got request: GET /verifiedserver HTTP/1.1 10:34:06.507552 Are-we-friendly question received 10:34:06.507752 Wrote request (93 bytes) input to log/2/server.input 10:34:06.507889 Identifying ourselves as friends 10:34:06.508406 Response sent (56 bytes) and written to log/2/server.response 10:34:06.508488 special request received, no persistency 10:34:06.508542 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 33002 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1591 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file stdin-for-1591 more than one byte === End of file stdin-for-1591 === Start of file valgrind1591 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1591 test 1590...[IMAP cleanup before a connection was created] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1590 ./libtest/libtests lib1553 imap://localhost:33191/1590 > log/1/stdout1590 2> log/1/stderr1590 libtests returned 1, when expecting 0 1590: exit FAILED == Contents of files in the log/1/ dir after test 1590 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1590 ./libtest/libtests lib1553 imap://localhost:33191/1590 > log/1/stdout1590 2> log/1/stderr1590 === End of file commands.log === Start of file imap_server.log 10:34:06.829912 ====> Client connect 10:34:06.831069 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:34:06.839003 < "A001 CAPABILITY" 10:34:06.840752 > "A001 BAD Command[CR][LF]" 10:34:06.843605 < "A002 LIST "verifiedserver" *" 10:34:06.844068 LIST_imap got "verifiedserver" * 10:34:06.845704 > "* LIST () "/" "WE ROOLZ: 114681"[CR][LF]" 10:34:06.846672 > "A002 OK LIST Completed[CR][LF]" 10:34:06.846972 return proof we are we 10:34:06.890847 < "A003 LOGOUT" 10:34:06.891417 > "* BYE curl IMAP server signing off[CR][LF]" 10:34:06.891870 > "A003 OK LOGOUT completed[CR][LF]" 10:34:06.897071 MAIN sockfilt said DISC 10:34:06.898841 ====> Client disconnected 10:34:06.899829 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:34:06.494982 ====> Client connect 10:34:06.498892 Received DATA (on stdin) 10:34:06.499079 > 178 bytes data, server => client 10:34:06.499249 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:34:06.499355 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:34:06.499435 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:34:06.499500 'rve\r\n' 10:34:06.505070 < 17 bytes data, client => server 10:34:06.505283 'A001 CAPABILITY\r\n' 10:34:06.506871 Received DATA (on stdin) 10:34:06.506999 > 18 bytes data, server => client 10:34:06.507671 'A001 BAD Command\r\n' 10:34:06.508342 < 30 bytes data, client => server 10:34:06.508476 'A002 LIST "verifiedserver" *\r\n' 10:34:06.511943 Received DATA (on stdin) 10:34:06.512167 > 34 bytes data, server => client 10:34:06.512384 '* LIST () "/" "WE ROOLZ: 114681"\r\n' 10:34:06.513562 ReCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1581 ./libtest/libtests lib1571 http://127.0.0.1:36933/1581 > log/3/stdout1581 2> log/3/stderr1581 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1593 ./libtest/libtests lib1593 http://127.0.0.1:36007/1593 > log/8/stdout1593 2> log/8/stderr1593 ceived DATA (on stdin) 10:34:06.513773 > 24 bytes data, server => client 10:34:06.514634 'A002 OK LIST Completed\r\n' 10:34:06.556722 < 13 bytes data, client => server 10:34:06.557198 'A003 LOGOUT\r\n' 10:34:06.559637 Received DATA (on stdin) 10:34:06.559815 > 36 bytes data, server => client 10:34:06.559900 '* BYE curl IMAP server signing off\r\n' 10:34:06.560226 Received DATA (on stdin) 10:34:06.560380 > 26 bytes data, server => client 10:34:06.560470 'A003 OK LOGOUT completed\r\n' 10:34:06.564019 ====> Client disconnect 10:34:06.564894 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 1590 === End of file server.cmd === Start of file valgrind1590 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1590 test 1581...[CURLFOLLOW_OBEYCODE with custom POST301 method, 301 => custom] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1581 ./libtest/libtests lib1571 http://127.0.0.1:36933/1581 > log/3/stdout1581 2> log/3/stderr1581 1581: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 1581 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1581 ./libtest/libtests lib1571 http://127.0.0.1:36933/1581 > log/3/stdout1581 2> log/3/stderr1581 === End of file commands.log === Start of file http_server.log 10:34:06.497276 ====> Client connect 10:34:06.497654 accept_connection 3 returned 4 10:34:06.497851 accept_connection 3 returned 0 10:34:06.497997 Read 93 bytes 10:34:06.498095 Process 93 bytes request 10:34:06.498191 Got request: GET /verifiedserver HTTP/1.1 10:34:06.498274 Are-we-friendly question received 10:34:06.498555 Wrote request (93 bytes) input to log/3/server.input 10:34:06.498765 Identifying ourselves as friends 10:34:06.499503 Response sent (56 bytes) and written to log/3/server.response 10:34:06.499625 special request received, no persistency 10:34:06.499735 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 38496 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1581 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1581 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1581 test 1593...[HTTP custom header overrides CURLOPT_TIMECONDITION] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1593 ./libtest/libtests lib1593 http://127.0.0.1:36007/1593 > log/8/stdout1593 2> log/8/stderr1593 1593: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1593 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1593 ./libtest/libtests lib1593 http://127.0.0.1:36007/1593 > log/8/stdout1593 2> log/8/stderr1593 === End of file commands.log === Start of file http_server.log 10:34:06.915322 ====> Client connect 10:34:06.915660 accept_connection 3 returned 4 10:34:06.915865 accept_connection 3 returned 0 10:34:06.916009 Read 93 bytes 10:34:06.916097 Process 93 bytes request 10:34:06.916187 Got request: GET /verifiedserver HTTP/1.1 10:34:06.916256 Are-we-friendly question received 10:34:06.916483 Wrote request (93 bytes) input to log/8/server.input 10:34:06.916665 Identifying ourselves as friends 10:34:06.919774 Response sent (56 bytes) and written to log/8/server.response 10:34:06.919954 special request received, no persistency 10:34:06.920030 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 56708 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1593 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrindCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1594 ./libtest/libtests lib1594 http://127.0.0.1:39357/1594 > log/6/stdout1594 2> log/6/stderr1594 1593 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1593 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1597 ./libtest/libtests lib1597 - > log/4/stdout1597 2> log/4/stderr1597 test 1594...[HTTP Retry-After header parsing and extraction] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1594 ./libtest/libtests lib1594 http://127.0.0.1:39357/1594 > log/6/stdout1594 2> log/6/stderr1594 1594: stdout FAILED: --- log/6/check-expected 2025-09-11 10:34:08.215004841 +0000 +++ log/6/check-generated 2025-09-11 10:34:08.215004841 +0000 @@ -1 +0,0 @@ -Retry-After 22[LF] == Contents of files in the log/6/ dir after test 1594 === Start of file check-expected Retry-After 22[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1594 ./libtest/libtests lib1594 http://127.0.0.1:39357/1594 > log/6/stdout1594 2> log/6/stderr1594 === End of file commands.log === Start of file http_server.log 10:34:07.106442 ====> Client connect 10:34:07.106864 accept_connection 3 returned 4 10:34:07.107155 accept_connection 3 returned 0 10:34:07.107312 Read 93 bytes 10:34:07.107405 Process 93 bytes request 10:34:07.107495 Got request: GET /verifiedserver HTTP/1.1 10:34:07.107564 Are-we-friendly question received 10:34:07.107782 Wrote request (93 bytes) input to log/6/server.input 10:34:07.107938 Identifying ourselves as friends 10:34:07.108684 Response sent (57 bytes) and written to log/6/server.response 10:34:07.108906 special request received, no persistency 10:34:07.108990 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 57680 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 1594 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind1594 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1594 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1600 ./unit/units unit1600 - > log/3/stdout1600 2> log/3/stderr1600 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1595 ./libtest/libtests lib1594 http://127.0.0.1:40129/1595 > log/7/stdout1595 2> log/7/stderr1595 test 1597...[CURLOPT_PROTOCOLS_STR] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1597 ./libtest/libtests lib1597 - > log/4/stdout1597 2> log/4/stderr1597 1597: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:08.275006035 +0000 +++ log/4/check-generated 2025-09-11 10:34:08.267005876 +0000 @@ -1 +0,0 @@ -Tested 15 strings[LF] == Contents of files in the log/4/ dir after test 1597 === Start of file check-expected Tested 15 strings[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1597 ./libtest/libtests lib1597 - > log/4/stdout1597 2> log/4/stderr1597 === End of file commands.log === Start of file server.cmd Testnum 1597 === End of file server.cmd === Start of file valgrind1597 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1597 test 1600...[NTLM unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1600 ./unit/units unit1600 - > log/3/stdout1600 2> log/3/stderr1600 units returned 1, when expecting 0 1600: exit FAILED == Contents of files in the log/3/ dir after test 1600 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1600 ./unit/units unit1600 - > log/3/stdout1600 2> log/3/stderr1600 === End of file commands.log === Start of file server.cmd Testnum 1600 === End of file server.cmd === Start of file valgrind1600 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1600 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1596 ./libtest/libtests lib1594 http://127.0.0.1:41733/1596 > log/5/stdout1596 2> log/5/stderr1596 test 1595...[HTTP Retry-After header extraction (without header)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1595 ./libtest/libtests lib1594 http://127.0.0.1:40129/1595 > log/7/stdout1595 2> log/7/stderr1595 1595: stdout FAILED: --- log/7/check-expected 2025-09-11 10:34:08.431009141 +0000 +++ log/7/check-generated 2025-09-11 10:34:08.427009061 +0000 @@ -1 +0,0 @@ -Retry-After 0[LF] == Contents of files in the log/7/ dir after test 1595 === Start of file check-expected Retry-After 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1595 ./libtest/libtests lib1594 http://127.0.0.1:40129/1595 > log/7/stdout1595 2> log/7/stderr1595 === End of file commands.log === Start of file http_server.log 10:34:07.314857 ====> Client connect 10:34:07.315279 accept_connection 3 returned 4 10:34:07.315496 accept_connection 3 returned 0 10:34:07.315705 Read 93 bytes 10:34:07.315852 Process 93 bytes request 10:34:07.315947 Got request: GET /verifiedserver HTTP/1.1 10:34:07.316041 Are-we-friendly question received 10:34:07.316315 Wrote request (93 bytes) input to log/7/server.input 10:34:07.316560 Identifying ourselves as friends 10:34:07.317577 Response sent (56 bytes) and written to log/7/server.response 10:34:07.317746 special request received, no persistency 10:34:07.317832 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37064 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1595 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1595 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1595 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1598 ./libtest/libtests lib1598 http://127.0.0.1:43789/bzz/1598 log/2/stdout1598 2> log/2/stderr1598 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1601 ./unit/units unit1601 - > log/8/stdout1601 2> log/8/stderr1601 test 1596...[HTTP Retry-After header parsing using a date] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1596 ./libtest/libtests lib1594 http://127.0.0.1:41733/1596 > log/5/stdout1596 2> log/5/stderr1596 1596: stdout FAILED: --- log/5/check-expected 2025-09-11 10:34:08.491010335 +0000 +++ log/5/check-generated 2025-09-11 10:34:08.491010335 +0000 @@ -1 +0,0 @@ -Retry-After 21600[LF] == Contents of files in the log/5/ dir after test 1596 === Start of file check-expected Retry-After 21600[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1596 ./libtest/libtests lib1594 http://127.0.0.1:41733/1596 > log/5/stdout1596 2> log/5/stderr1596 === End of file commands.log === Start of file http_server.log 10:34:08.397088 ====> Client connect 10:34:08.397440 accept_connection 3 returned 4 10:34:08.397657 accept_connection 3 returned 0 10:34:08.397806 Read 93 bytes 10:34:08.397897 Process 93 bytes request 10:34:08.397976 Got request: GET /verifiedserver HTTP/1.1 10:34:08.398043 Are-we-friendly question received 10:34:08.398323 Wrote request (93 bytes) input to log/5/server.input 10:34:08.398559 Identifying ourselves as friends 10:34:08.399281 Response sent (56 bytes) and written to log/5/server.response 10:34:08.399481 special request received, no persistency 10:34:08.399557 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 41084 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1596 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1596 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1596 test 1598...[HTTP POST with trailers at the end] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1598 ./libtest/libtests lib1598 http://127.0.0.1:43789/bzz/1598 log/2/stdout1598 2> log/2/stderr1598 1598: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1598 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1598 ./libtest/libtests lib1598 http://127.0.0.1:43789/bzz/1598 log/2/stdout1598 2> log/2/stderr1598 === End of file commands.log === Start of file http_server.log 10:34:07.497322 ====> Client connect 10:34:07.497664 accept_connection 3 returned 4 10:34:07.497872 accept_connection 3 returned 0 10:34:07.498004 Read 93 bytes 10:34:07.498098 Process 93 bytes request 10:34:07.498200 Got request: GET /verifiedserver HTTP/1.1 10:34:07.498280 Are-we-friendly question received 10:34:07.498529 Wrote request (93 bytes) input to log/2/server.input 10:34:07.498742 Identifying ourselves as friends 10:34:07.499467 Response sent (56 bytes) and written to log/2/server.response 10:34:07.499618 special request received, no persistency 10:34:07.499688 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 33008 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1598 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file stdin-for-1598 more than one byte === End of file stdin-for-1598 === Start of file valgrind1598 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1598 test 1601...[MD5 unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1601 ./unit/units unit1601 - > log/8/stdout1601 2> log/8/stderr1601 units returned 1, when expecting 0 1601: exit FAILED == Contents of files in the log/8/ dir after test 1601 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1599 ./libtest/libtests lib1599 ftp://127.0.0.1:38733/1599 log/1/netrc1599 > log/1/stdout1599 2> log/1/stderr1599 memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1601 ./unit/units unit1601 - > log/8/stdout1601 2> log/8/stderr1601 === End of file commands.log === Start of file server.cmd Testnum 1601 === End of file server.cmd === Start of file valgrind1601 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1601 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1602 ./unit/units unit1602 - > log/6/stdout1602 2> log/6/stderr1602 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1603 ./unit/units unit1603 - > log/4/stdout1603 2> log/4/stderr1603 test 1599...[FTP with netrc using no user but control code in password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1599 ./libtest/libtests lib1599 ftp://127.0.0.1:38733/1599 log/1/netrc1599 > log/1/stdout1599 2> log/1/stderr1599 1599: data FAILED: --- log/1/check-expected 2025-09-11 10:34:08.715014794 +0000 +++ log/1/check-generated 2025-09-11 10:34:08.711014714 +0000 @@ -1 +0,0 @@ --foo-[LF] == Contents of files in the log/1/ dir after test 1599 === Start of file check-expected -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1599 ./libtest/libtests lib1599 ftp://127.0.0.1:38733/1599 log/1/netrc1599 > log/1/stdout1599 2> log/1/stderr1599 === End of file commands.log === Start of file ftp_server.log 10:34:07.841672 ====> Client connect 10:34:07.843035 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:07.848245 < "USER anonymous" 10:34:07.848840 > "331 We are happy you popped in![CR][LF]" 10:34:07.852637 < "PASS ftp@example.com" 10:34:07.853218 > "230 Welcome you silly person[CR][LF]" 10:34:07.862097 < "PWD" 10:34:07.862814 > "257 "/" is current directory[CR][LF]" 10:34:07.868936 < "EPSV" 10:34:07.869653 ====> Passive DATA channel requested by client 10:34:07.870021 DATA sockfilt for passive data channel starting... 10:34:07.886046 DATA sockfilt for passive data channel started (pid 158708) 10:34:07.887592 DATA sockfilt for passive data channel listens on port 40373 10:34:07.888206 > "229 Entering Passive Mode (|||40373|)[LF]" 10:34:07.888526 Client has been notified that DATA conn will be accepted on port 40373 10:34:07.897768 Client connects to port 40373 10:34:07.898404 ====> Client established passive DATA connection on port 40373 10:34:07.899764 < "TYPE I" 10:34:07.900454 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:07.903816 < "SIZE verifiedserver" 10:34:07.904566 > "213 17[CR][LF]" 10:34:07.912312 < "RETR verifiedserver" 10:34:07.913052 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:07.916119 =====> Closing passive DATA connection... 10:34:07.916601 Server disconnects passive DATA connection 10:34:07.919043 Server disconnected passive DATA connection 10:34:07.919551 DATA sockfilt for passive data channel quits (pid 158708) 10:34:07.921729 DATA sockfilt for passive data channel quit (pid 158708) 10:34:07.922261 =====> Closed passive DATA connection 10:34:07.922846 > "226 File transfer complete[CR][LF]" 10:34:07.962853 < "QUIT" 10:34:07.963509 > "221 bye bye baby[CR][LF]" 10:34:07.968747 MAIN sockfilt said DISC 10:34:07.969287 ====> Client disconnected 10:34:07.970038 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:07.507158 ====> Client connect 10:34:07.512916 Received DATA (on stdin) 10:34:07.513226 > 160 bytes data, server => client 10:34:07.513379 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:07.513489 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:07.513600 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:07.514411 < 16 bytes data, client => server 10:34:07.514670 'USER anonymous\r\n' 10:34:07.516197 Received DATA (on stdin) 10:34:07.516412 > 33 bytes data, server => client 10:34:07.516525 '331 We are happy you popped in!\r\n' 10:34:07.518185 < 22 bytes data, client => server 10:34:07.518417 'PASS ftp@example.com\r\n' 10:34:07.523224 Received DATA (on stdin) 10:34:07.523514 > 30 bytes data, server => client 10:34:07.523652 '230 Welcome you silly person\r\n' 10:34:07.526121 < 5 bytes data, client => server 10:34:07.526409 'PWD\r\n' 10:34:07.532932 Received DATA (on stdin) 10:34:07.533224 > 30 bytes data, server => client 10:34:07.533335 '257 "/" is current directory\r\n' 10:34:07.534251 < 6 bytes data, client => server 10:34:07.534493 'EPSV\r\n' 10:34:07.557084 Received DATA (on stdin) 10:34:07.557428 > 38 bytes data, server => client 10:34:07.557591 '229 Entering Passive Mode (|||40373|)\n' 10:34:07.562437 < 8 bytes data, client => server 10:34:07.562642 'TYPE I\r\n' 10:34:07.567874 Received DATA (on stdin) 10:34:07.568153 > 33 bytes data, server => client 10:34:07.568294 '200 I modify TYPE as you wanted\r\n' 10:34:07.569265 < 21 bytes data, client => server 10:34:07.569536 'SIZE verifiedserver\r\n' 10:34:07.577023 Received DATA (on stdin) 10:34:07.577341 > 8 bytes data, server => client 10:34:07.577558 '213 17\r\n' 10:34:07.578631 < 21 bytes data, client => server 10:34:07.578929 'RETR verifiedserver\r\n' 10:34:07.580409 Received DATA (on stdin) 10:34:07.580681 > 29 bytes data, server => client 10:34:07.580923 '150 Binary junk (17 bytes).\r\n' 10:34:07.590845 Received DATA (on stdin) 10:34:07.591123 > 28 bytes data, server => client 10:34:07.591267 '226 File transfer complete\r\n' 10:34:07.628634 < 6 bytes data, client => server 10:34:07.628964 'QUIT\r\n' 10:34:07.632282 Received DATA (on stdin) 10:34:07.632517 > 18 bytes data, server => client 10:34:07.632609 '221 bye bye baby\r\n' 10:34:07.633424 ====> Client disconnect 10:34:07.637921 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:07.548744 Running IPv4 version 10:34:07.549452 Listening on port 40373 10:34:07.549963 Wrote pid 158708 to log/1/server/ftp_sockdata.pid 10:34:07.552419 Received PING (on stdin) 10:34:07.554072 Received PORT (on stdin) 10:34:07.562067 ====> Client connect 10:34:07.584397 Received DATA (on stdin) 10:34:07.584667 > 17 bytes data, server => client 10:34:07.584898 'WE ROOLZ: 79585\r\n' 10:34:07.585433 Received DISC (on stdin) 10:34:07.585779 ====> Client forcibly disconnected 10:34:07.587256 Received QUIT (on stdin) 10:34:07.587462 quits 10:34:07.587968 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc1599 default passwor?dlogin anonymou\ ' password login anonymous passwor?d.'macdef === End of file netrc1599 === Start of file server.cmd Testnum 1599 === End of file server.cmd === Start of file valgrind1599 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1599 test 1602...[Internal hash create/add/destroy testing, exercising clean functions] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1602 ./unit/unitCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1604 ./tunit/tunits tool1604 - > log/3/stdout1604 2> log/3/stderr1604 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1605 ./unit/units unit1605 - > log/7/stdout1605 2> log/7/stderr1605 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1606 ./unit/units unit1606 - > log/5/stdout1606 2> log/5/stderr1606 s unit1602 - > log/6/stdout1602 2> log/6/stderr1602 units returned 1, when expecting 0 1602: exit FAILED == Contents of files in the log/6/ dir after test 1602 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1602 ./unit/units unit1602 - > log/6/stdout1602 2> log/6/stderr1602 === End of file commands.log === Start of file server.cmd Testnum 1602 === End of file server.cmd === Start of file valgrind1602 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1602 test 1603...[Internal hash add, retrieval, deletion testing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1603 ./unit/units unit1603 - > log/4/stdout1603 2> log/4/stderr1603 units returned 1, when expecting 0 1603: exit FAILED == Contents of files in the log/4/ dir after test 1603 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1603 ./unit/units unit1603 - > log/4/stdout1603 2> log/4/stderr1603 === End of file commands.log === Start of file server.cmd Testnum 1603 === End of file server.cmd === Start of file valgrind1603 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1603 test 1604...[Test Windows/MS-DOS filename sanitization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1604 ./tunit/tunits tool1604 - > log/3/stdout1604 2> log/3/stderr1604 tunits returned 1, when expecting 0 1604: exit FAILED == Contents of files in the log/3/ dir after test 1604 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1604 ./tunit/tunits tool1604 - > log/3/stdout1604 2> log/3/stderr1604 === End of file commands.log === Start of file server.cmd Testnum 1604 === End of file server.cmd === Start of file valgrind1604 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1604 test 1605...[Test negative data lengths as input to libcurl functions] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1605 ./unit/units unit1605 - > log/7/stdout1605 2> log/7/stderr1605 units returned 1, when expecting 0 1605: exit FAILED == Contents of files in the log/7/ dir after test 1605 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1605 ./unit/units unit1605 - > log/7/stdout1605 2> log/7/stderr1605 === End of file commands.log === Start of file server.cmd Testnum 1605 === End of file server.cmd === Start of file valgrind1605 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using theCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1607 ./unit/units unit1607 - > log/2/stdout1607 2> log/2/stderr1607 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1608 ./unit/units unit1608 - > log/8/stdout1608 2> log/8/stderr1608 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1609 ./unit/units unit1609 - > log/1/stdout1609 2> log/1/stderr1609 standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1605 test 1606...[verify speedcheck] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1606 ./unit/units unit1606 - > log/5/stdout1606 2> log/5/stderr1606 units returned 1, when expecting 0 1606: exit FAILED == Contents of files in the log/5/ dir after test 1606 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1606 ./unit/units unit1606 - > log/5/stdout1606 2> log/5/stderr1606 === End of file commands.log === Start of file server.cmd Testnum 1606 === End of file server.cmd === Start of file valgrind1606 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1606 test 1607...[CURLOPT_RESOLVE parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1607 ./unit/units unit1607 - > log/2/stdout1607 2> log/2/stderr1607 units returned 1, when expecting 0 1607: exit FAILED == Contents of files in the log/2/ dir after test 1607 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1607 ./unit/units unit1607 - > log/2/stdout1607 2> log/2/stderr1607 === End of file commands.log === Start of file server.cmd Testnum 1607 === End of file server.cmd === Start of file valgrind1607 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1607 test 1609...[CURLOPT_RESOLVE parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1609 ./unit/units unit1609 - > log/1/stdout1609 2> log/1/stderr1609 units returned 1, when expecting 0 1609: exit FAILED == Contents of files in the log/1/ dir after test 1609 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1609 ./unit/units unit1609 - > log/1/stdout1609 2> log/1/stderr1609 === End of file commands.log === Start of file server.cmd Testnum 1609 === End of file server.cmd === Start of file valgrind1609 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1609 test 1608...[verify DNS shuffling] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1608 ./unit/units unit1608 - > log/8/stdout1608 2> log/8/stderr1608 units returned 1, when expecting 0 1608: exit FAILED == Contents of files in the log/8/ dir after test 1608 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1608 ./unit/units unit1608 - > log/8/stdout1608 2> log/8/stderr1608 === End of file commands.log === Start of file server.cmd Testnum 1608 === End of file server.cmd === Start of file valgrind1608 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. DCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1610 ./unit/units unit1610 - > log/6/stdout1610 2> log/6/stderr1610 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1611 ./unit/units unit1611 - > log/4/stdout1611 2> log/4/stderr1611 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1612 ./unit/units unit1612 - > log/3/stdout1612 2> log/3/stderr1612 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1614 ./unit/units unit1614 - > log/5/stdout1614 2> log/5/stderr1614 etails of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1608 test 1610...[SHA256 unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1610 ./unit/units unit1610 - > log/6/stdout1610 2> log/6/stderr1610 units returned 1, when expecting 0 1610: exit FAILED == Contents of files in the log/6/ dir after test 1610 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1610 ./unit/units unit1610 - > log/6/stdout1610 2> log/6/stderr1610 === End of file commands.log === Start of file server.cmd Testnum 1610 === End of file server.cmd === Start of file valgrind1610 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1610 test 1611...[MD4 unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1611 ./unit/units unit1611 - > log/4/stdout1611 2> log/4/stderr1611 units returned 1, when expecting 0 1611: exit FAILED == Contents of files in the log/4/ dir after test 1611 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1611 ./unit/units unit1611 - > log/4/stdout1611 2> log/4/stderr1611 === End of file commands.log === Start of file server.cmd Testnum 1611 === End of file server.cmd === Start of file valgrind1611 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1611 test 1612...[HMAC unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1612 ./unit/units unit1612 - > log/3/stdout1612 2> log/3/stderr1612 units returned 1, when expecting 0 1612: exit FAILED == Contents of files in the log/3/ dir after test 1612 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1612 ./unit/units unit1612 - > log/3/stdout1612 2> log/3/stderr1612 === End of file commands.log === Start of file server.cmd Testnum 1612 === End of file server.cmd === Start of file valgrind1612 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1612 test 1614...[noproxy and cidr comparisons] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1614 ./unit/units unit1614 - > log/5/stdout1614 2> logCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1615 ./unit/units unit1615 - > log/2/stdout1615 2> log/2/stderr1615 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1620 ./unit/units unit1620 - > log/1/stdout1620 2> log/1/stderr1620 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1616 ./unit/units unit1616 - > log/8/stdout1616 2> log/8/stderr1616 /5/stderr1614 units returned 1, when expecting 0 1614: exit FAILED == Contents of files in the log/5/ dir after test 1614 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1614 ./unit/units unit1614 - > log/5/stdout1614 2> log/5/stderr1614 === End of file commands.log === Start of file server.cmd Testnum 1614 === End of file server.cmd === Start of file valgrind1614 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1614 test 1615...[SHA-512/256 unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1615 ./unit/units unit1615 - > log/2/stdout1615 2> log/2/stderr1615 units returned 1, when expecting 0 1615: exit FAILED == Contents of files in the log/2/ dir after test 1615 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1615 ./unit/units unit1615 - > log/2/stdout1615 2> log/2/stderr1615 === End of file commands.log === Start of file server.cmd Testnum 1615 === End of file server.cmd === Start of file valgrind1615 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1615 test 1620...[unit tests for url.c] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1620 ./unit/units unit1620 - > log/1/stdout1620 2> log/1/stderr1620 units returned 1, when expecting 0 1620: exit FAILED == Contents of files in the log/1/ dir after test 1620 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1620 ./unit/units unit1620 - > log/1/stdout1620 2> log/1/stderr1620 === End of file commands.log === Start of file server.cmd Testnum 1620 === End of file server.cmd === Start of file valgrind1620 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1620 test 1616...[Internal uint_hash create/add/destroy testing, exercising clean functions] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1616 ./unit/units unit1616 - > log/8/stdout1616 2> log/8/stderr1616 units returned 1, when expecting 0 1616: exit FAILED == Contents of files in the log/8/ dir after test 1616 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1616 ./unit/units unit1616 - > log/8/stdout1616 2> log/8/stderr1616 === End of file commands.log === Start of file server.cmd Testnum 1616 === End of file server.cmd === Start of file valgrind1616 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The packaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1613 ../src/curl -q --output log/7/curl1613.out --include --trace-ascii log/7/trace1613 --trace-time --request-target '*' -X OPTIONS --proxy http://127.0.0.1:40129/ -H "Testno: 1613" http://www.example.org/ > log/7/stdout1613 2> log/7/stderr1613 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1621 ./tunit/tunits tool1621 - > log/6/stdout1621 2> log/6/stderr1621 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1651 ./unit/units unit1651 - > log/3/stdout1651 2> log/3/stderr1651 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1652 ./unit/units unit1652 - > log/5/stdout1652 2> log/5/stderr1652 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1650 ./unit/units unit1650 - > log/8/stdout1650 2> log/8/stderr1650 ge you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1616 test 1613...[Send "OPTIONS *" with --request-target to a proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1613 ../src/curl -q --output log/7/curl1613.out --include --trace-ascii log/7/trace1613 --trace-time --request-target '*' -X OPTIONS --proxy http://127.0.0.1:40129/ -H "Testno: 1613" http://www.example.org/ > log/7/stdout1613 2> log/7/stderr1613 1613: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1613 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1613 ../src/curl -q --output log/7/curl1613.out --include --trace-ascii log/7/trace1613 --trace-time --request-target '*' -X OPTIONS --proxy http://127.0.0.1:40129/ -H "Testno: 1613" http://www.example.org/ > log/7/stdout1613 2> log/7/stderr1613 === End of file commands.log === Start of file http_server.log 10:34:09.009653 ====> Client connect 10:34:09.010024 accept_connection 3 returned 4 10:34:09.010222 accept_connection 3 returned 0 10:34:09.010403 Read 93 bytes 10:34:09.010561 Process 93 bytes request 10:34:09.010683 Got request: GET /verifiedserver HTTP/1.1 10:34:09.010780 Are-we-friendly question received 10:34:09.011081 Wrote request (93 bytes) input to log/7/server.input 10:34:09.011328 Identifying ourselves as friends 10:34:09.012235 Response sent (56 bytes) and written to log/7/server.response 10:34:09.012426 special request received, no persistency 10:34:09.012506 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 37072 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1613 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1613 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1613 test 1621...[unit tests for stripcredentials from URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1621 ./tunit/tunits tool1621 - > log/6/stdout1621 2> log/6/stderr1621 tunits returned 1, when expecting 0 1621: exit FAILED == Contents of files in the log/6/ dir after test 1621 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1621 ./tunit/tunits tool1621 - > log/6/stdout1621 2> log/6/stderr1621 === End of file commands.log === Start of file server.cmd Testnum 1621 === End of file server.cmd === Start of file valgrind1621 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1621 test 1651...[x509 parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1651 ./unit/units unit1651 - > log/3/stdout1651 2> log/3/stderr1651 units returned 1, when expecting 0 1651: exit FAILED == Contents of files in the log/3/ dir after test 1651 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1651 ./unit/units unit1651 - > log/3/stdout1651 2> log/3/stderr1651 === End of file commands.log === Start of file server.cmd Testnum 1651 === End of file server.cmd === Start of file valgrind1651 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1633 ../src/curl -q --output log/4/curl1633.out --include --trace-ascii log/4/trace1633 --trace-time http://127.0.0.1:36757/1633 -d moo --retry 1 -L > log/4/stdout1633 2> log/4/stderr1633 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1653 ./unit/units unit1653 - > log/7/stdout1653 2> log/7/stderr1653 term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1651 test 1652...[infof] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1652 ./unit/units unit1652 - > log/5/stdout1652 2> log/5/stderr1652 units returned 1, when expecting 0 1652: exit FAILED == Contents of files in the log/5/ dir after test 1652 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1652 ./unit/units unit1652 - > log/5/stdout1652 2> log/5/stderr1652 === End of file commands.log === Start of file server.cmd Testnum 1652 === End of file server.cmd === Start of file valgrind1652 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1652 test 1650...[DoH parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1650 ./unit/units unit1650 - > log/8/stdout1650 2> log/8/stderr1650 units returned 1, when expecting 0 1650: exit FAILED == Contents of files in the log/8/ dir after test 1650 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1650 ./unit/units unit1650 - > log/8/stdout1650 2> log/8/stderr1650 === End of file commands.log === Start of file server.cmd Testnum 1650 === End of file server.cmd === Start of file valgrind1650 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1650 test 1633...[--retry with a 429 response and Retry-After:] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1633 ../src/curl -q --output log/4/curl1633.out --include --trace-ascii log/4/trace1633 --trace-time http://127.0.0.1:36757/1633 -d moo --retry 1 -L > log/4/stdout1633 2> log/4/stderr1633 1633: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1633 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1633 ../src/curl -q --output log/4/curl1633.out --include --trace-ascii log/4/trace1633 --trace-time http://127.0.0.1:36757/1633 -d moo --retry 1 -L > log/4/stdout1633 2> log/4/stderr1633 === End of file commands.log === Start of file http_server.log 10:34:10.700858 ====> Client connect 10:34:10.701397 accept_connection 3 returned 4 10:34:10.701632 accept_connection 3 returned 0 10:34:10.701787 Read 93 bytes 10:34:10.701888 Process 93 bytes request 10:34:10.701979 Got request: GET /verifiedserver HTTP/1.1 10:34:10.703902 Are-we-friendly question received 10:34:10.704292 Wrote request (93 bytes) input to log/4/server.input 10:34:10.704497 Identifying ourselves as friends 10:34:10.705439 Response sent (56 bytes) and written to log/4/server.response 10:34:10.705568 special request received, no persistency 10:34:10.705652 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 49908 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1633 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1633 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64dCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1635 ../src/curl -q --trace-ascii log/1/trace1635 --trace-time http://127.0.0.1:42781/1635 --retry 1 --fail-with-body > log/1/stdout1635 2> log/1/stderr1635 .so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1633 test 1653...[urlapi port number parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1653 ./unit/units unit1653 - > log/7/stdout1653 2> log/7/stderr1653 units returned 1, when expecting 0 1653: exit FAILED == Contents of files in the log/7/ dir after test 1653 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1653 ./unit/units unit1653 - > log/7/stdout1653 2> log/7/stderr1653 === End of file commands.log === Start of file server.cmd Testnum 1653 === End of file server.cmd === Start of file valgrind1653 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1653 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1634 ../src/curl -q --output log/2/curl1634.out --include --trace-ascii log/2/trace1634 --trace-time http://127.0.0.1:43789/1634 --retry 1 --fail > log/2/stdout1634 2> log/2/stderr1634 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1654 ./unit/units unit1654 log/6/1654 > log/6/stdout1654 2> log/6/stderr1654 test 1635...[--retry with a 429 response and Retry-After: and --fail-with-body] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1635 ../src/curl -q --trace-ascii log/1/trace1635 --trace-time http://127.0.0.1:42781/1635 --retry 1 --fail-with-body > log/1/stdout1635 2> log/1/stderr1635 1635: stdout FAILED: --- log/1/check-expected 2025-09-11 10:34:10.995060180 +0000 +++ log/1/check-generated 2025-09-11 10:34:10.995060180 +0000 @@ -1,2 +0,0 @@ -moo[LF] -hey[LF] == Contents of files in the log/1/ dir after test 1635 === Start of file check-expected moo[LF] hey[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1635 ../src/curl -q --trace-ascii log/1/trace1635 --trace-time http://127.0.0.1:42781/1635 --retry 1 --fail-with-body > log/1/stdout1635 2> log/1/stderr1635 === End of file commands.log === Start of file http_server.log 10:34:09.865369 ====> Client connect 10:34:09.865718 accept_connection 3 returned 4 10:34:09.865932 accept_connection 3 returned 0 10:34:09.866070 Read 93 bytes 10:34:09.866160 Process 93 bytes request 10:34:09.866249 Got request: GET /verifiedserver HTTP/1.1 10:34:09.866320 Are-we-friendly question received 10:34:09.866588 Wrote request (93 bytes) input to log/1/server.input 10:34:09.866807 Identifying ourselves as friends 10:34:09.867657 Response sent (57 bytes) and written to log/1/server.response 10:34:09.867799 special request received, no persistency 10:34:09.867874 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 40766 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 1635 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1635 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1635 test 1634...[--retry with a 429 response and Retry-After: and --fail] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1634 ../src/curl -q --output log/2/curl1634.out --include --trace-ascii log/2/trace1634 --trace-time http://127.0.0.1:43789/1634 --retry 1 --fail > log/2/stdout1634 2> log/2/stderr1634 1634: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1634 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1634 ../src/curl -q --output log/2/curl1634.out --include --trace-ascii log/2/trace1634 --trace-time http://127.0.0.1:43789/1634 --retry 1 --fail > log/2/stdout1634 2> log/2/stderr1634 === End of file commands.log === Start of file http_server.log 10:34:09.837229 ====> Client connect 10:34:09.837641 accept_connection 3 returned 4 10:34:09.837866 accept_connection 3 returned 0 10:34:09.838048 Read 93 bytes 10:34:09.838184 Process 93 bytes request 10:34:09.838303 Got request: GET /verifiedserver HTTP/1.1 10:34:09.838394 Are-we-friendly question received 10:34:09.838685 Wrote request (93 bytes) input to log/2/server.input 10:34:09.838971 Identifying ourselves as friends 10:34:09.840009 Response sent (56 bytes) and written to log/2/server.response 10:34:09.840237 special request received, no persistency 10:34:09.846352 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50190 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1634 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1634 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1634 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1655 ./unit/units unit1655 - > log/3/stdout1655 2> log/3/stderr1655 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1656 ./unit/units unit1656 - > log/8/stdout1656 2> log/8/stderr1656 setenv CURL_TIME = 1548369261 test 1654...[alt-svc] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1654 ./unit/units unit1654 log/6/1654 > log/6/stdout1654 2> log/6/stderr1654 1654: output (log/6/1654-out) FAILED: --- log/6/check-expected 2025-09-11 10:34:11.119062649 +0000 +++ log/6/check-generated 2025-09-11 10:34:11.115062569 +0000 @@ -1,12 +0,0 @@ -# Your alt-svc cache. https://curl.se/docs/alt-svc.html[CR][LF] -# This file was generated by libcurl! Edit at your own risk.[CR][LF] -h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0[CR][LF] -h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0[CR][LF] -h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0[CR][LF] -h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0[CR][LF] -h1 example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0[CR][LF] -h1 2.example.org 8080 h3 2.example.org 8080 "20190125 22:34:21" 0 0[CR][LF] -h1 3.example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0[CR][LF] -h1 3.example.org 8080 h3 yesyes.com 8080 "20190125 22:34:21" 0 0[CR][LF] -h2 example.org 80 h2 example.com 443 "20190124 22:36:21" 0 0[CR][LF] -h2 example.net 80 h2 example.net 443 "20190124 22:37:21" 0 0[CR][LF] == Contents of files in the log/6/ dir after test 1654 === Start of file 1654 h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0 # a comment h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0 h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0 h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0 # also a comment bad example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0 rubbish === End of file 1654 === Start of file check-expected # Your alt-svc cache. https://curl.se/docs/alt-svc.html[CR][LF] # This file was generated by libcurl! Edit at your own risk.[CR][LF] h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0[CR][LF] h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0[CR][LF] h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0[CR][LF] h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0[CR][LF] h1 example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0[CR][LF] h1 2.example.org 8080 h3 2.example.org 8080 "20190125 22:34:21" 0 0[CR][LF] h1 3.example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0[CR][LF] h1 3.example.org 8080 h3 yesyes.com 8080 "20190125 22:34:21" 0 0[CR][LF] h2 example.org 80 h2 example.com 443 "20190124 22:36:21" 0 0[CR][LF] h2 example.net 80 h2 example.net 443 "20190124 22:37:21" 0 0[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1654 ./unit/units unit1654 log/6/1654 > log/6/stdout1654 2> log/6/stderr1654 === End of file commands.log === Start of file server.cmd Testnum 1654 === End of file server.cmd === Start of file valgrind1654 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1654 test 1655...[unit test for doh_req_encode] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1655 ./unit/units unit1655 - > log/3/stdout1655 2> log/3/stderr1655 units returned 1, when expecting 0 1655: exit FAILED == Contents of files in the log/3/ dir after test 1655 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1655 ./unit/units unit1655 - > log/3/stdout1655 2> log/3/stderr1655 === End of file commands.log === Start of file server.cmd Testnum 1655 === End of file server.cmd === Start of file valgrind1655 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1655 test 1656...[Curl_x509_GTime2str unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1656 ./unit/units unit1656 - > log/8/stdout1656 2> log/8/stderr1656 units returned 1, when expecting 0 1656: exit FAILED == Contents of files in the log/8/ dir after test 1656 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1656 ./unit/units unit1656 - > log/8/stdout1656 2> log/8/stderr1656 === End of file commands.log === Start of file server.cmd Testnum 1656 === End of file server.cmd === Start of file valgrind1656 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1657 ./unit/units unit1657 - > log/5/stdout1657 2> log/5/stderr1657 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1658 ./unit/units unit1658 - > log/4/stdout1658 2> log/4/stderr1658 ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1656 test 1657...[Curl_x509_getASN1Element unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1657 ./unit/units unit1657 - > log/5/stdout1657 2> log/5/stderr1657 units returned 1, when expecting 0 1657: exit FAILED == Contents of files in the log/5/ dir after test 1657 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1657 ./unit/units unit1657 - > log/5/stdout1657 2> log/5/stderr1657 === End of file commands.log === Start of file server.cmd Testnum 1657 === End of file server.cmd === Start of file valgrind1657 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1657 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1661 ./unit/units unit1661 - > log/1/stdout1661 2> log/1/stderr1661 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1663 ./unit/units unit1663 - > log/2/stdout1663 2> log/2/stderr1663 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1660 ./unit/units unit1660 log/7/hsts1660 > log/7/stdout1660 2> log/7/stderr1660 test 1658...[unit test for doh_resp_decode_httpsrr] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1658 ./unit/units unit1658 - > log/4/stdout1658 2> log/4/stderr1658 1658: stderr FAILED: --- log/4/check-expected 2025-09-11 10:34:11.659073398 +0000 +++ log/4/check-generated 2025-09-11 10:34:11.659073398 +0000 @@ -1,2 +0,0 @@ -URL: -[CR][LF] -Test ended with result 0[CR][LF] == Contents of files in the log/4/ dir after test 1658 === Start of file check-expected URL: -[CR][LF] Test ended with result 0[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1658 ./unit/units unit1658 - > log/4/stdout1658 2> log/4/stderr1658 === End of file commands.log === Start of file server.cmd Testnum 1658 === End of file server.cmd === Start of file valgrind1658 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1658 test 1661...[bufref unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1661 ./unit/units unit1661 - > log/1/stdout1661 2> log/1/stderr1661 units returned 1, when expecting 0 1661: exit FAILED == Contents of files in the log/1/ dir after test 1661 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1661 ./unit/units unit1661 - > log/1/stdout1661 2> log/1/stderr1661 === End of file commands.log === Start of file server.cmd Testnum 1661 === End of file server.cmd === Start of file valgrind1661 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1661 test 1663...[unit tests for interface option parsing] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1663 ./unit/units unit1663 - > log/2/stdout1663 2> log/2/stderr1663 units returned 1, when expecting 0 1663: exit FAILED == Contents of files in the log/2/ dir after test 1663 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1663 ./unit/units unit1663 - > log/2/stdout1663 2> log/2/stderr1663 === End of file commands.log === Start of file server.cmd Testnum 1663 === End of file server.cmd === Start of file valgrind1663 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1663 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1664 ./unit/units unit1664 - > log/6/stdout1664 2> log/6/stderr1664 setenv CURL_TIME = 1548369261 test 1660...[HSTS] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1660 ./unit/units unit1660 log/7/hsts1660 > log/7/stdout1660 2> log/7/stderr1660 1660: stdout FAILED: --- log/7/check-expected 2025-09-11 10:34:11.827076742 +0000 +++ log/7/check-generated 2025-09-11 10:34:11.827076742 +0000 @@ -1,34 +0,0 @@ -readfrom.example [readfrom.example]: 1633063661 includeSubDomains[LF] -'old.example' is not HSTS[LF] -'readfrom.example' is not HSTS[LF] -example.com [example.com]: 1579905261[LF] -example.com [example.com]: 1569905261[LF] -example.com [example.com]: 1569905261[LF] -example.com [example.com]: 1569905261 includeSubDomains[LF] -example.org [example.org]: 1579905261[LF] -Input 8: error 43[LF] -Input 9: error 43[LF] -this.example [this.example]: 1548400797[LF] -'this.example' is not HSTS[LF] -Input 12: error 43[LF] -Input 13: error 43[LF] -Input 14: error 43[LF] -3.example.com [3.example.com]: 1569905261 includeSubDomains[LF] -3.example.com [example.com]: 1569905261 includeSubDomains[LF] -foo.example.com [example.com]: 1569905261 includeSubDomains[LF] -'foo.xample.com' is not HSTS[LF] -'forexample.net' is not HSTS[LF] -'forexample.net' is not HSTS[LF] -'example.net' is not HSTS[LF] -expire.example [expire.example]: 1548369268[LF] -Number of entries: 4[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -expire.example [expire.example]: 1548369268[LF] -'expire.example' is not HSTS[LF] -'expire.example' is not HSTS[LF] -'expire.example' is not HSTS[LF] == Contents of files in the log/7/ dir after test 1660 === Start of file check-expected readfrom.example [readfrom.example]: 1633063661 includeSubDomains[LF] 'old.example' is not HSTS[LF] 'readfrom.example' is not HSTS[LF] example.com [example.com]: 1579905261[LF] example.com [example.com]: 1569905261[LF] example.com [example.com]: 1569905261[LF] example.com [example.com]: 1569905261 includeSubDomains[LF] example.org [example.org]: 1579905261[LF] Input 8: error 43[LF] Input 9: error 43[LF] this.example [this.example]: 1548400797[LF] 'this.example' is not HSTS[LF] Input 12: error 43[LF] Input 13: error 43[LF] Input 14: error 43[LF] 3.example.com [3.example.com]: 1569905261 includeSubDomains[LF] 3.example.com [example.com]: 1569905261 includeSubDomains[LF] foo.example.com [example.com]: 1569905261 includeSubDomains[LF] 'foo.xample.com' is not HSTS[LF] 'forexample.net' is not HSTS[LF] 'forexample.net' is not HSTS[LF] 'example.net' is not HSTS[LF] expire.example [expire.example]: 1548369268[LF] Number of entries: 4[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] expire.example [expire.example]: 1548369268[LF] 'expire.example' is not HSTS[LF] 'expire.example' is not HSTS[LF] 'expire.example' is not HSTS[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1660 ./unit/units unit1660 log/7/hsts1660 > log/7/stdout1660 2> log/7/stderr1660 === End of file commands.log === Start of file hsts1660 # Your HSTS cache. https://curl.se/docs/hsts.html # This file was generated by libcurl! Edit at your own risk. .readfrom.example "20211001 04:47:41" .old.example "20161001 04:47:41" .new.example "unlimited" === End of file hsts1660 === Start of file server.cmd Testnum 1660 === End of file server.cmd === Start of file valgrind1660 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1660 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1670 ../src/curl -q --include --trace-ascii log/3/trace1670 --trace-time http://127.0.0.1:36933/1670 -w '%header{etag} %header{nope} %header{DATE}\n' -o log/3/1670.out > log/3/stdout1670 2> log/3/stderr1670 test 1664...[unit tests for strparse.c string parsing functions] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1664 ./unit/units unit1664 - > log/6/stdout1664 2> log/6/stderr1664 1664: stdout FAILED: --- log/6/check-expected 2025-09-11 10:34:12.295086059 +0000 +++ log/6/check-generated 2025-09-11 10:34:12.295086059 +0000 @@ -1,212 +0,0 @@ -curlx_str_word[LF] -0: ("word") 0, "word" [4], line 4[LF] -1: ("word ") 0, "word" [4], line 4[LF] -2: (" word ") 2, "" [0], line 0[LF] -3: ("wo rd") 0, "wo" [2], line 2[LF] -4: ("word(") 0, "word(" [5], line 5[LF] -5: ("wor(d") 0, "wor(d" [5], line 5[LF] -6: ("perfect") 0, "perfect" [7], line 7[LF] -7: ("") 2, "" [0], line 0[LF] -8: ("longerth") 1, "" [0], line 0[LF] -curlx_str_until[LF] -0: ("word") 0, "wor" [3], line 3[LF] -1: ("word ") 0, "wor" [3], line 3[LF] -2: (" word ") 0, " wor" [4], line 4[LF] -3: ("wo rd") 0, "wo r" [4], line 4[LF] -4: ("word(") 0, "wor" [3], line 3[LF] -5: ("wor(d") 0, "wor(" [4], line 4[LF] -6: ("perfect") 0, "perfect" [7], line 7[LF] -7: ("") 2, "" [0], line 0[LF] -8: ("longerth") 1, "" [0], line 0[LF] -curlx_str_quotedword[LF] -0: (""word"") 0, "word" [4], line 6[LF] -1: (""word") 4, "" [0], line 0[LF] -2: ("word"") 3, "" [0], line 0[LF] -3: (""word""") 0, "word" [4], line 6[LF] -4: (""word" ") 0, "word" [4], line 6[LF] -5: (" "word"") 3, "" [0], line 0[LF] -6: (""perfect"") 0, "perfect" [7], line 9[LF] -7: (""p r e t"") 0, "p r e t" [7], line 9[LF] -8: (""perfec\"") 0, "perfec\" [7], line 9[LF] -9: ("""") 0, "" [0], line 2[LF] -10: ("") 3, "" [0], line 0[LF] -11: (""longerth"") 1, "" [0], line 0[LF] -curlx_str_single[LF] -0: ("a") 0, line 1[LF] -1: ("aa") 0, line 1[LF] -2: ("A") 5, line 0[LF] -3: ("b") 5, line 0[LF] -4: ("\") 5, line 0[LF] -5: (" ") 5, line 0[LF] -6: ("") 5, line 0[LF] -curlx_str_singlespace[LF] -0: ("a") 5, line 0[LF] -1: ("aa") 5, line 0[LF] -2: ("A") 5, line 0[LF] -3: ("b") 5, line 0[LF] -4: ("\") 5, line 0[LF] -5: (" ") 0, line 1[LF] -6: ("%09") 5, line 0[LF] -7: ("[LF] -") 5, line 0[LF] -8: ("") 5, line 0[LF] -curlx_str_single[LF] -0: ("a") 0, line 1[LF] -1: ("aa") 0, line 1[LF] -2: ("A") 5, line 0[LF] -3: ("b") 5, line 0[LF] -4: ("\") 5, line 0[LF] -5: (" ") 5, line 0[LF] -6: ("") 5, line 0[LF] -curlx_str_number[LF] -0: ("1") 0, [1] line 1[LF] -1: ("10000") 7, [0] line 0[LF] -2: ("1234") 0, [1234] line 4[LF] -3: ("1235") 0, [1235] line 4[LF] -4: ("1236") 7, [0] line 0[LF] -5: ("01234") 0, [1234] line 5[LF] -6: ("00000000000000000000000000001234") 0, [1234] line 32[LF] -7: ("0123 345") 0, [123] line 4[LF] -8: ("0123O345") 0, [123] line 4[LF] -9: ("-12") 8, [0] line 0[LF] -10: (" 123") 8, [0] line 0[LF] -11: ("") 8, [0] line 0[LF] -curlx_str_number varying max[LF] -0: ("00") max 8 == 0, [0][LF] -1: ("1") max 8 == 0, [1][LF] -2: ("1") max 1 == 0, [1][LF] -3: ("2") max 1 == 7, [0][LF] -4: ("2") max 2 == 0, [2][LF] -5: ("5") max 6 == 0, [5][LF] -6: ("000000000000000000000006") max 6 == 0, [6][LF] -7: ("7") max 6 == 7, [0][LF] -8: ("8") max 6 == 7, [0][LF] -9: ("9") max 8 == 7, [0][LF] -10: ("10") max 10 == 0, [10][LF] -11: ("11") max 10 == 7, [0][LF] -12: ("12") max 10 == 7, [0][LF] -curlx_str_hex varying max[LF] -0: ("00") max 8 == 0, [0][LF] -1: ("1") max 8 == 0, [1][LF] -2: ("1") max 1 == 0, [1][LF] -3: ("2") max 1 == 7, [0][LF] -4: ("2") max 2 == 0, [2][LF] -5: ("5") max 6 == 0, [5][LF] -6: ("000000000000000000000006") max 6 == 0, [6][LF] -7: ("7") max 6 == 7, [0][LF] -8: ("8") max 6 == 7, [0][LF] -9: ("9") max 8 == 7, [0][LF] -10: ("a") max 14 == 0, [10][LF] -11: ("b") max 14 == 0, [11][LF] -12: ("c") max 14 == 0, [12][LF] -13: ("d") max 14 == 0, [13][LF] -14: ("e") max 14 == 0, [14][LF] -15: ("f") max 14 == 7, [0][LF] -16: ("f") max 15 == 0, [15][LF] -17: ("10") max 16 == 0, [16][LF] -18: ("11") max 16 == 7, [0][LF] -19: ("12") max 16 == 7, [0][LF] -curlx_str_octal varying max[LF] -0: ("00") max 4 == 0, [0][LF] -1: ("1") max 4 == 0, [1][LF] -2: ("1") max 4 == 0, [1][LF] -3: ("2") max 4 == 0, [2][LF] -4: ("3") max 4 == 0, [3][LF] -5: ("4") max 4 == 0, [4][LF] -6: ("5") max 4 == 7, [0][LF] -7: ("000000000000000000000006") max 6 == 0, [6][LF] -8: ("7") max 7 == 0, [7][LF] -9: ("10") max 8 == 0, [8][LF] -10: ("11") max 8 == 7, [0][LF] -11: ("11") max 9 == 0, [9][LF] -12: ("12") max 9 == 7, [0][LF] -13: ("13") max 9 == 7, [0][LF] -14: ("8") max 10 == 8, [0][LF] -curlx_str_number / max[LF] -0: ("9223372036854775807") 0, [9223372036854775807] line 19[LF] -1: ("9223372036854775808") 7, [0] line 0[LF] -2: ("18446744073709551615") 7, [0] line 0[LF] -3: ("18446744073709551616") 7, [0] line 0[LF] -4: ("18446744073709551617") 7, [0] line 0[LF] -5: ("0123456799a") 0, [123456799] line 10[LF] -6: ("0123456789") 0, [123456789] line 10[LF] -7: ("123498760b") 0, [123498760] line 9[LF] -8: ("1234987607611298232") 0, [1234987607611298232] line 19[LF] -9: ("1111111111111111111") 0, [1111111111111111111] line 19[LF] -10: ("2222222222222222222") 0, [2222222222222222222] line 19[LF] -11: ("00000000000000000000000000000009223372036854775807") 0, [9223372036854775807] line 50[LF] -12: ("3333333333333333333") 0, [3333333333333333333] line 19[LF] -13: ("4444444444444444444") 0, [4444444444444444444] line 19[LF] -14: ("5555555555555555555") 0, [5555555555555555555] line 19[LF] -15: ("6666666666666666666") 0, [6666666666666666666] line 19[LF] -16: ("7777777777777777777") 0, [7777777777777777777] line 19[LF] -17: ("8888888888888888888") 0, [8888888888888888888] line 19[LF] -18: ("999999999999999999") 0, [999999999999999999] line 18[LF] -curlx_str_newline[LF] -0: (%61) 6, line 0[LF] -1: (%61) 6, line 0[LF] -2: (%41) 6, line 0[LF] -3: (%62) 6, line 0[LF] -4: (%5c) 6, line 0[LF] -5: (%20) 6, line 0[LF] -6: (%0a) 0, line 1[LF] -7: (%0d) 0, line 1[LF] -8: (%0d) 0, line 1[LF] -9: (%0c) 6, line 0[LF] -10: (%00) 6, line 0[LF] -curlx_str_hex[LF] -0: ("1") 0, [1] line 1[LF] -1: ("1000") 0, [4096] line 4[LF] -2: ("1234") 0, [4660] line 4[LF] -3: ("1235") 0, [4661] line 4[LF] -4: ("1236") 7, [0] line 0[LF] -5: ("01234") 0, [4660] line 5[LF] -6: ("00000000000000000000000000001234") 0, [4660] line 32[LF] -7: ("0123 345") 0, [291] line 4[LF] -8: ("0123O345") 0, [291] line 4[LF] -9: ("-12") 8, [0] line 0[LF] -10: (" 123") 8, [0] line 0[LF] -11: ("") 8, [0] line 0[LF] -curlx_str_octal[LF] -0: ("1") 0, [1] line 1[LF] -1: ("1000") 0, [512] line 4[LF] -2: ("1234") 0, [668] line 4[LF] -3: ("1235") 0, [669] line 4[LF] -4: ("1236") 7, [0] line 0[LF] -5: ("01234") 0, [668] line 5[LF] -6: ("00000000000000000000000000001234") 0, [668] line 32[LF] -7: ("0123 345") 0, [83] line 4[LF] -8: ("0123O345") 0, [83] line 4[LF] -9: ("-12") 8, [0] line 0[LF] -10: (" 123") 8, [0] line 0[LF] -11: ("") 8, [0] line 0[LF] -curlx_str_octal / max[LF] -0: ("777777777777777777777") 0, [9223372036854775807] line 21[LF] -1: ("1000000000000000000000") 7, [0] line 0[LF] -2: ("111111111111111111111") 0, [1317624576693539401] line 21[LF] -3: ("222222222222222222222") 0, [2635249153387078802] line 21[LF] -4: ("333333333333333333333") 0, [3952873730080618203] line 21[LF] -5: ("444444444444444444444") 0, [5270498306774157604] line 21[LF] -6: ("555555555555555555555") 0, [6588122883467697005] line 21[LF] -7: ("666666666666666666666") 0, [7905747460161236406] line 21[LF] -curlx_str_hex / max[LF] -0: ("7FFFFFFFFFFFFFFF") 0, [9223372036854775807] line 16[LF] -1: ("8000000000000000") 7, [0] line 0[LF] -2: ("1111111111111111") 0, [1229782938247303441] line 16[LF] -3: ("2222222222222222") 0, [2459565876494606882] line 16[LF] -4: ("3333333333333333") 0, [3689348814741910323] line 16[LF] -5: ("4444444444444444") 0, [4919131752989213764] line 16[LF] -6: ("5555555555555555") 0, [6148914691236517205] line 16[LF] -7: ("6666666666666666") 0, [7378697629483820646] line 16[LF] -8: ("7777777777777777") 0, [8608480567731124087] line 16[LF] -9: ("888888888888888") 0, [614891469123651720] line 15[LF] -10: ("999999999999999") 0, [691752902764108185] line 15[LF] -11: ("aaaaaaaaAAAAAAA") 0, [768614336404564650] line 15[LF] -12: ("bbbbbbbbBBBBBBB") 0, [845475770045021115] line 15[LF] -13: ("BBBBBBBBbbbbbbb") 0, [845475770045021115] line 15[LF] -14: ("ccccccccCCCCCCC") 0, [922337203685477580] line 15[LF] -15: ("ddddddddDDDDDDD") 0, [999198637325934045] line 15[LF] -16: ("eeeeeeeeEEEEEEE") 0, [1076060070966390510] line 15[LF] -17: ("ffffffffFFFFFFF") 0, [1152921504606846975] line 15[LF] -18: ("abcdef") 0, [11259375] line 6[LF] -19: ("ABCDEF") 0, [11259375] line 6[LF] == Contents of files in the log/6/ dir after test 1664 === Start of file check-expected curlx_str_word[LF] 0: ("word") 0, "word" [4], line 4[LF] 1: ("word ") 0, "word" [4], line 4[LF] 2: (" word ") 2, "" [0], line 0[LF] 3: ("wo rd") 0, "wo" [2], line 2[LF] 4: ("word(") 0, "word(" [5], line 5[LF] 5: ("wor(d") 0, "wor(d" [5], line 5[LF] 6: ("perfect") 0, "perfect" [7], line 7[LF] 7: ("") 2, "" [0], line 0[LF] 8: ("longerth") 1, "" [0], line 0[LF] curlx_str_until[LF] 0: ("word") 0, "wor" [3], line 3[LF] 1: ("word ") 0, "wor" [3], line 3[LF] 2: (" word ") 0, " wor" [4], line 4[LF] 3: ("wo rd") 0, "wo r" [4], line 4[LF] 4: ("word(") 0, "wor" [3], line 3[LF] 5: ("wor(d") 0, "wor(" [4], line 4[LF] 6: ("perfect") 0, "perfect" [7], line 7[LF] 7: ("") 2, "" [0], line 0[LF] 8: ("longerth") 1, "" [0], line 0[LF] curlx_str_quotedword[LF] 0: (""word"") 0, "word" [4], line 6[LF] 1: (""word") 4, "" [0], line 0[LF] 2: ("word"") 3, "" [0], line 0[LF] 3: (""word""") 0, "word" [4], line 6[LF] 4: (""word" ") 0, "word" [4], line 6[LF] 5: (" "word"") 3, "" [0], line 0[LF] 6: (""perfect"") 0, "perfect" [7], line 9[LF] 7: (""p r e t"") 0, "p r e t" [7], line 9[LF] 8: (""perfec\"") 0, "perfec\" [7], line 9[LF] 9: ("""") 0, "" [0], line 2[LF] 10: ("") 3, "" [0], line 0[LF] 11: (""longerth"") 1, "" [0], line 0[LF] curlx_str_single[LF] 0: ("a") 0, line 1[LF] 1: ("aa") 0, line 1[LF] 2: ("A") 5, line 0[LF] 3: ("b") 5, line 0[LF] 4: ("\") 5, line 0[LF] 5: (" ") 5, line 0[LF] 6: ("") 5, line 0[LF] curlx_str_singlespace[LF] 0: ("a") 5, line 0[LF] 1: ("aa") 5, line 0[LF] 2: ("A") 5, line 0[LF] 3: ("b") 5, line 0[LF] 4: ("\") 5, line 0[LF] 5: (" ") 0, line 1[LF] 6: ("%09") 5, line 0[LF] 7: ("[LF] ") 5, line 0[LF] 8: ("") 5, line 0[LF] curlx_str_single[LF] 0: ("a") 0, line 1[LF] 1: ("aa") 0, line 1[LF] 2: ("A") 5, line 0[LF] 3: ("b") 5, line 0[LF] 4: ("\") 5, line 0[LF] 5: (" ") 5, line 0[LF] 6: ("") 5, line 0[LF] curlx_str_number[LF] 0: ("1") 0, [1] line 1[LF] 1: ("10000") 7, [0] line 0[LF] 2: ("1234") 0, [1234] line 4[LF] 3: ("1235") 0, [1235] line 4[LF] 4: ("1236") 7, [0] line 0[LF] 5: ("01234") 0, [1234] line 5[LF] 6: ("00000000000000000000000000001234") 0, [1234] line 32[LF] 7: ("0123 345") 0, [123] line 4[LF] 8: ("0123O345") 0, [123] line 4[LF] 9: ("-12") 8, [0] line 0[LF] 10: (" 123") 8, [0] line 0[LF] 11: ("") 8, [0] line 0[LF] curlx_str_number varying max[LF] 0: ("00") max 8 == 0, [0][LF] 1: ("1") max 8 == 0, [1][LF] 2: ("1") max 1 == 0, [1][LF] 3: ("2") max 1 == 7, [0][LF] 4: ("2") max 2 == 0, [2][LF] 5: ("5") max 6 == 0, [5][LF] 6: ("000000000000000000000006") max 6 == 0, [6][LF] 7: ("7") max 6 == 7, [0][LF] 8: ("8") max 6 == 7, [0][LF] 9: ("9") max 8 == 7, [0][LF] 10: ("10") max 10 == 0, [10][LF] 11: ("11") max 10 == 7, [0][LF] 12: ("12") max 10 == 7, [0][LF] curlx_str_hex varying max[LF] 0: ("00") max 8 == 0, [0][LF] 1: ("1") max 8 == 0, [1][LF] 2: ("1") max 1 == 0, [1][LF] 3: ("2") max 1 == 7, [0][LF] 4: ("2") max 2 == 0, [2][LF] 5: ("5") max 6 == 0, [5][LF] 6: ("000000000000000000000006") max 6 == 0, [6][LF] 7: ("7") max 6 == 7, [0][LF] 8: ("8") max 6 == 7, [0][LF] 9: ("9") max 8 == 7, [0][LF] 10: ("a") max 14 == 0, [10][LF] 11: ("b") max 14 == 0, [11][LF] 12: ("c") max 14 == 0, [12][LF] 13: ("d") max 14 == 0, [13][LF] 14: ("e") max 14 == 0, [14][LF] 15: ("f") max 14 == 7, [0][LF] 16: ("f") max 15 == 0, [15][LF] 17: ("10") max 16 == 0, [16][LF] 18: ("11") max 16 == 7, [0][LF] 19: ("12") max 16 == 7, [0][LF] curlx_str_octal varying max[LF] 0: ("00") max 4 == 0, [0][LF] 1: ("1") max 4 == 0, [1][LF] 2: ("1") max 4 == 0, [1][LF] 3: ("2") max 4 == 0, [2][LF] 4: ("3") max 4 == 0, [3][LF] 5: ("4") max 4 == 0, [4][LF] 6: ("5") max 4 == 7, [0][LF] 7: ("000000000000000000000006") max 6 == 0, [6][LF] 8: ("7") max 7 == 0, [7][LF] 9: ("10") max 8 == 0, [8][LF] 10: ("11") max 8 == 7, [0][LF] 11: ("11") max 9 == 0, [9][LF] 12: ("12") max 9 == 7, [0][LF] 13: ("13") max 9 == 7, [0][LF] 14: ("8") max 10 == 8, [0][LF] curlx_str_number / max[LF] 0: ("9223372036854775807") 0, [9223372036854775807] line 19[LF] 1: ("9223372036854775808") 7, [0] line 0[LF] 2: ("18446744073709551615") 7, [0] line 0[LF] 3: ("18446744073709551616") 7, [0] line 0[LF] 4: ("18446744073709551617") 7, [0] line 0[LF] 5: ("0123456799a") 0, [123456799] line 10[LF] 6: ("0123456789") 0, [123456789] line 10[LF] 7: ("123498760b") 0, [123498760] line 9[LF] 8: ("1234987607611298232") 0, [1234987607611298232] line 19[LF] 9: ("1111111111111111111") 0, [1111111111111111111] line 19[LF] 10: ("2222222222222222222") 0, [2222222222222222222] line 19[LF] 11: ("00000000000000000000000000000009223372036854775807") 0, [9223372036854775807] line 50[LF] 12: ("3333333333333333333") 0, [3333333333333333333] line 19[LF] 13: ("4444444444444444444") 0, [4444444444444444444] line 19[LF] 14: ("5555555555555555555") 0, [5555555555555555555] line 19[LF] 15: ("6666666666666666666") 0, [6666666666666666666] line 19[LF] 16: ("7777777777777777777") 0, [7777777777777777777] line 19[LF] 17: ("8888888888888888888") 0, [8888888888888888888] line 19[LF] 18: ("999999999999999999") 0, [999999999999999999] line 18[LF] curlx_str_newline[LF] 0: (%61) 6, line 0[LF] 1: (%61) 6, line 0[LF] 2: (%41) 6, line 0[LF] 3: (%62) 6, line 0[LF] 4: (%5c) 6, line 0[LF] 5: (%20) 6, line 0[LF] 6: (%0a) 0, line 1[LF] 7: (%0d) 0, line 1[LF] 8: (%0d) 0, line 1[LF] 9: (%0c) 6, line 0[LF] 10: (%00) 6, line 0[LF] curlx_str_hex[LF] 0: ("1") 0, [1] line 1[LF] 1: ("1000") 0, [4096] line 4[LF] 2: ("1234") 0, [4660] line 4[LF] 3: ("1235") 0, [4661] line 4[LF] 4: ("1236") 7, [0] line 0[LF] 5: ("01234") 0, [4660] line 5[LF] 6: ("00000000000000000000000000001234") 0, [4660] line 32[LF] 7: ("0123 345") 0, [291] line 4[LF] 8: ("0123O345") 0, [291] line 4[LF] 9: ("-12") 8, [0] line 0[LF] 10: (" 123") 8, [0] line 0[LF] 11: ("") 8, [0] line 0[LF] curlx_str_octal[LF] 0: ("1") 0, [1] line 1[LF] 1: ("1000") 0, [512] line 4[LF] 2: ("1234") 0, [668] line 4[LF] 3: ("1235") 0, [669] line 4[LF] 4: ("1236") 7, [0] line 0[LF] 5: ("01234") 0, [668] line 5[LF] 6: ("00000000000000000000000000001234") 0, [668] line 32[LF] 7: ("0123 345") 0, [83] line 4[LF] 8: ("0123O345") 0, [83] line 4[LF] 9: ("-12") 8, [0] line 0[LF] 10: (" 123") 8, [0] line 0[LF] 11: ("") 8, [0] line 0[LF] curlx_str_octal / max[LF] 0: ("777777777777777777777") 0, [9223372036854775807] line 21[LF] 1: ("1000000000000000000000") 7, [0] line 0[LF] 2: ("111111111111111111111") 0, [1317624576693539401] line 21[LF] 3: ("222222222222222222222") 0, [2635249153387078802] line 21[LF] 4: ("333333333333333333333") 0, [3952873730080618203] line 21[LF] 5: ("444444444444444444444") 0, [5270498306774157604] line 21[LF] 6: ("555555555555555555555") 0, [6588122883467697005] line 21[LF] 7: ("666666666666666666666") 0, [7905747460161236406] line 21[LF] curlx_str_hex / max[LF] 0: ("7FFFFFFFFFFFFFFF") 0, [9223372036854775807] line 16[LF] 1: ("8000000000000000") 7, [0] line 0[LF] 2: ("1111111111111111") 0, [1229782938247303441] line 16[LF] 3: ("2222222222222222") 0, [2459565876494606882] line 16[LF] 4: ("3333333333333333") 0, [3689348814741910323] line 16[LF] 5: ("4444444444444444") 0, [4919131752989213764] line 16[LF] 6: ("5555555555555555") 0, [6148914691236517205] line 16[LF] 7: ("6666666666666666") 0, [7378697629483820646] line 16[LF] 8: ("7777777777777777") 0, [8608480567731124087] line 16[LF] 9: ("888888888888888") 0, [614891469123651720] line 15[LF] 10: ("999999999999999") 0, [691752902764108185] line 15[LF] 11: ("aaaaaaaaAAAAAAA") 0, [768614336404564650] line 15[LF] 12: ("bbbbbbbbBBBBBBB") 0, [845475770045021115] line 15[LF] 13: ("BBBBBBBBbbbbbbb") 0, [845475770045021115] line 15[LF] 14: ("ccccccccCCCCCCC") 0, [922337203685477580] line 15[LF] 15: ("ddddddddDDDDDDD") 0, [999198637325934045] line 15[LF] 16: ("eeeeeeeeEEEEEEE") 0, [1076060070966390510] line 15[LF] 17: ("ffffffffFFFFFFF") 0, [1152921504606846975] line 15[LF] 18: ("abcdef") 0, [11259375] line 6[LF] 19: ("ABCDEF") 0, [11259375] line 6[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1664 ./unit/units unit1664 - > log/6/stdout1664 2> log/6/stderr1664 === End of file commands.log === Start of file server.cmd Testnum 1664 === End of file server.cmd === Start of file valgrind1664 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1664 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1671 ../src/curl -q --include --trace-ascii log/8/trace1671 --trace-time http://127.0.0.1:36007/1671 -w '%{header_json}\n' -o log/8/1671.out > log/8/stdout1671 2> log/8/stderr1671 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1680 ../src/curl -q --include --trace-ascii log/5/trace1680 --trace-time http://127.0.0.1:41733/1680 -o log/5/exist1680 --clobber > log/5/stdout1680 2> log/5/stderr1680 test 1670...[-w individual header output] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1670 ../src/curl -q --include --trace-ascii log/3/trace1670 --trace-time http://127.0.0.1:36933/1670 -w '%header{etag} %header{nope} %header{DATE}\n' -o log/3/1670.out > log/3/stdout1670 2> log/3/stderr1670 1670: stdout FAILED: --- log/3/check-expected 2025-09-11 10:34:12.363087412 +0000 +++ log/3/check-generated 2025-09-11 10:34:12.363087412 +0000 @@ -1 +0,0 @@ -"21025-dc7-39462498" Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] == Contents of files in the log/3/ dir after test 1670 === Start of file check-expected "21025-dc7-39462498" Tue, 09 Nov 2010 14:49:00 GMT[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1670 ../src/curl -q --include --trace-ascii log/3/trace1670 --trace-time http://127.0.0.1:36933/1670 -w '%header{etag} %header{nope} %header{DATE}\n' -o log/3/1670.out > log/3/stdout1670 2> log/3/stderr1670 === End of file commands.log === Start of file http_server.log 10:34:11.222074 ====> Client connect 10:34:11.222405 accept_connection 3 returned 4 10:34:11.222609 accept_connection 3 returned 0 10:34:11.222780 Read 93 bytes 10:34:11.222867 Process 93 bytes request 10:34:11.222949 Got request: GET /verifiedserver HTTP/1.1 10:34:11.223020 Are-we-friendly question received 10:34:11.223266 Wrote request (93 bytes) input to log/3/server.input 10:34:11.223497 Identifying ourselves as friends 10:34:11.224181 Response sent (56 bytes) and written to log/3/server.response 10:34:11.224309 special request received, no persistency 10:34:11.224374 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 52498 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 1670 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind1670 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1670 test 1671...[-w header JSON output] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1671 ../src/curl -q --include --trace-ascii log/8/trace1671 --trace-time http://127.0.0.1:36007/1671 -w '%{header_json}\n' -o log/8/1671.out > log/8/stdout1671 2> log/8/stderr1671 1671: stdout FAILED: --- log/8/check-expected 2025-09-11 10:34:12.423088607 +0000 +++ log/8/check-generated 2025-09-11 10:34:12.419088527 +0000 @@ -1,11 +0,0 @@ -{"date":["Tue, 09 Nov 2010 14:49:00 GMT"],[CR][LF] -"server":["test-server/fake"],[CR][LF] -"last-modified":["Tue, 13 Jun 2000 12:10:00 GMT"],[CR][LF] -"etag":["\"21025-dc7-39462498\""],[CR][LF] -"accept-ranges":["bytes"],[CR][LF] -"set-cookie":["firstcookie=want1; path=/","2cookie=want2; path=/","cookie3=want3; path=/"],[CR][LF] -"funny-head":["yesyes"],[CR][LF] -"content-type":["text/html"],[CR][LF] -"content-length":["6"],[CR][LF] -"connection":["close"][CR][LF] -}[CR][LF] == Contents of files in the log/8/ dir after test 1671 === Start of file check-expected {"date":["Tue, 09 Nov 2010 14:49:00 GMT"],[CR][LF] "server":["test-server/fake"],[CR][LF] "last-modified":["Tue, 13 Jun 2000 12:10:00 GMT"],[CR][LF] "etag":["\"21025-dc7-39462498\""],[CR][LF] "accept-ranges":["bytes"],[CR][LF] "set-cookie":["firstcookie=want1; path=/","2cookie=want2; path=/","cookie3=want3; path=/"],[CR][LF] "funny-head":["yesyes"],[CR][LF] "content-type":["text/html"],[CR][LF] "content-length":["6"],[CR][LF] "connection":["close"][CR][LF] }[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1671 ../src/curl -q --include --trace-ascii log/8/trace1671 --trace-time http://127.0.0.1:36007/1671 -w '%{header_json}\n' -o log/8/1671.out > log/8/stdout1671 2> log/8/stderr1671 === End of file commands.log === Start of file http_server.log 10:34:11.257431 ====> Client connect 10:34:11.257965 accept_connection 3 returned 4 10:34:11.258271 accept_connection 3 returned 0 10:34:11.258488 Read 93 bytes 10:34:11.258683 Process 93 bytes request 10:34:11.258812 Got request: GET /verifiedserver HTTP/1.1 10:34:11.259002 Are-we-friendly question received 10:34:11.259368 Wrote request (93 bytes) input to log/8/server.input 10:34:11.259640 Identifying ourselves as friends 10:34:11.260539 Response sent (56 bytes) and written to log/8/server.response 10:34:11.260683 special request received, no persistency 10:34:11.265049 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 32946 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1671 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1671 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1671 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1682 ../src/curl -q --include --trace-ascii log/1/trace1682 --trace-time http://127.0.0.1:42781/1682 --output-dir log/1 -o exist1682 --no-clobber > log/1/stdout1682 2> log/1/stderr1682 test 1680...[HTTP GET with explicit clobber] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1680 ../src/curl -q --include --trace-ascii log/5/trace1680 --trace-time http://127.0.0.1:41733/1680 -o log/5/exist1680 --clobber > log/5/stdout1680 2> log/5/stderr1680 1680: output (log/5/exist1680) FAILED: --- log/5/check-expected 2025-09-11 10:34:12.479089721 +0000 +++ log/5/check-generated 2025-09-11 10:34:12.475089642 +0000 @@ -1,6 +1 @@ -HTTP/1.0 200 OK[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -Content-Length: 4[LF] -[LF] -foo[LF] +to be overwritten[LF] == Contents of files in the log/5/ dir after test 1680 === Start of file check-expected HTTP/1.0 200 OK[LF] Connection: close[LF] Content-Type: text/plain[LF] Content-Length: 4[LF] [LF] foo[LF] === End of file check-expected === Start of file check-generated to be overwritten[LF] === End of file check-generated === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1680 ../src/curl -q --include --trace-ascii log/5/trace1680 --trace-time http://127.0.0.1:41733/1680 -o log/5/exist1680 --clobber > log/5/stdout1680 2> log/5/stderr1680 === End of file commands.log === Start of file exist1680 to be overwritten === End of file exist1680 === Start of file http_server.log 10:34:12.317181 ====> Client connect 10:34:12.317543 accept_connection 3 returned 4 10:34:12.317770 accept_connection 3 returned 0 10:34:12.317938 Read 93 bytes 10:34:12.318038 Process 93 bytes request 10:34:12.318134 Got request: GET /verifiedserver HTTP/1.1 10:34:12.318215 Are-we-friendly question received 10:34:12.318461 Wrote request (93 bytes) input to log/5/server.input 10:34:12.318681 Identifying ourselves as friends 10:34:12.319732 Response sent (56 bytes) and written to log/5/server.response 10:34:12.319961 special request received, no persistency 10:34:12.320052 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 56924 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1680 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1680 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1680 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1681 ../src/curl -q --include --trace-ascii log/4/trace1681 --trace-time http://127.0.0.1:36757/1681 -o log/4/exist1681 --no-clobber -w '%{filename_effective}\n' > log/4/stdout1681 2> log/4/stderr1681 test 1682...[HTTP GET without clobber and --output-dir] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1682 ../src/curl -q --include --trace-ascii log/1/trace1682 --trace-time http://127.0.0.1:42781/1682 --output-dir log/1 -o exist1682 --no-clobber > log/1/stdout1682 2> log/1/stderr1682 1682: output (log/1/exist1682.1) FAILED: --- log/1/check-expected 2025-09-11 10:34:12.667093464 +0000 +++ log/1/check-generated 2025-09-11 10:34:12.667093464 +0000 @@ -1,6 +0,0 @@ -HTTP/1.0 200 OK[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -Content-Length: 4[LF] -[LF] -foo[LF] == Contents of files in the log/1/ dir after test 1682 === Start of file check-expected HTTP/1.0 200 OK[LF] Connection: close[LF] Content-Type: text/plain[LF] Content-Length: 4[LF] [LF] foo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1682 ../src/curl -q --include --trace-ascii log/1/trace1682 --trace-time http://127.0.0.1:42781/1682 --output-dir log/1 -o exist1682 --no-clobber > log/1/stdout1682 2> log/1/stderr1682 === End of file commands.log === Start of file exist1682 to stay the same === End of file exist1682 === Start of file http_server.log 10:34:11.543039 ====> Client connect 10:34:11.543368 accept_connection 3 returned 4 10:34:11.543570 accept_connection 3 returned 0 10:34:11.543743 Read 93 bytes 10:34:11.543853 Process 93 bytes request 10:34:11.543976 Got request: GET /verifiedserver HTTP/1.1 10:34:11.544084 Are-we-friendly question received 10:34:11.544375 Wrote request (93 bytes) input to log/1/server.input 10:34:11.544599 Identifying ourselves as friends 10:34:11.545669 Response sent (57 bytes) and written to log/1/server.response 10:34:11.545863 special request received, no persistency 10:34:11.545944 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 40772 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 1682 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1682 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1682 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1683 ../src/curl -q --include --trace-ascii log/2/trace1683 --trace-time http://127.0.0.1:43789/1683 -o log/2/exist1683 --no-clobber > log/2/stdout1683 2> log/2/stderr1683 CMD (0): /usr/bin/perl -e 'for my $i ((1..100)) { my $filename = "log/2/exist1683.$i"; open(FH, "<", $filename) or die $!; ( eq "to stay the same" and eq "") or die "incorrect $filename" ; close(FH) }' test 1681...[HTTP GET without clobber] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1681 ../src/curl -q --include --trace-ascii log/4/trace1681 --trace-time http://127.0.0.1:36757/1681 -o log/4/exist1681 --no-clobber -w '%{filename_effective}\n' > log/4/stdout1681 2> log/4/stderr1681 1681: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:12.711094340 +0000 +++ log/4/check-generated 2025-09-11 10:34:12.711094340 +0000 @@ -1 +0,0 @@ -log/4/exist1681.1[CR][LF] == Contents of files in the log/4/ dir after test 1681 === Start of file check-expected log/4/exist1681.1[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1681 ../src/curl -q --include --trace-ascii log/4/trace1681 --trace-time http://127.0.0.1:36757/1681 -o log/4/exist1681 --no-clobber -w '%{filename_effective}\n' > log/4/stdout1681 2> log/4/stderr1681 === End of file commands.log === Start of file exist1681 to stay the same === End of file exist1681 === Start of file http_server.log 10:34:12.532507 ====> Client connect 10:34:12.532957 accept_connection 3 returned 4 10:34:12.533181 accept_connection 3 returned 0 10:34:12.533323 Read 93 bytes 10:34:12.533425 Process 93 bytes request 10:34:12.533520 Got request: GET /verifiedserver HTTP/1.1 10:34:12.533599 Are-we-friendly question received 10:34:12.533859 Wrote request (93 bytes) input to log/4/server.input 10:34:12.534038 Identifying ourselves as friends 10:34:12.534695 Response sent (56 bytes) and written to log/4/server.response 10:34:12.534838 special request received, no persistency 10:34:12.534909 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33704 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1681 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1681 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1681 prechecked /usr/bin/perl -e 'for my $i ((1..100)) { my $filename = "log/2/exist1683.$i"; open(FH, ">", $filename) or die $!; print FH "to stay the same" ; close(FH) }' test 1683...[HTTP GET without clobber when 100 files already exist] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1683 ../src/curl -q --include --trace-ascii log/2/trace1683 --trace-time http://127.0.0.1:43789/1683 -o log/2/exist1683 --no-clobber > log/2/stdout1683 2> log/2/stderr1683 postcheck /usr/bin/perl -e 'for my $i ((1..100)) { my $filename = "log/2/exist1683.$i"; open(FH, "<", $filename) or die $!; ( eq "to stay the same" and eq "") or die "incorrect $filename" ; close(FH) }' curl returned 1, when expecting 23 1683: exit FAILED == Contents of files in the log/2/ dir after test 1683 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1683 ../src/curl -q --include --trace-ascii log/2/trace1683 --trace-time http://127.0.0.1:43789/1683 -o log/2/exist1683 --no-clobber > log/2/stdout1683 2> log/2/stderr1683 === End of file commands.log === Start of file exist1683 to stay the same === End of file exist1683 === Start of file exist1683.1 to stay the same === End of file exist1683.1 === Start of file exist1683.10 to stay the same === End of file exist1683.10 === Start of file exist1683.100 to stay the same === End of file exist1683.100 === Start of file exist1683.11 to stay the same === End of file exist1683.11 === Start of file exist1683.12 to stay the same === End of file exist1683.12 === Start of file exist1683.13 to stay the same === End of file exist1683.13 === Start of file exist1683.14 to stay the same === End of file exist1683.14 === Start of file exist1683.15 to stay the same === End of file exist1683.15 === Start of file exist1683.16 to stay the same === End of file exist1683.16 === Start of file exist1683.17 to stay the same === End of file exist1683.17 === Start of file exist1683.18 to stay the same === End of file exist1683.18 === Start of file exist1683.19 to stay the same === End of file exist1683.19 === Start of file exist1683.2 to stay the same === End of file exist1683.2 === Start of file exist1683.20 to stay the same === End of file exist1683.20 === Start of file exist1683.21 to stay the same === End of file exist1683.21 === Start of file exist1683.22 to stay the same === End of file exist1683.22 === Start of file exist1683.23 to stay the same === End of file exist1683.23 === Start of file exist1683.24 to stay the same === End of file exist1683.24 === Start of file exist1683.25 to stay the same === End of file exist1683.25 === Start of file exist1683.26 to stay the same === End of file exist1683.26 === Start of file exist1683.27 to stay the same === End of file exist1683.27 === Start of file exist1683.28 to stay the same === End of file exist1683.28 === Start of file exist1683.29 to stay the same === End of file exist1683.29 === Start of file exist1683.3 to stay the same === End of file exist1683.3 === Start of file exist1683.30 to stay the same === End of file exist1683.30 === Start of file exist1683.31 to stay the same === End of file exist1683.31 === Start of file exist1683.32 to stay the same === End of file exist1683.32 === Start of file exist1683.33 to stay the same === End of file exist1683.33 === Start of file exist1683.34 to stay the same === End of file exist1683.34 === Start of file exist1683.35 to stay the same === End of file exist1683.35 === Start of file exist1683.36 to stay the same === End of file exist1683.36 === Start of file exist1683.37 to stay the same === End of file exist1683.37 === Start of file exist1683.38 to stay the same === End of file exist1683.38 === Start of file exist1683.39 to stay the same === End of file exist1683.39 === Start of fCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1704 ../src/curl -q --output log/8/curl1704.out --include --trace-ascii log/8/trace1704 --trace-time http://127.0.0.1:36007/1704 --http2 > log/8/stdout1704 2> log/8/stderr1704 ile exist1683.4 to stay the same === End of file exist1683.4 === Start of file exist1683.40 to stay the same === End of file exist1683.40 === Start of file exist1683.41 to stay the same === End of file exist1683.41 === Start of file exist1683.42 to stay the same === End of file exist1683.42 === Start of file exist1683.43 to stay the same === End of file exist1683.43 === Start of file exist1683.44 to stay the same === End of file exist1683.44 === Start of file exist1683.45 to stay the same === End of file exist1683.45 === Start of file exist1683.46 to stay the same === End of file exist1683.46 === Start of file exist1683.47 to stay the same === End of file exist1683.47 === Start of file exist1683.48 to stay the same === End of file exist1683.48 === Start of file exist1683.49 to stay the same === End of file exist1683.49 === Start of file exist1683.5 to stay the same === End of file exist1683.5 === Start of file exist1683.50 to stay the same === End of file exist1683.50 === Start of file exist1683.51 to stay the same === End of file exist1683.51 === Start of file exist1683.52 to stay the same === End of file exist1683.52 === Start of file exist1683.53 to stay the same === End of file exist1683.53 === Start of file exist1683.54 to stay the same === End of file exist1683.54 === Start of file exist1683.55 to stay the same === End of file exist1683.55 === Start of file exist1683.56 to stay the same === End of file exist1683.56 === Start of file exist1683.57 to stay the same === End of file exist1683.57 === Start of file exist1683.58 to stay the same === End of file exist1683.58 === Start of file exist1683.59 to stay the same === End of file exist1683.59 === Start of file exist1683.6 to stay the same === End of file exist1683.6 === Start of file exist1683.60 to stay the same === End of file exist1683.60 === Start of file exist1683.61 to stay the same === End of file exist1683.61 === Start of file exist1683.62 to stay the same === End of file exist1683.62 === Start of file exist1683.63 to stay the same === End of file exist1683.63 === Start of file exist1683.64 to stay the same === End of file exist1683.64 === Start of file exist1683.65 to stay the same === End of file exist1683.65 === Start of file exist1683.66 to stay the same === End of file exist1683.66 === Start of file exist1683.67 to stay the same === End of file exist1683.67 === Start of file exist1683.68 to stay the same === End of file exist1683.68 === Start of file exist1683.69 to stay the same === End of file exist1683.69 === Start of file exist1683.7 to stay the same === End of file exist1683.7 === Start of file exist1683.70 to stay the same === End of file exist1683.70 === Start of file exist1683.71 to stay the same === End of file exist1683.71 === Start of file exist1683.72 to stay the same === End of file exist1683.72 === Start of file exist1683.73 to stay the same === End of file exist1683.73 === Start of file exist1683.74 to stay the same === End of file exist1683.74 === Start of file exist1683.75 to stay the same === End of file exist1683.75 === Start of file exist1683.76 to stay the same === End of file exist1683.76 === Start of file exist1683.77 to stay the same === End of file exist1683.77 === Start of file exist1683.78 to stay the same === End of file exist1683.78 === Start of file exist1683.79 to stay the same === End of file exist1683.79 === Start of file exist1683.8 to stay the same === End of file exist1683.8 === Start of file exist1683.80 to stay the same === End of file exist1683.80 === Start of file exist1683.81 to stay the same === End of file exist1683.81 === Start of file exist1683.82 to stay the same === End of file exist1683.82 === Start of file exist1683.83 to stay the same === End of file exist1683.83 === Start of file exist1683.84 to stay the same === End of file exist1683.84 === Start of file exist1683.85 to stay the same === End of file exist1683.85 === Start of file exist1683.86 to stay the same === End of file exist1683.86 === Start of file exist1683.87 to stay the same === End of file exist1683.87 === Start of file exist1683.88 to stay the same === End of file exist1683.88 === Start of file exist1683.89 to stay the same === End of file exist1683.89 === Start of file exist1683.9 to stay the same === End of file exist1683.9 === Start of file exist1683.90 to stay the same === End of file exist1683.90 === Start of file exist1683.91 to stay the same === End of file exist1683.91 === Start of file exist1683.92 to stay the same === End of file exist1683.92 === Start of file exist1683.93 to stay the same === End of file exist1683.93 === Start of file exist1683.94 to stay the same === End of file exist1683.94 === Start of file exist1683.95 to stay the same === End of file exist1683.95 === Start of file exist1683.96 to stay the same === End of file exist1683.96 === Start of file exist1683.97 to stay the same === End of file exist1683.97 === Start of file exist1683.98 to stay the same === End of file exist1683.98 === Start of file exist1683.99 to stay the same === End of file exist1683.99 === Start of file http_server.log 10:34:11.637952 ====> Client connect 10:34:11.638242 accept_connection 3 returned 4 10:34:11.638410 accept_connection 3 returned 0 10:34:11.638519 Read 93 bytes 10:34:11.638592 Process 93 bytes request 10:34:11.638674 Got request: GET /verifiedserver HTTP/1.1 10:34:11.638754 Are-we-friendly question received 10:34:11.638988 Wrote request (93 bytes) input to log/2/server.input 10:34:11.639154 Identifying ourselves as friends 10:34:11.639791 Response sent (56 bytes) and written to log/2/server.response 10:34:11.639931 special request received, no persistency 10:34:11.639994 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50198 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1683 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1683 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1683 test 1704...[HTTP/1 doing HTTP/2 Upgrade: getting an HTTP/2 101 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.suppCMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -d log/5 -I /build/curl/src/curl/tests/../include mainpage option1.md option2.md > log/5/stdout1705 2> log/5/stderr1705 CMD (0): /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -I /build/curl/src/curl/tests/../include -d log/1 ascii option1.md option2.md > log/1/stdout1706 2> log/1/stderr1706 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1800 ../src/curl -q --output log/4/curl1800.out --include --trace-ascii log/4/trace1800 --trace-time http://127.0.0.1:36757/1800 --http2 > log/4/stdout1800 2> log/4/stderr1800 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1900 ./libtest/libtests lib1900 http://127.0.0.1:47/not-there/1900 > log/2/stdout1900 2> log/2/stderr1900 --num-callers=16 --log-file=log/8/valgrind1704 ../src/curl -q --output log/8/curl1704.out --include --trace-ascii log/8/trace1704 --trace-time http://127.0.0.1:36007/1704 --http2 > log/8/stdout1704 2> log/8/stderr1704 1704: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1704 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1704 ../src/curl -q --output log/8/curl1704.out --include --trace-ascii log/8/trace1704 --trace-time http://127.0.0.1:36007/1704 --http2 > log/8/stdout1704 2> log/8/stderr1704 === End of file commands.log === Start of file http_server.log 10:34:12.295458 ====> Client connect 10:34:12.295880 accept_connection 3 returned 4 10:34:12.296111 accept_connection 3 returned 0 10:34:12.296244 Read 93 bytes 10:34:12.296330 Process 93 bytes request 10:34:12.296415 Got request: GET /verifiedserver HTTP/1.1 10:34:12.296493 Are-we-friendly question received 10:34:12.296827 Wrote request (93 bytes) input to log/8/server.input 10:34:12.297096 Identifying ourselves as friends 10:34:12.297938 Response sent (56 bytes) and written to log/8/server.response 10:34:12.298090 special request received, no persistency 10:34:12.298165 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 32958 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1704 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1704 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1704 test 1705...[managen makes manpage] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -d log/5 -I /build/curl/src/curl/tests/../include mainpage option1.md option2.md > log/5/stdout1705 2> log/5/stderr1705 valgrind SKIPPED sr-----e--- OK (1552 out of 1725, remaining: 00:24, took 0.821s, duration: 03:37) test 1706...[managen makes ASCII page] /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/../scripts/managen -I /build/curl/src/curl/tests/../include -d log/1 ascii option1.md option2.md > log/1/stdout1706 2> log/1/stderr1706 valgrind SKIPPED sr-----e--- OK (1553 out of 1725, remaining: 00:24, took 0.768s, duration: 03:37) test 1800...[HTTP/2 upgrade refused] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1800 ../src/curl -q --output log/4/curl1800.out --include --trace-ascii log/4/trace1800 --trace-time http://127.0.0.1:36757/1800 --http2 > log/4/stdout1800 2> log/4/stderr1800 1800: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1800 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1800 ../src/curl -q --output log/4/curl1800.out --include --trace-ascii log/4/trace1800 --trace-time http://127.0.0.1:36757/1800 --http2 > log/4/stdout1800 2> log/4/stderr1800 === End of file commands.log === Start of file http_server.log 10:34:13.547373 ====> Client connect 10:34:13.547663 accept_connection 3 returned 4 10:34:13.547834 accept_connection 3 returned 0 10:34:13.547956 Read 93 bytes 10:34:13.548031 Process 93 bytes request 10:34:13.548114 Got request: GET /verifiedserver HTTP/1.1 10:34:13.548175 Are-we-friendly question received 10:34:13.548381 Wrote request (93 bytes) input to log/4/server.input 10:34:13.548526 Identifying ourselves as friends 10:34:13.549206 Response sent (56 bytes) and written to log/4/server.response 10:34:13.549333 special request received, no persistency 10:34:13.549400 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33712 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1800 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1800 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1901 ./libtest/libtests lib1901 http://127.0.0.1:36007/boom > log/8/stdout1901 2> log/8/stderr1901 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1903 ./libtest/libtests lib1903 http://127.0.0.1:41733/we/want/1903 log/5/cookies1903 log/5/cookiesout1903 > log/5/stdout1903 2> log/5/stderr1903 e -- exiting now. Sorry. === End of file valgrind1800 test 1900...[HSTS curl_easy_duphandle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1900 ./libtest/libtests lib1900 http://127.0.0.1:47/not-there/1900 > log/2/stdout1900 2> log/2/stderr1900 libtests returned 1, when expecting 0 1900: exit FAILED == Contents of files in the log/2/ dir after test 1900 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1900 ./libtest/libtests lib1900 http://127.0.0.1:47/not-there/1900 > log/2/stdout1900 2> log/2/stderr1900 === End of file commands.log === Start of file server.cmd Testnum 1900 === End of file server.cmd === Start of file valgrind1900 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1900 test 1901...[Chunked HTTP POST from callback with CURLOPT_POSTFIELDSIZE set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1901 ./libtest/libtests lib1901 http://127.0.0.1:36007/boom > log/8/stdout1901 2> log/8/stderr1901 1901: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1901 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1901 ./libtest/libtests lib1901 http://127.0.0.1:36007/boom > log/8/stdout1901 2> log/8/stderr1901 === End of file commands.log === Start of file http_server.log 10:34:13.082444 ====> Client connect 10:34:13.082798 accept_connection 3 returned 4 10:34:13.082993 accept_connection 3 returned 0 10:34:13.083927 Read 93 bytes 10:34:13.084184 Process 93 bytes request 10:34:13.084302 Got request: GET /verifiedserver HTTP/1.1 10:34:13.084380 Are-we-friendly question received 10:34:13.084957 Wrote request (93 bytes) input to log/8/server.input 10:34:13.085324 Identifying ourselves as friends 10:34:13.086312 Response sent (56 bytes) and written to log/8/server.response 10:34:13.086548 special request received, no persistency 10:34:13.086681 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 32968 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1901 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1901 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1901 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1906 ./libtest/libtests lib1906 http://127.0.0.1:43789/1906 > log/2/stdout1906 2> log/2/stderr1906 test 1903...[CURLOPT_COOKIEFILE then reset then set again] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1903 ./libtest/libtests lib1903 http://127.0.0.1:41733/we/want/1903 log/5/cookies1903 log/5/cookiesout1903 > log/5/stdout1903 2> log/5/stderr1903 1903: output (log/5/cookiesout1903) FAILED: --- log/5/check-expected 2025-09-11 10:34:14.143122845 +0000 +++ log/5/check-generated 2025-09-11 10:34:14.143122845 +0000 @@ -1,6 +0,0 @@ -# Netscape HTTP Cookie File[CR][LF] -# https://curl.se/docs/http-cookies.html[CR][LF] -# This file was generated by libcurl! Edit at your own risk.[CR][LF] -[CR][LF] -127.0.0.1%09FALSE%09/we/want/%09FALSE%090%09foobar%09name[CR][LF] -127.0.0.1%09FALSE%09/we/want/%09FALSE%090%09secondcookie%09present[CR][LF] == Contents of files in the log/5/ dir after test 1903 === Start of file check-expected # Netscape HTTP Cookie File[CR][LF] # https://curl.se/docs/http-cookies.html[CR][LF] # This file was generated by libcurl! Edit at your own risk.[CR][LF] [CR][LF] 127.0.0.1%09FALSE%09/we/want/%09FALSE%090%09foobar%09name[CR][LF] 127.0.0.1%09FALSE%09/we/want/%09FALSE%090%09secondcookie%09present[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1903 ./libtest/libtests lib1903 http://127.0.0.1:41733/we/want/1903 log/5/cookies1903 log/5/cookiesout1903 > log/5/stdout1903 2> log/5/stderr1903 === End of file commands.log === Start of file cookies1903 # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. 127.0.0.1 FALSE /we/want/ FALSE 0 secondcookie present 127.0.0.1 FALSE /we/want/ FALSE 0 foobar name === End of file cookies1903 === Start of file http_server.log 10:34:14.157066 ====> Client connect 10:34:14.157369 accept_connection 3 returned 4 10:34:14.157526 accept_connection 3 returned 0 10:34:14.157641 Read 93 bytes 10:34:14.157717 Process 93 bytes request 10:34:14.157798 Got request: GET /verifiedserver HTTP/1.1 10:34:14.157865 Are-we-friendly question received 10:34:14.158075 Wrote request (93 bytes) input to log/5/server.input 10:34:14.158240 Identifying ourselves as friends 10:34:14.158893 Response sent (56 bytes) and written to log/5/server.response 10:34:14.159017 special request received, no persistency 10:34:14.159083 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 56928 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1903 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1903 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1903 test 1906...[CURLOPT_CURLU and CURLOPT_PORT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1906 ./libtest/libtests lib1906 http://127.0.0.1:43789/1906 > log/2/stdout1906 2> log/2/stderr1906 1906: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1906 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1906 ./libtest/libtests lib1906 http://127.0.0.1:43789/1906 > log/2/stdout1906 2> log/2/stderr1906 === End of file commands.log === Start of file http_server.log 10:34:13.332806 ====> Client connect 10:34:13.333119 accept_connection 3 returned 4 10:34:13.333283 accept_connection 3 returned 0 10:34:13.333393 Read 93 bytes 10:34:13.333459 Process 93 bytes request 10:34:13.333535 Got request: GET /verifiedserver HTTP/1.1 10:34:13.333602 Are-we-friendly question received 10:34:13.333813 Wrote request (93 bytes) input to log/2/server.input 10:34:13.334032 Identifying ourselves as friends 10:34:13.334728 Response sent (56 bytes) and written to log/2/server.response 10:34:13.334873 special request received, no persistency 10:34:13.334939 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50212 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1906 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1906 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1905 ./libtest/libtests lib1905 http://127.0.0.1:36757/we/want/1905 log/4/cookies1905 > log/4/stdout1905 2> log/4/stderr1905 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1904 ../src/curl -q --output log/1/curl1904.out --include --trace-ascii log/1/trace1904 --trace-time http://test.1904:42781/we/want/that/page/1904 -p --proxy 127.0.0.1:41917 > log/1/stdout1904 2> log/1/stderr1904 libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1906 test 1905...[CURLOPT_COOKIELIST set to "FLUSH" of a shared cookie object] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1905 ./libtest/libtests lib1905 http://127.0.0.1:36757/we/want/1905 log/4/cookies1905 > log/4/stdout1905 2> log/4/stderr1905 1905: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 1905 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1905 ./libtest/libtests lib1905 http://127.0.0.1:36757/we/want/1905 log/4/cookies1905 > log/4/stdout1905 2> log/4/stderr1905 === End of file commands.log === Start of file http_server.log 10:34:14.321153 ====> Client connect 10:34:14.321481 accept_connection 3 returned 4 10:34:14.321651 accept_connection 3 returned 0 10:34:14.321779 Read 93 bytes 10:34:14.321874 Process 93 bytes request 10:34:14.321960 Got request: GET /verifiedserver HTTP/1.1 10:34:14.322026 Are-we-friendly question received 10:34:14.322251 Wrote request (93 bytes) input to log/4/server.input 10:34:14.322420 Identifying ourselves as friends 10:34:14.323031 Response sent (56 bytes) and written to log/4/server.response 10:34:14.323151 special request received, no persistency 10:34:14.323205 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33714 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 1905 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1905 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1905 test 1904...[HTTP CONNECT with 204 response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1904 ../src/curl -q --output log/1/curl1904.out --include --trace-ascii log/1/trace1904 --trace-time http://test.1904:42781/we/want/that/page/1904 -p --proxy 127.0.0.1:41917 > log/1/stdout1904 2> log/1/stderr1904 1904: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 1904 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1904 ../src/curl -q --output log/1/curl1904.out --include --trace-ascii log/1/trace1904 --trace-time http://test.1904:42781/we/want/that/page/1904 -p --proxy 127.0.0.1:41917 > log/1/stdout1904 2> log/1/stderr1904 === End of file commands.log === Start of file http2_server.log 10:34:14.398943 ====> Client connect 10:34:14.399225 accept_connection 3 returned 4 10:34:14.399369 accept_connection 3 returned 0 10:34:14.400089 Read 93 bytes 10:34:14.400201 Process 93 bytes request 10:34:14.400282 Got request: GET /verifiedserver HTTP/1.1 10:34:14.400349 Are-we-friendly question received 10:34:14.400555 Wrote request (93 bytes) input to log/1/proxy.input 10:34:14.400866 Identifying ourselves as friends 10:34:14.401472 Response sent (56 bytes) and written to log/1/proxy.response 10:34:14.401582 special request received, no persistency 10:34:14.401642 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:41917... * Established connection to 127.0.0.1 (127.0.0.1 port 41917) from 127.0.0.1 port 44618 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41917 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41917 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 78259 === End of file http2_verify.out === Start of file http_server.log 10:34:13.281080 ====> Client connect 10:34:13.281375 accept_connection 3 returned 4 10:34:13.281523 accept_connection 3 returned 0 10:34:13.281644 Read 93 bytes 10:34:13.281722 Process 93 bytes request 10:34:13.281802 Got request: GET /verifiedserver HTTP/1.1 10:34:13.281870 Are-we-friendly question received 10:34:13.282065 Wrote request (93 bytes) input to log/1/server.input 10:34:13.282224 Identifying ourselves as friends 10:34:13.283021 Response sent (57 bytes) and written to log/1/server.response 10:34:13.283159 special request received, no persistency 10:34:13.283224 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 40788 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 78259 === End of file proxy.response === Start of file server.cmd Testnum 1904 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1904 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redireCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1907 ./libtest/libtests lib1907 127.0.0.1:36007/hello/../1907 > log/8/stdout1907 2> log/8/stderr1907 ction are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1904 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1911 ./libtest/libtests lib1911 - > log/4/stdout1911 2> log/4/stderr1911 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1912 ./libtest/libtests lib1912 - > log/1/stdout1912 2> log/1/stderr1912 test 1907...[CURLINFO_EFFECTIVE_URL with non-scheme URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1907 ./libtest/libtests lib1907 127.0.0.1:36007/hello/../1907 > log/8/stdout1907 2> log/8/stderr1907 1907: stdout FAILED: --- log/8/check-expected 2025-09-11 10:34:14.799135904 +0000 +++ log/8/check-generated 2025-09-11 10:34:14.799135904 +0000 @@ -1 +0,0 @@ -Effective URL: http://127.0.0.1:36007/1907[LF] == Contents of files in the log/8/ dir after test 1907 === Start of file check-expected Effective URL: http://127.0.0.1:36007/1907[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1907 ./libtest/libtests lib1907 127.0.0.1:36007/hello/../1907 > log/8/stdout1907 2> log/8/stderr1907 === End of file commands.log === Start of file http_server.log 10:34:13.843412 ====> Client connect 10:34:13.843798 accept_connection 3 returned 4 10:34:13.843990 accept_connection 3 returned 0 10:34:13.844123 Read 93 bytes 10:34:13.844199 Process 93 bytes request 10:34:13.844280 Got request: GET /verifiedserver HTTP/1.1 10:34:13.844361 Are-we-friendly question received 10:34:13.844747 Wrote request (93 bytes) input to log/8/server.input 10:34:13.845097 Identifying ourselves as friends 10:34:13.846004 Response sent (56 bytes) and written to log/8/server.response 10:34:13.846149 special request received, no persistency 10:34:13.846254 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 32972 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1907 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1907 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1907 test 1911...[verify that curl_easy_setopt() rejects too long string inputs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1911 ./libtest/libtests lib1911 - > log/4/stdout1911 2> log/4/stderr1911 libtests returned 1, when expecting 0 1911: exit FAILED == Contents of files in the log/4/ dir after test 1911 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1911 ./libtest/libtests lib1911 - > log/4/stdout1911 2> log/4/stderr1911 === End of file commands.log === Start of file server.cmd Testnum 1911 === End of file server.cmd === Start of file valgrind1911 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1911 test 1912...[Cross validate that gcc-typecheck macros match the option types.] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1912 ./libtest/libtests lib1912 - > log/1/stdout1912 2> log/1/stderr1912 libtests returned 1, when expecting 0 1912: exit FAILED == Contents of files in the log/1/ dir after test 1912 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1912 ./libtest/libtests lib1912 - > log/1/stdout1912 2> log/1/stderr1912 === End of file commands.log === Start of file server.cmd Testnum 1912 === End of file server.cmd === Start of file valgrind1912 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgriCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1909 ../src/curl -q --trace-ascii log/5/trace1909 --trace-time --retry 1 --retry-all-errors -o log/5/outfile1909 http://127.0.0.1:41733/1909 > log/5/stdout1909 2> log/5/stderr1909 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1910 ./libtest/libtests lib1910 127.0.0.1:43789/1910 > log/2/stdout1910 2> log/2/stderr1910 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1915 ./libtest/libtests lib1915 http://127.0.0.1:47/not-there/1915 > log/1/stdout1915 2> log/1/stderr1915 nd: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1912 test 1909...[HTTP GET --retry-all-errors to overcome partial transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1909 ../src/curl -q --trace-ascii log/5/trace1909 --trace-time --retry 1 --retry-all-errors -o log/5/outfile1909 http://127.0.0.1:41733/1909 > log/5/stdout1909 2> log/5/stderr1909 1909: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1909 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1909 ../src/curl -q --trace-ascii log/5/trace1909 --trace-time --retry 1 --retry-all-errors -o log/5/outfile1909 http://127.0.0.1:41733/1909 > log/5/stdout1909 2> log/5/stderr1909 === End of file commands.log === Start of file http_server.log 10:34:14.982806 ====> Client connect 10:34:14.983146 accept_connection 3 returned 4 10:34:14.983333 accept_connection 3 returned 0 10:34:14.983478 Read 93 bytes 10:34:14.983567 Process 93 bytes request 10:34:14.983665 Got request: GET /verifiedserver HTTP/1.1 10:34:14.983746 Are-we-friendly question received 10:34:14.984004 Wrote request (93 bytes) input to log/5/server.input 10:34:14.984188 Identifying ourselves as friends 10:34:14.984968 Response sent (56 bytes) and written to log/5/server.response 10:34:14.985139 special request received, no persistency 10:34:14.985212 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 56932 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1909 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1909 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1909 test 1910...[HTTP credentials with newline and redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1910 ./libtest/libtests lib1910 127.0.0.1:43789/1910 > log/2/stdout1910 2> log/2/stderr1910 1910: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1910 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1910 ./libtest/libtests lib1910 127.0.0.1:43789/1910 > log/2/stdout1910 2> log/2/stderr1910 === End of file commands.log === Start of file http_server.log 10:34:14.073560 ====> Client connect 10:34:14.073865 accept_connection 3 returned 4 10:34:14.074033 accept_connection 3 returned 0 10:34:14.074159 Read 93 bytes 10:34:14.074236 Process 93 bytes request 10:34:14.074313 Got request: GET /verifiedserver HTTP/1.1 10:34:14.074374 Are-we-friendly question received 10:34:14.074556 Wrote request (93 bytes) input to log/2/server.input 10:34:14.074693 Identifying ourselves as friends 10:34:14.075237 Response sent (56 bytes) and written to log/2/server.response 10:34:14.075352 special request received, no persistency 10:34:14.075413 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50226 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1910 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1910 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1910 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1916 ./libtest/libtests lib1916 "mqtt://127.0.0.1:35925/%20" > log/5/stdout1916 2> log/5/stderr1916 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1913 ./libtest/libtests lib1913 ftp://127.0.0.1:42977/not-there/1913 > log/8/stdout1913 2> log/8/stderr1913 test 1915...[HSTS read/write callbacks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1915 ./libtest/libtests lib1915 http://127.0.0.1:47/not-there/1915 > log/1/stdout1915 2> log/1/stderr1915 1915: stdout FAILED: --- log/1/check-expected 2025-09-11 10:34:15.551150873 +0000 +++ log/1/check-generated 2025-09-11 10:34:15.551150873 +0000 @@ -1,6 +0,0 @@ -[0/4] 1.example.com 25250320 01:02:03[LF] -[1/4] 2.example.com 25250320 03:02:01[LF] -[2/4] 3.example.com 25250319 01:02:03[LF] -[3/4] 4.example.com unlimited[LF] -First request returned 7[LF] -Second request returned 42[LF] == Contents of files in the log/1/ dir after test 1915 === Start of file check-expected [0/4] 1.example.com 25250320 01:02:03[LF] [1/4] 2.example.com 25250320 03:02:01[LF] [2/4] 3.example.com 25250319 01:02:03[LF] [3/4] 4.example.com unlimited[LF] First request returned 7[LF] Second request returned 42[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1915 ./libtest/libtests lib1915 http://127.0.0.1:47/not-there/1915 > log/1/stdout1915 2> log/1/stderr1915 === End of file commands.log === Start of file server.cmd Testnum 1915 === End of file server.cmd === Start of file valgrind1915 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1915 test 1916...[MQTT PUBLISH with no POSTFIELDSIZE set] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1916 ./libtest/libtests lib1916 "mqtt://127.0.0.1:35925/%20" > log/5/stdout1916 2> log/5/stderr1916 1916: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1916 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1916 ./libtest/libtests lib1916 "mqtt://127.0.0.1:35925/%20" > log/5/stdout1916 2> log/5/stderr1916 === End of file commands.log === Start of file server.cmd Testnum 1916 === End of file server.cmd === Start of file valgrind1916 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1916 test 1913...[FTP with NOBODY set, getting a missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1913 ./libtest/libtests lib1913 ftp://127.0.0.1:42977/not-there/1913 > log/8/stdout1913 2> log/8/stderr1913 libtests returned 1, when expecting 78 1913: exit FAILED == Contents of files in the log/8/ dir after test 1913 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1913 ./libtest/libtests lib1913 ftp://127.0.0.1:42977/not-there/1913 > log/8/stdout1913 2> log/8/stderr1913 === End of file commands.log === Start of file ftp_server.log 10:34:14.977641 ====> Client connect 10:34:14.978938 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:14.986613 < "USER anonymous" 10:34:14.987034 > "331 We are happy you popped in![CR][LF]" 10:34:14.996364 < "PASS ftp@example.com" 10:34:14.996805 > "230 Welcome you silly person[CR][LF]" 10:34:14.998547 < "PWD" 10:34:14.998958 > "257 "/" is current directory[CR][LF]" 10:34:15.000934 < "EPSV" 10:34:15.001375 ====> Passive DATA channel requested by client 10:34:15.002565 DATA sockfilt for passive data channel starting... 10:34:15.018146 DATA sockfilt for passive data channel started (pid 161537) 10:34:15.019921 DATA sockfilt for passive data channel listens on port 39699 10:34:15.020506 > "229 Entering Passive Mode (|||39699|)[LF]" 10:34:15.020776 Client has been notified that DATA conn will be accepted on port 39699 10:34:15.023446 Client connects to port 39699 10:34:15.023856 ====> Client established passive DATA connection on port 39699 10:34:15.024843 < "TYPE I" 10:34:15.025258 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:15.026978 < "SIZE verifiedserver" 10:34:15.027426 > "213 17[CR][LF]" 10:34:15.028975 < "RETR verifiedserver" 10:34:15.029383 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:15.030089 =====> Closing passive DATA connection... 10:34:15.030305 Server disconnects passive DATA connection 10:34:15.031181 Server disconnected passive DATA connection 10:34:15.031484 DATA sockfilt for passive data channel quits (pid 161537) 10:34:15.033196 DATA sockfilt for passive data channel quit (pid 161537) 10:34:15.033712 =====> Closed passive DATA connection 10:34:15.034086 > "226 File transfer complete[CR][LF]" 10:34:15.075082 < "QUIT" 10:34:15.075445 > "221 bye bye baby[CR][LF]" 10:34:15.076937 MAIN sockfilt said DISC 10:34:15.077351 ====> Client disconnected 10:34:15.078110 Awaiting input === End of file ftp_CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1914 ./libtest/libtests lib1913 ftp://127.0.0.1:42635/not-there/1913 1 > log/4/stdout1914 2> log/4/stderr1914 server.log === Start of file ftp_sockctrl.log 10:34:14.642873 ====> Client connect 10:34:14.646107 Received DATA (on stdin) 10:34:14.646451 > 160 bytes data, server => client 10:34:14.646574 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:14.646662 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:14.646745 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:14.648504 < 16 bytes data, client => server 10:34:14.648735 'USER anonymous\r\n' 10:34:14.660791 Received DATA (on stdin) 10:34:14.661003 > 33 bytes data, server => client 10:34:14.661088 '331 We are happy you popped in!\r\n' 10:34:14.662856 < 22 bytes data, client => server 10:34:14.663041 'PASS ftp@example.com\r\n' 10:34:14.664004 Received DATA (on stdin) 10:34:14.664197 > 30 bytes data, server => client 10:34:14.664290 '230 Welcome you silly person\r\n' 10:34:14.665062 < 5 bytes data, client => server 10:34:14.665259 'PWD\r\n' 10:34:14.666228 Received DATA (on stdin) 10:34:14.666390 > 30 bytes data, server => client 10:34:14.666476 '257 "/" is current directory\r\n' 10:34:14.667176 < 6 bytes data, client => server 10:34:14.667378 'EPSV\r\n' 10:34:14.687721 Received DATA (on stdin) 10:34:14.687929 > 38 bytes data, server => client 10:34:14.688050 '229 Entering Passive Mode (|||39699|)\n' 10:34:14.690534 < 8 bytes data, client => server 10:34:14.690726 'TYPE I\r\n' 10:34:14.692488 Received DATA (on stdin) 10:34:14.692759 > 33 bytes data, server => client 10:34:14.692871 '200 I modify TYPE as you wanted\r\n' 10:34:14.693503 < 21 bytes data, client => server 10:34:14.693694 'SIZE verifiedserver\r\n' 10:34:14.694648 Received DATA (on stdin) 10:34:14.694805 > 8 bytes data, server => client 10:34:14.694902 '213 17\r\n' 10:34:14.695568 < 21 bytes data, client => server 10:34:14.695797 'RETR verifiedserver\r\n' 10:34:14.697797 Received DATA (on stdin) 10:34:14.697952 > 29 bytes data, server => client 10:34:14.698040 '150 Binary junk (17 bytes).\r\n' 10:34:14.701602 Received DATA (on stdin) 10:34:14.701811 > 28 bytes data, server => client 10:34:14.701913 '226 File transfer complete\r\n' 10:34:14.741640 < 6 bytes data, client => server 10:34:14.741809 'QUIT\r\n' 10:34:14.742637 Received DATA (on stdin) 10:34:14.742771 > 18 bytes data, server => client 10:34:14.742858 '221 bye bye baby\r\n' 10:34:14.743744 ====> Client disconnect 10:34:14.744569 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:15.683734 Running IPv4 version 10:34:15.684291 Listening on port 39699 10:34:15.684781 Wrote pid 161537 to log/8/server/ftp_sockdata.pid 10:34:15.685015 Received PING (on stdin) 10:34:15.685852 Received PORT (on stdin) 10:34:15.690158 ====> Client connect 10:34:15.696970 Received DATA (on stdin) 10:34:15.697138 > 17 bytes data, server => client 10:34:15.697241 'WE ROOLZ: 86552\r\n' 10:34:15.697717 Received DISC (on stdin) 10:34:15.697890 ====> Client forcibly disconnected 10:34:15.699032 Received QUIT (on stdin) 10:34:15.699203 quits 10:34:15.699604 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY SIZE 550 no such file Testnum 1913 === End of file server.cmd === Start of file valgrind1913 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1913 test 1914...[FTP with NOBODY and FILETIME set, getting a missing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1914 ./libtest/libtests lib1913 ftp://127.0.0.1:42635/not-there/1913 1 > log/4/stdout1914 2> log/4/stderr1914 libtests returned 1, when expecting 78 1914: exit FAILED == Contents of files in the log/4/ dir after test 1914 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1914 ./libtest/libtests lib1913 ftp://127.0.0.1:42635/not-there/1913 1 > log/4/stdout1914 2> log/4/stderr1914 === End of file commands.log === Start of file ftp_server.log 10:34:15.049641 ====> Client connect 10:34:15.050854 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:15.053892 < "USER anonymous" 10:34:15.054379 > "331 We are happy you popped in![CR][LF]" 10:34:15.055756 < "PASS ftp@example.com" 10:34:15.056118 > "230 Welcome you silly person[CR][LF]" 10:34:15.057307 < "PWD" 10:34:15.058078 > "257 "/" is current directory[CR][LF]" 10:34:15.059372 < "EPSV" 10:34:15.059618 ====> Passive DATA channel requested by client 10:34:15.059739 DATA sockfilt for passive data channel starting... 10:34:15.069761 DATA sockfilt for passive data channel started (pid 161538) 10:34:15.070701 DATA sockfilt for passive data channel listens on port 32951 10:34:15.071062 > "229 Entering Passive Mode (|||32951|)[LF]" 10:34:15.071238 Client has been notified that DATA conn will be accepted on port 32951 10:34:15.072561 Client connects to port 32951 10:34:15.072904 ====> Client established passive DATA connection on port 32951 10:34:15.073659 < "TYPE I" 10:34:15.074123 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:15.075385 < "SIZE verifiedserver" 10:34:15.075797 > "213 17[CR][LF]" 10:34:15.077725 < "RETR verifiedserver" 10:34:15.078324 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:15.078979 =====> Closing passive DATA connection... 10:34:15.079234 Server disconnects passive DATA connection 10:34:15.080226 Server disconnected passive DATA connection 10:34:15.080593 DATA sockfilt for passive data channel quits (pid 161538) 10:34:15.082409 DATA sockfilt for passive data channel quit (pid 161538) 10:34:15.082740 =====> Closed passive DATA connection 10:34:15.083091 > "226 File transfer complete[CR][LF]" 10:34:15.123776 < "QUIT" 10:34:15.124232 > "221 bye bye baby[CR][LF]" 10:34:15.126180 MAIN sockfilt said DISC 10:34:15.126599 ====> Client disconnected 10:34:15.127168 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:15.715846 ====> Client connect 10:34:15.719015 Received DATA (on stdin) 10:34:15.719247 > 160 bytes data, server => client 10:34:15.719335 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:15.719411 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:15.719474 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:15.720160 < 16 bytes data, client => server 10:34:15.720349 'USER anonymous\r\n' 10:34:15.721573 Received DATA (on stdin) 10:34:15.721741 > 33 bytes data, server => clienCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1918 ./libtest/libtests lib1918 - > log/1/stdout1918 2> log/1/stderr1918 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1919 ./libtest/libtests lib1919 http://127.0.0.1:41733/1919 > log/5/stdout1919 2> log/5/stderr1919 t 10:34:15.721832 '331 We are happy you popped in!\r\n' 10:34:15.722354 < 22 bytes data, client => server 10:34:15.722550 'PASS ftp@example.com\r\n' 10:34:15.723299 Received DATA (on stdin) 10:34:15.723432 > 30 bytes data, server => client 10:34:15.723515 '230 Welcome you silly person\r\n' 10:34:15.724002 < 5 bytes data, client => server 10:34:15.724128 'PWD\r\n' 10:34:15.725254 Received DATA (on stdin) 10:34:15.725410 > 30 bytes data, server => client 10:34:15.725485 '257 "/" is current directory\r\n' 10:34:15.726017 < 6 bytes data, client => server 10:34:15.726174 'EPSV\r\n' 10:34:15.738254 Received DATA (on stdin) 10:34:15.738404 > 38 bytes data, server => client 10:34:15.738501 '229 Entering Passive Mode (|||32951|)\n' 10:34:15.739646 < 8 bytes data, client => server 10:34:15.739796 'TYPE I\r\n' 10:34:15.741309 Received DATA (on stdin) 10:34:15.741482 > 33 bytes data, server => client 10:34:15.741571 '200 I modify TYPE as you wanted\r\n' 10:34:15.742086 < 21 bytes data, client => server 10:34:15.742203 'SIZE verifiedserver\r\n' 10:34:15.743119 Received DATA (on stdin) 10:34:15.743272 > 8 bytes data, server => client 10:34:15.743369 '213 17\r\n' 10:34:15.744102 < 21 bytes data, client => server 10:34:15.744288 'RETR verifiedserver\r\n' 10:34:15.745525 Received DATA (on stdin) 10:34:15.745693 > 29 bytes data, server => client 10:34:15.745835 '150 Binary junk (17 bytes).\r\n' 10:34:15.750315 Received DATA (on stdin) 10:34:15.750473 > 28 bytes data, server => client 10:34:15.750558 '226 File transfer complete\r\n' 10:34:15.789798 < 6 bytes data, client => server 10:34:15.790052 'QUIT\r\n' 10:34:15.791553 Received DATA (on stdin) 10:34:15.791691 > 18 bytes data, server => client 10:34:15.791779 '221 bye bye baby\r\n' 10:34:15.792934 ====> Client disconnect 10:34:15.793813 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:15.735515 Running IPv4 version 10:34:15.736044 Listening on port 32951 10:34:15.736388 Wrote pid 161538 to log/4/server/ftp_sockdata.pid 10:34:15.736545 Received PING (on stdin) 10:34:15.737384 Received PORT (on stdin) 10:34:15.739438 ====> Client connect 10:34:15.746213 Received DATA (on stdin) 10:34:15.746401 > 17 bytes data, server => client 10:34:15.746507 'WE ROOLZ: 79516\r\n' 10:34:15.746826 Received DISC (on stdin) 10:34:15.747005 ====> Client forcibly disconnected 10:34:15.748052 Received QUIT (on stdin) 10:34:15.748228 quits 10:34:15.748755 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY MDTM 550 no such file Testnum 1914 === End of file server.cmd === Start of file valgrind1914 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1914 test 1918...[curl_easy_option_by_name() and curl_easy_option_by_id()] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1918 ./libtest/libtests lib1918 - > log/1/stdout1918 2> log/1/stderr1918 libtests returned 1, when expecting 0 1918: exit FAILED == Contents of files in the log/1/ dir after test 1918 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1918 ./libtest/libtests lib1918 - > log/1/stdout1918 2> log/1/stderr1918 === End of file commands.log === Start of file server.cmd Testnum 1918 === End of file server.cmd === Start of file valgrind1918 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1918 test 1919...[set CURLOPT_XOAUTH2_BEARER and do connection reuse] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1919 ./libtest/libtests lib1919 http://127.0.0.1:41733/1919 > log/5/stdout1919 2> log/5/stderr1919 1919: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1919 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1919 ./libtest/libtests lib1919 http://127.0.0.1:41733/1919 > log/5/stdout1919 2> log/5/stderr1919 === End of file commands.log === Start of file http_server.log 10:34:16.393698 ====> Client connect 10:34:16.393985 accept_connection 3 returned 4 10:34:16.394143 accept_connection 3 returned 0 10:34:16.394255 Read 93 bytes 10:34:16.394331 Process 93 bytes request 10:34:16.394408 Got request: GET /verifiedserver HTTP/1.1 10:34:16.394471 Are-we-friendly question received 10:34:16.394652 Wrote request (93 bytes) input to log/5/server.input 10:34:16.394778 Identifying ourselves as friends 10:34:16.395350 Response sent (56 bytes) and written to log/5/server.response 10:34:16.395449 special request received, no persistency 10:34:16.395509 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 56948 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-AgenCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1940 ./libtest/libtests lib1940 http://127.0.0.1:36007/1940 > log/8/stdout1940 2> log/8/stderr1940 t: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1919 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1919 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1919 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1941 ./libtest/libtests lib1940 http://hello:36757/1941 127.0.0.1:38083 > log/4/stdout1941 2> log/4/stderr1941 test 1940...[curl_easy_header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1940 ./libtest/libtests lib1940 http://127.0.0.1:36007/1940 > log/8/stdout1940 2> log/8/stderr1940 1940: stdout FAILED: --- log/8/check-expected 2025-09-11 10:34:16.399167754 +0000 +++ log/8/check-generated 2025-09-11 10:34:16.399167754 +0000 @@ -1,11 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == test with trailing space[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] - Location == /19400002[LF] -- Set-Cookie == onecookie=data; (0/3)[LF] -- Set-Cookie == secondcookie=2data; (1/3)[LF] -- Set-Cookie == cookie3=data3; (2/3)[LF] - Fold == is folding a line[LF] - Blank == [LF] - Blank2 == [LF] == Contents of files in the log/8/ dir after test 1940 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == test with trailing space[LF] Content-Type == text/html[LF] Content-Length == 0[LF] Location == /19400002[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] Fold == is folding a line[LF] Blank == [LF] Blank2 == [LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1940 ./libtest/libtests lib1940 http://127.0.0.1:36007/1940 > log/8/stdout1940 2> log/8/stderr1940 === End of file commands.log === Start of file http_server.log 10:34:15.442439 ====> Client connect 10:34:15.442720 accept_connection 3 returned 4 10:34:15.442864 accept_connection 3 returned 0 10:34:15.442966 Read 93 bytes 10:34:15.443034 Process 93 bytes request 10:34:15.443110 Got request: GET /verifiedserver HTTP/1.1 10:34:15.443175 Are-we-friendly question received 10:34:15.443323 Wrote request (93 bytes) input to log/8/server.input 10:34:15.443434 Identifying ourselves as friends 10:34:15.443950 Response sent (56 bytes) and written to log/8/server.response 10:34:15.444045 special request received, no persistency 10:34:15.444105 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 32978 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1940 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1940 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1940 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1917 ./libtest/libtests lib1916 "mqtt://127.0.0.1:34833/%20" > log/2/stdout1917 2> log/2/stderr1917 test 1941...[curl_easy_header with CONNECT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1941 ./libtest/libtests lib1940 http://hello:36757/1941 127.0.0.1:38083 > log/4/stdout1941 2> log/4/stderr1941 1941: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:16.631172372 +0000 +++ log/4/check-generated 2025-09-11 10:34:16.631172372 +0000 @@ -1,10 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == test with trailing space[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] - Location == /19410002[LF] -- Set-Cookie == onecookie=data; (0/3)[LF] -- Set-Cookie == secondcookie=2data; (1/3)[LF] -- Set-Cookie == cookie3=data3; (2/3)[LF] - Server == from the connect[LF] - Silly-thing == yes yes[LF] == Contents of files in the log/4/ dir after test 1941 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == test with trailing space[LF] Content-Type == text/html[LF] Content-Length == 0[LF] Location == /19410002[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] Server == from the connect[LF] Silly-thing == yes yes[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1941 ./libtest/libtests lib1940 http://hello:36757/1941 127.0.0.1:38083 > log/4/stdout1941 2> log/4/stderr1941 === End of file commands.log === Start of file http2_server.log 10:34:15.610398 ====> Client connect 10:34:15.610693 accept_connection 3 returned 4 10:34:15.610876 accept_connection 3 returned 0 10:34:15.610990 Read 93 bytes 10:34:15.611060 Process 93 bytes request 10:34:15.611138 Got request: GET /verifiedserver HTTP/1.1 10:34:15.611200 Are-we-friendly question received 10:34:15.611401 Wrote request (93 bytes) input to log/4/proxy.input 10:34:15.611575 Identifying ourselves as friends 10:34:15.612247 Response sent (57 bytes) and written to log/4/proxy.response 10:34:15.612355 special request received, no persistency 10:34:15.612416 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:38083... * Established connection to 127.0.0.1 (127.0.0.1 port 38083) from 127.0.0.1 port 42486 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38083 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:38083 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 143578 === End of file http2_verify.out === Start of file http_server.log 10:34:16.494235 ====> Client connect 10:34:16.494547 accept_connection 3 returned 4 10:34:16.494717 accept_connection 3 returned 0 10:34:16.494845 Read 93 bytes 10:34:16.494944 Process 93 bytes request 10:34:16.495025 Got request: GET /verifiedserver HTTP/1.1 10:34:16.495087 Are-we-friendly question received 10:34:16.495311 Wrote request (93 bytes) input to log/4/server.input 10:34:16.495544 Identifying ourselves as friends 10:34:16.496361 Response sent (56 bytes) and written to log/4/server.response 10:34:16.496501 special request received, no persistency 10:34:16.496571 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33726 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 143578 === End of file proxy.response === Start of file server.cmd Testnum 1941 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1941 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1941 startnew: ./server/servers mqttd --port 0 --pidfile log/2/server/mqtt_server.pid --portfile log/2/server/mqtt_server.port --config log/2/server.cmd --logfile log/2/mqtt_server.log --logdir log/2 RUN: MQTT server is now running PID 161539 on PORT 34833 * pid mqtt => 161539 161539 test 1917...[MQTT PUBLISH with CURLOPT_POST set (no payload)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1917 ./libtest/libtests lib1916 "mqtt://127.0.0.1:34833/%20" > log/2/stdout1917 2> log/2/stderr1917 1917: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 1917 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1917 ./libtest/libtests lib1916 "mqtt://127.0.0.1:34833/%20" > log/2/stdout1917 2> log/2/stderr1917 === End of file commands.log === Start of file mqtt_server.log 10:34:15.759524 Running IPv4 version 10:34:15.760086 Listening on port 34833 10:34:15.760390 Wrote pid 161539 to log/2/server/mqtt_server.pid 10:34:15.760596 Wrote port 34833 to log/2/server/mqtt_server.port === End of file mqtt_server.log === Start of file server.cmd Testnum 1917 === End of file server.cmd === Start of file valgrind1917 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ldCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1942 ./libtest/libtests lib1940 http://127.0.0.1:42781/1942 > log/1/stdout1942 2> log/1/stderr1942 .so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1917 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1943 ./libtest/libtests lib1940 http://127.0.0.1:41733/1943 > log/5/stdout1943 2> log/5/stderr1943 test 1942...[curl_easy_header with 1xx response] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1942 ./libtest/libtests lib1940 http://127.0.0.1:42781/1942 > log/1/stdout1942 2> log/1/stderr1942 1942: stdout FAILED: --- log/1/check-expected 2025-09-11 10:34:16.955178822 +0000 +++ log/1/check-generated 2025-09-11 10:34:16.955178822 +0000 @@ -1,10 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == test with trailing space[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] - Location == /19420002[LF] -- Set-Cookie == onecookie=data; (0/3)[LF] -- Set-Cookie == secondcookie=2data; (1/3)[LF] -- Set-Cookie == cookie3=data3; (2/3)[LF] - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == maybe different[LF] == Contents of files in the log/1/ dir after test 1942 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == test with trailing space[LF] Content-Type == text/html[LF] Content-Length == 0[LF] Location == /19420002[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == maybe different[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1942 ./libtest/libtests lib1940 http://127.0.0.1:42781/1942 > log/1/stdout1942 2> log/1/stderr1942 === End of file commands.log === Start of file http_server.log 10:34:15.927044 ====> Client connect 10:34:15.927407 accept_connection 3 returned 4 10:34:15.927593 accept_connection 3 returned 0 10:34:15.927717 Read 93 bytes 10:34:15.927803 Process 93 bytes request 10:34:15.927900 Got request: GET /verifiedserver HTTP/1.1 10:34:15.927980 Are-we-friendly question received 10:34:15.928292 Wrote request (93 bytes) input to log/1/server.input 10:34:15.928513 Identifying ourselves as friends 10:34:15.929432 Response sent (57 bytes) and written to log/1/server.response 10:34:15.929565 special request received, no persistency 10:34:15.929632 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 40798 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 1942 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1942 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1942 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 41327 --port2 33533 --nghttpx "nghttpx" --pidfile "log/7/server/http_v2_server.pid" --logfile "log/7/http_v2_server.log" --logdir "log/7" --connect 127.0.0.1:40129 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server test 1700 SKIPPED: failed starting HTTP/2 server CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1944 ./libtest/libtests lib1940 http://127.0.0.1:36007/1944 > log/8/stdout1944 2> log/8/stderr1944 test 1943...[curl_easy_header with trailers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1943 ./libtest/libtests lib1940 http://127.0.0.1:41733/1943 > log/5/stdout1943 2> log/5/stderr1943 1943: stdout FAILED: --- log/5/check-expected 2025-09-11 10:34:17.091181529 +0000 +++ log/5/check-generated 2025-09-11 10:34:17.091181529 +0000 @@ -1,3 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == fakeit/0.9 fakeitbad/1.0[LF] - Server == sent-as-trailer[LF] == Contents of files in the log/5/ dir after test 1943 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == fakeit/0.9 fakeitbad/1.0[LF] Server == sent-as-trailer[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1943 ./libtest/libtests lib1940 http://127.0.0.1:41733/1943 > log/5/stdout1943 2> log/5/stderr1943 === End of file commands.log === Start of file http_server.log 10:34:17.113993 ====> Client connect 10:34:17.114283 accept_connection 3 returned 4 10:34:17.114440 accept_connection 3 returned 0 10:34:17.114565 Read 93 bytes 10:34:17.114640 Process 93 bytes request 10:34:17.114715 Got request: GET /verifiedserver HTTP/1.1 10:34:17.114777 Are-we-friendly question received 10:34:17.114974 Wrote request (93 bytes) input to log/5/server.input 10:34:17.115111 Identifying ourselves as friends 10:34:17.115739 Response sent (56 bytes) and written to log/5/server.response 10:34:17.115844 special request received, no persistency 10:34:17.115903 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 56962 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 1943 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1943 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1943 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1946 ./libtest/libtests lib1940 http://127.0.0.1:43789/1946 > log/2/stdout1946 2> log/2/stderr1946 test 1944...[curl_easy_header with redirect] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1944 ./libtest/libtests lib1940 http://127.0.0.1:36007/1944 > log/8/stdout1944 2> log/8/stderr1944 1944: stdout FAILED: --- log/8/check-expected 2025-09-11 10:34:17.251184714 +0000 +++ log/8/check-generated 2025-09-11 10:34:17.251184714 +0000 @@ -1,6 +0,0 @@ - Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] - Server == the other one[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] -- Set-Cookie == 1cookie=data1; (0/2)[LF] -- Set-Cookie == 2cookie=data2; (1/2)[LF] == Contents of files in the log/8/ dir after test 1944 === Start of file check-expected Date == Thu, 09 Nov 2010 14:49:00 GMT[LF] Server == the other one[LF] Content-Type == text/html[LF] Content-Length == 0[LF] - Set-Cookie == 1cookie=data1; (0/2)[LF] - Set-Cookie == 2cookie=data2; (1/2)[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1944 ./libtest/libtests lib1940 http://127.0.0.1:36007/1944 > log/8/stdout1944 2> log/8/stderr1944 === End of file commands.log === Start of file http_server.log 10:34:16.246571 ====> Client connect 10:34:16.246921 accept_connection 3 returned 4 10:34:16.247159 accept_connection 3 returned 0 10:34:16.247322 Read 93 bytes 10:34:16.247426 Process 93 bytes request 10:34:16.247522 Got request: GET /verifiedserver HTTP/1.1 10:34:16.247594 Are-we-friendly question received 10:34:16.247811 Wrote request (93 bytes) input to log/8/server.input 10:34:16.247976 Identifying ourselves as friends 10:34:16.248781 Response sent (56 bytes) and written to log/8/server.response 10:34:16.248934 special request received, no persistency 10:34:16.248998 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 32986 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1944 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1944 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1944 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1945 ./libtest/libtests lib1945 http://hello:36757/1945 127.0.0.1:38083 > log/4/stdout1945 2> log/4/stderr1945 test 1946...[curl_easy_header with redirect but get headers from first request] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1946 ./libtest/libtests lib1940 http://127.0.0.1:43789/1946 > log/2/stdout1946 2> log/2/stderr1946 1946: stdout FAILED: --- log/2/check-expected 2025-09-11 10:34:17.531190288 +0000 +++ log/2/check-generated 2025-09-11 10:34:17.531190288 +0000 @@ -1,8 +0,0 @@ - Date == Thu, 01 Nov 2001 14:49:00 GMT[LF] - Server == test with trailing space[LF] - Content-Type == text/html[LF] - Content-Length == 0[LF] - Location == /19460002[LF] -- Set-Cookie == onecookie=data; (0/3)[LF] -- Set-Cookie == secondcookie=2data; (1/3)[LF] -- Set-Cookie == cookie3=data3; (2/3)[LF] == Contents of files in the log/2/ dir after test 1946 === Start of file check-expected Date == Thu, 01 Nov 2001 14:49:00 GMT[LF] Server == test with trailing space[LF] Content-Type == text/html[LF] Content-Length == 0[LF] Location == /19460002[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1946 ./libtest/libtests lib1940 http://127.0.0.1:43789/1946 > log/2/stdout1946 2> log/2/stderr1946 === End of file commands.log === Start of file http_server.log 10:34:16.528958 ====> Client connect 10:34:16.529360 accept_connection 3 returned 4 10:34:16.529568 accept_connection 3 returned 0 10:34:16.529733 Read 93 bytes 10:34:16.529847 Process 93 bytes request 10:34:16.529959 Got request: GET /verifiedserver HTTP/1.1 10:34:16.530046 Are-we-friendly question received 10:34:16.530283 Wrote request (93 bytes) input to log/2/server.input 10:34:16.530508 Identifying ourselves as friends 10:34:16.531383 Response sent (56 bytes) and written to log/2/server.response 10:34:16.531593 special request received, no persistency 10:34:16.531710 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50236 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1946 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1946 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1946 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 45281 --port2 38269 --nghttpx "nghttpx" --pidfile "log/6/server/http_v2_server.pid" --logfile "log/6/http_v2_server.log" --logdir "log/6" --connect 127.0.0.1:39357 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server test 1701 SKIPPED: failed starting HTTP/2 server startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 33725 --port2 42025 --nghttpx "nghttpx" --pidfile "log/3/server/http_v2_server.pid" --logfile "log/3/http_v2_server.log" --logdir "log/3" --connect 127.0.0.1:36933 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server test 1702 SKIPPED: failed starting HTTP/2 server CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1947 ./libtest/libtests lib1947 http://127.0.0.1:42781/1947 http://127.0.0.1:42781/19470003 > log/1/stdout1947 2> log/1/stderr1947 test 1945...[curl_easy_nextheader with server + CONNECT] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1945 ./libtest/libtests lib1945 http://hello:36757/1945 127.0.0.1:38083 > log/4/stdout1945 2> log/4/stderr1945 1945: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:17.631192278 +0000 +++ log/4/check-generated 2025-09-11 10:34:17.631192278 +0000 @@ -1,10 +0,0 @@ - Server == from the connect (0/2)[LF] - Silly-thing == yes yes (0/1)[LF] - Date == Thu, 09 Nov 2010 14:49:00 GMT (0/1)[LF] - Server == test with trailing space (1/2)[LF] - Content-Type == text/html (0/1)[LF] - Content-Length == 0 (0/1)[LF] - Set-Cookie == onecookie=data; (0/3)[LF] - Set-Cookie == secondcookie=2data; (1/3)[LF] - Set-Cookie == cookie3=data3; (2/3)[LF] - Location == /19450002 (0/1)[LF] == Contents of files in the log/4/ dir after test 1945 === Start of file check-expected Server == from the connect (0/2)[LF] Silly-thing == yes yes (0/1)[LF] Date == Thu, 09 Nov 2010 14:49:00 GMT (0/1)[LF] Server == test with trailing space (1/2)[LF] Content-Type == text/html (0/1)[LF] Content-Length == 0 (0/1)[LF] Set-Cookie == onecookie=data; (0/3)[LF] Set-Cookie == secondcookie=2data; (1/3)[LF] Set-Cookie == cookie3=data3; (2/3)[LF] Location == /19450002 (0/1)[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind1945 ./libtest/libtests lib1945 http://hello:36757/1945 127.0.0.1:38083 > log/4/stdout1945 2> log/4/stderr1945 === End of file commands.log === Start of file http2_server.log 10:34:16.588275 ====> Client connect 10:34:16.588579 accept_connection 3 returned 4 10:34:16.589112 accept_connection 3 returned 0 10:34:16.589237 Read 93 bytes 10:34:16.589329 Process 93 bytes request 10:34:16.589407 Got request: GET /verifiedserver HTTP/1.1 10:34:16.589468 Are-we-friendly question received 10:34:16.589701 Wrote request (93 bytes) input to log/4/proxy.input 10:34:16.589865 Identifying ourselves as friends 10:34:16.590483 Response sent (57 bytes) and written to log/4/proxy.response 10:34:16.590617 special request received, no persistency 10:34:16.590679 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:38083... * Established connection to 127.0.0.1 (127.0.0.1 port 38083) from 127.0.0.1 port 42488 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38083 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:38083 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 143578 === End of file http2_verify.out === Start of file http_server.log 10:34:17.464076 ====> Client connect 10:34:17.464392 accept_connection 3 returned 4 10:34:17.464568 accept_connection 3 returned 0 10:34:17.464817 Read 93 bytes 10:34:17.464903 Process 93 bytes request 10:34:17.464979 Got request: GET /verifiedserver HTTP/1.1 10:34:17.465043 Are-we-friendly question received 10:34:17.465299 Wrote request (93 bytes) input to log/4/server.input 10:34:17.465476 Identifying ourselves as friends 10:34:17.466157 Response sent (56 bytes) and written to log/4/server.response 10:34:17.466309 special request received, no persistency 10:34:17.466405 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 33728 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 143578 === End of file proxy.response === Start of file server.cmd Testnum 1945 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind1945 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1945 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1948 ./libtest/libtests lib1948 http://127.0.0.1:40129/1948 > log/7/stdout1948 2> log/7/stderr1948 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1960 ./libtest/libtests lib1960 http://127.0.0.1:41733/file 127.0.0.1 41733 > log/5/stdout1960 2> log/5/stderr1960 test 1947...[curl_easy_nextheader on second request after first did redirects] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1947 ./libtest/libtests lib1947 http://127.0.0.1:42781/1947 http://127.0.0.1:42781/19470003 > log/1/stdout1947 2> log/1/stderr1947 1947: stdout FAILED: --- log/1/check-expected 2025-09-11 10:34:17.903197693 +0000 +++ log/1/check-generated 2025-09-11 10:34:17.903197693 +0000 @@ -1,2 +0,0 @@ -count = 2[LF] -count = 1[LF] == Contents of files in the log/1/ dir after test 1947 === Start of file check-expected count = 2[LF] count = 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind1947 ./libtest/libtests lib1947 http://127.0.0.1:42781/1947 http://127.0.0.1:42781/19470003 > log/1/stdout1947 2> log/1/stderr1947 === End of file commands.log === Start of file http_server.log 10:34:16.789690 ====> Client connect 10:34:16.790060 accept_connection 3 returned 4 10:34:16.790261 accept_connection 3 returned 0 10:34:16.790396 Read 93 bytes 10:34:16.790483 Process 93 bytes request 10:34:16.790569 Got request: GET /verifiedserver HTTP/1.1 10:34:16.790636 Are-we-friendly question received 10:34:16.790886 Wrote request (93 bytes) input to log/1/server.input 10:34:16.791092 Identifying ourselves as friends 10:34:16.791921 Response sent (57 bytes) and written to log/1/server.response 10:34:16.792080 special request received, no persistency 10:34:16.792147 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 40804 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 1947 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind1947 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1947 test 1948...[CURLOPT_POST after CURLOPT_UPLOAD reusing handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1948 ./libtest/libtests lib1948 http://127.0.0.1:40129/1948 > log/7/stdout1948 2> log/7/stderr1948 1948: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 1948 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind1948 ./libtest/libtests lib1948 http://127.0.0.1:40129/1948 > log/7/stdout1948 2> log/7/stderr1948 === End of file commands.log === Start of file http_server.log 10:34:16.881099 ====> Client connect 10:34:16.881539 accept_connection 3 returned 4 10:34:16.881749 accept_connection 3 returned 0 10:34:16.881896 Read 93 bytes 10:34:16.882009 Process 93 bytes request 10:34:16.882125 Got request: GET /verifiedserver HTTP/1.1 10:34:16.882199 Are-we-friendly question received 10:34:16.882454 Wrote request (93 bytes) input to log/7/server.input 10:34:16.882650 Identifying ourselves as friends 10:34:16.883414 Response sent (56 bytes) and written to log/7/server.response 10:34:16.883540 special request received, no persistency 10:34:16.883611 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60554 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 1948 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind1948 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1948 prechecked ./libtest/libtests lib1960 check test 1960...[application hands over already connected socket] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1960 ./libtest/libtests lib1960 http://127.0.0.1:41733/file 127.0.0.1 41733 > log/5/stdout1960 2> log/5/stderr1960 1960: protocol FAILED! There was no content at all in the file log/5/server.input. SCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1964 ./libtest/libtests lib1964 http://xxx:yyy@127.0.0.1:9000/1964/testapi/test 127.0.0.1:9000:127.0.0.1:36007 > log/8/stdout1964 2> log/8/stderr1964 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1979 ./unit/units unit1979 - > log/6/stdout1979 2> log/6/stderr1979 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1980 ./unit/units unit1980 - > log/3/stdout1980 2> log/3/stderr1980 erver glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 1960 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind1960 ./libtest/libtests lib1960 http://127.0.0.1:41733/file 127.0.0.1 41733 > log/5/stdout1960 2> log/5/stderr1960 === End of file commands.log === Start of file http_server.log 10:34:17.937758 ====> Client connect 10:34:17.938054 accept_connection 3 returned 4 10:34:17.938232 accept_connection 3 returned 0 10:34:17.938371 Read 93 bytes 10:34:17.938459 Process 93 bytes request 10:34:17.938546 Got request: GET /verifiedserver HTTP/1.1 10:34:17.938611 Are-we-friendly question received 10:34:17.938854 Wrote request (93 bytes) input to log/5/server.input 10:34:17.939044 Identifying ourselves as friends 10:34:17.939735 Response sent (56 bytes) and written to log/5/server.response 10:34:17.939845 special request received, no persistency 10:34:17.939915 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 56970 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file precheck-1960 URL: check Test ended with result 0 === End of file precheck-1960 === Start of file server.cmd Testnum 1960 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind1960 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1960 test 1964...[HTTP AWS_SIGV4 with X-Xxx-Date header set manually] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1964 ./libtest/libtests lib1964 http://xxx:yyy@127.0.0.1:9000/1964/testapi/test 127.0.0.1:9000:127.0.0.1:36007 > log/8/stdout1964 2> log/8/stderr1964 1964: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 1964 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind1964 ./libtest/libtests lib1964 http://xxx:yyy@127.0.0.1:9000/1964/testapi/test 127.0.0.1:9000:127.0.0.1:36007 > log/8/stdout1964 2> log/8/stderr1964 === End of file commands.log === Start of file http_server.log 10:34:17.087671 ====> Client connect 10:34:17.088163 accept_connection 3 returned 4 10:34:17.088575 accept_connection 3 returned 0 10:34:17.090104 Read 93 bytes 10:34:17.090368 Process 93 bytes request 10:34:17.090511 Got request: GET /verifiedserver HTTP/1.1 10:34:17.090616 Are-we-friendly question received 10:34:17.090969 Wrote request (93 bytes) input to log/8/server.input 10:34:17.091275 Identifying ourselves as friends 10:34:17.094116 Response sent (56 bytes) and written to log/8/server.response 10:34:17.094364 special request received, no persistency 10:34:17.094463 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 32994 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 1964 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind1964 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1964 test 1980...[sigv4 canon_query unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1980 ./unit/units unit1980 - > log/3/stdout1980 2> log/3/stderr1980 units returned 1, when expecting 0 1980: exit FAILED == Contents of files in the log/3/ dir after test 1980 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind1980 ./unit/units unit1980 - > log/3/stdout1980 2> log/3/stderr1980 === End of file commands.log === Start of file server.cmd Testnum 1980 === End of file server.cmd === Start of file valgrind1980 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combinatioCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1977 ./libtest/libtests lib1977 http://127.0.0.1:43789/1977 > log/2/stdout1977 2> log/2/stderr1977 n valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1980 test 1979...[sigv4 canon_string unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1979 ./unit/units unit1979 - > log/6/stdout1979 2> log/6/stderr1979 units returned 1, when expecting 0 1979: exit FAILED == Contents of files in the log/6/ dir after test 1979 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind1979 ./unit/units unit1979 - > log/6/stdout1979 2> log/6/stderr1979 === End of file commands.log === Start of file server.cmd Testnum 1979 === End of file server.cmd === Start of file valgrind1979 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1979 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2000 ../src/curl -q --trace-ascii log/4/trace2000 --trace-time ftp://127.0.0.1:42635/2000 file://localhost/build/curl/src/build-curl/tests/log/4/test2000.txt > log/4/stdout2000 2> log/4/stderr2000 test 1977...[CURLOPT_CURLU and CURLINFO_EFFECTIVE_URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1977 ./libtest/libtests lib1977 http://127.0.0.1:43789/1977 > log/2/stdout1977 2> log/2/stderr1977 1977: stdout FAILED: --- log/2/check-expected 2025-09-11 10:34:18.579211150 +0000 +++ log/2/check-generated 2025-09-11 10:34:18.579211150 +0000 @@ -1,3 +0,0 @@ -effective URL: http://127.0.0.1:43789/1977[LF] -effective URL: http://127.0.0.1:43789/1977?foo[LF] -effective URL: http://127.0.0.1:43789/1977?foo&bar[LF] == Contents of files in the log/2/ dir after test 1977 === Start of file check-expected effective URL: http://127.0.0.1:43789/1977[LF] effective URL: http://127.0.0.1:43789/1977?foo[LF] effective URL: http://127.0.0.1:43789/1977?foo&bar[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind1977 ./libtest/libtests lib1977 http://127.0.0.1:43789/1977 > log/2/stdout1977 2> log/2/stderr1977 === End of file commands.log === Start of file http_server.log 10:34:17.387332 ====> Client connect 10:34:17.387649 accept_connection 3 returned 4 10:34:17.387857 accept_connection 3 returned 0 10:34:17.388020 Read 93 bytes 10:34:17.388127 Process 93 bytes request 10:34:17.388226 Got request: GET /verifiedserver HTTP/1.1 10:34:17.388304 Are-we-friendly question received 10:34:17.388540 Wrote request (93 bytes) input to log/2/server.input 10:34:17.388930 Identifying ourselves as friends 10:34:17.389800 Response sent (56 bytes) and written to log/2/server.response 10:34:17.389943 special request received, no persistency 10:34:17.390029 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50244 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 1977 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind1977 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind1977 test 2000...[FTP RETR followed by FILE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2000 ../src/curl -q --trace-ascii log/4/trace2000 --trace-time ftp://127.0.0.1:42635/2000 file://localhost/build/curl/src/build-curl/tests/log/4/test2000.txt > log/4/stdout2000 2> log/4/stderr2000 2000: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:18.771214972 +0000 +++ log/4/check-generated 2025-09-11 10:34:18.771214972 +0000 @@ -1,11 +0,0 @@ -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/4/ dir after test 2000 === Start of file check-expected data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2000 ../src/curl -q --trace-ascii log/4/trace2000 --trace-time ftp://127.0.0.1:42635/2000 file://localhost/build/curl/src/build-curl/tests/log/4/test2000.txt > log/4/stdout2000 2> log/4/stderr2000 === End of file commands.log === Start of file ftp_server.log 10:34:17.841673 ====> Client connect 10:34:17.843365 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:17.847396 < "USER anonymous" 10:34:17.847968 > "331 We are happy you popped in![CR][LF]" 10:34:17.855089 < "PASS ftp@example.com" 10:34:17.855593 > "230 Welcome you silly person[CR][LF]" 10:34:17.858916 < "PWD" 10:34:17.859673 > "257 "/" is current directory[CR][LF]" 10:34:17.870218 < "EPSV" 10:34:17.870627 ====> Passive DATA channel requested by client 10:34:17.870847 DATA sockfilt for passive data channel starting... 10:34:17.883615 DATA sockfilt for passive data channel started (pid 162664) 10:34:17.886127 DATA sockfilt for passive data channel listens on port 37609 10:34:17.886778 > "229 Entering Passive Mode (|||37609|)[LF]" 10:34:17.887110 Client has been notified that DATA conn will be accepted on port 37609 10:34:17.888778 Client connects to port 37609 10:34:17.889247 ====> Client established passive DATA connection on port 37609 10:34:17.890429 < "TYPE I" 10:34:17.891075 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:17.896943 < "SIZE verifiedserver" 10:34:17.897676 > "213 17[CR][LF]" 10:34:17.910527 < "RETR verifiedserver" 10:34:17.911157 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:17.912061 =====> Closing passive DATA connection... 10:34:17.912465 Server disconnects passive DATA connection 10:34:17.914735 Server disconnected passive DATA connection 10:34:17.915185 DATA sockfilt for passive data channel quits (pid 162664) 10:34:17.919458 DATA sockfilt for passive data channel quit (pid 162664) 10:34:17.919846 =====> Closed passive DATA connection 10:34:17.920211 > "226 File transfer complete[CR][LF]" 10:34:17.958367 < "QUIT" 10:34:17.959803 > "221 bye bye baby[CR][LF]" 10:34:17.960660 MAIN sockfilt said DISC 10:34:17.961784 ====> Client disconnected 10:34:17.962471 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:18.507825 ====> Client connect 10:34:18.511770 Received DATA (on stdin) 10:34:18.512029 > 160 bytes data, server => client 10:34:18.512144 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:18.512224 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:18.512333 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:18.513418 < 16 bytes data, client => server 10:34:18.513704 'USER anonymous\r\n' 10:34:18.515510 Received DATA (on stdin) 10:34:18.515749 > 33 bytes data, server => client 10:34:18.515884 '331 We are happy you popped in!\r\n' 10:34:18.518131 < 22 bytes data, client => server 10:34:18.518458 'PASS ftp@example.com\r\n' 10:34:18.522787 Received DATA (on stdin) 10:34:18.522962 > 30 bytes data, server => client 10:34:18.523083 '230 Welcome you silly person\r\n' 10:34:18.524076 < 5 bytes data, client => server 10:34:18.524305 'PWD\r\n' 10:34:18.527507 Received DATA (on stdin) 10:34:18.527764 > 30 bytes data, server => client 10:34:18.527908 '257 "/" is current directory\r\n' 10:34:18.532783 < 6 bytes data, client => server 10:34:18.533037 'EPSV\r\n' 10:34:18.553982 Received DATA (on stdin) 10:34:18.554204 > 38 bytes data, server => client 10:34:18.554346 '229 Entering Passive Mode (|||37609|)\n' 10:34:18.556497 < 8 bytes data, client => server 10:34:18.556739 'TYPE I\r\n' 10:34:18.559102 Received DATA (on stdin) 10:34:18.559368 > 33 bytes data, server => client 10:34:18.559486 '200 I modify TYPE as you wanted\r\n' 10:34:18.560327 < 21 bytes data, client => server 10:34:18.560672 'SIZE verifiedserver\r\n' 10:34:18.564877 Received DATA (on stdin) 10:34:18.565109 > 8 bytes data, server => client 10:34:18.565215 '213 17\r\n' 10:34:18.576798 < 21 bytes data, client => server 10:34:18.577057 'RETR verifiedserver\r\n' 10:34:18.578312 Received DATA (on stdin) 10:34:18.578519 > 29 bytes data, server => client 10:34:18.578623 '150 Binary junk (17 bytes).\r\n' 10:34:18.587363 Received DATA (on stdin) 10:34:18.587548 > 28 bytes data, server => client 10:34:18.587662 '226 File transfer complete\r\n' 10:34:18.621642 < 6 bytes data, client => server 10:34:18.621849 'QUIT\r\n' 10:34:18.625975 Received DATA (on stdin) 10:34:18.626190 > 18 bytes data, server => client 10:34:18.626403 '221 bye bye baby\r\n' 10:34:18.627162 ====> Client disconnect 10:34:18.628193 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:17.548883 Running IPv4 version 10:34:17.549561 Listening on port 37609 10:34:17.550059 Wrote pid 162664 to log/4/server/ftp_sockdata.pid 10:34:17.550333 Received PING (on stdin) 10:34:17.551226 Received PORT (on stdin) 10:34:17.555525 ====> Client connect 10:34:17.580783 Received DATA (on stdin) 10:34:17.581040 > 17 bytes data, server => client 10:34:17.581149 'WE ROOLZ: 79516\r\n' 10:34:17.581505 Received DISC (on stdin) 10:34:17.581730 ====> Client forcibly disconnected 10:34:17.582624 Received QUIT (on stdin) 10:34:17.582795 quits 10:34:17.583252 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 2000 === End of file server.cmd === Start of file test2000.txt foo bar bar foo moo === End of file test2000.txt === Start of file valgrind2000 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- eCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2005 ../src/curl -q --output log/6/curl2005.out --include --trace-ascii log/6/trace2005 --trace-time --netrc-optional --netrc-file log/6/netrc2005 http://127.0.0.1:39357/ > log/6/stdout2005 2> log/6/stderr2005 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2001 ../src/curl -q --trace-ascii log/1/trace2001 --trace-time http://127.0.0.1:42781/20010001 ftp://127.0.0.1:38733/20010002 file://localhost/build/curl/src/build-curl/tests/log/1/test2001.txt > log/1/stdout2001 2> log/1/stderr2001 xiting now. Sorry. === End of file valgrind2000 test 2005...[netrc match with password only in file, no username. machine follows] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2005 ../src/curl -q --output log/6/curl2005.out --include --trace-ascii log/6/trace2005 --trace-time --netrc-optional --netrc-file log/6/netrc2005 http://127.0.0.1:39357/ > log/6/stdout2005 2> log/6/stderr2005 2005: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 2005 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2005 ../src/curl -q --output log/6/curl2005.out --include --trace-ascii log/6/trace2005 --trace-time --netrc-optional --netrc-file log/6/netrc2005 http://127.0.0.1:39357/ > log/6/stdout2005 2> log/6/stderr2005 === End of file commands.log === Start of file http_server.log 10:34:18.089042 ====> Client connect 10:34:18.089372 accept_connection 3 returned 4 10:34:18.089551 accept_connection 3 returned 0 10:34:18.089698 Read 93 bytes 10:34:18.089783 Process 93 bytes request 10:34:18.089870 Got request: GET /verifiedserver HTTP/1.1 10:34:18.089939 Are-we-friendly question received 10:34:18.090166 Wrote request (93 bytes) input to log/6/server.input 10:34:18.090367 Identifying ourselves as friends 10:34:18.091129 Response sent (57 bytes) and written to log/6/server.response 10:34:18.091293 special request received, no persistency 10:34:18.091391 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 46522 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file netrc2005 machine 127.0.0.1 password 5up3r53cr37 machine example.com === End of file netrc2005 === Start of file server.cmd Testnum 2005 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind2005 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2005 test 2001...[HTTP GET followed by FTP RETR followed by FILE] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2001 ../src/curl -q --trace-ascii log/1/trace2001 --trace-time http://127.0.0.1:42781/20010001 ftp://127.0.0.1:38733/20010002 file://localhost/build/curl/src/build-curl/tests/log/1/test2001.txt > log/1/stdout2001 2> log/1/stderr2001 2001: stdout FAILED: --- log/1/check-expected 2025-09-11 10:34:19.279225084 +0000 +++ log/1/check-generated 2025-09-11 10:34:19.279225084 +0000 @@ -1,12 +0,0 @@ --foo-[LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/1/ dir after test 2001 === Start of file check-expected -foo-[LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2001 ../src/curl -q --trace-ascii log/1/trace2001 --trace-time http://127.0.0.1:42781/20010001 ftp://127.0.0.1:38733/20010002 file://localhost/build/curl/src/build-curl/tests/log/1/test2001.txt > log/1/stdout2001 2> log/1/stderr2001 === End of file commands.log === Start of file ftp_server.log 10:34:18.294854 ====> Client connect 10:34:18.296304 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:18.301252 < "USER anonymous" 10:34:18.301971 > "331 We are happy you popped in![CR][LF]" 10:34:18.307089 < "PASS ftp@example.com" 10:34:18.307743 > "230 Welcome you silly person[CR][LF]" 10:34:18.310690 < "PWD" 10:34:18.311530 > "257 "/" is current directory[CR][LF]" 10:34:18.314310 < "EPSV" 10:34:18.314821 ====> Passive DATA channel requested by client 10:34:18.315139 DATA sockfilt for passive data channel starting... 10:34:18.331720 DATA sockfilt for passive data channel started (pid 162858) 10:34:18.333208 DATA sockfilt for passive data channel listens on port 43019 10:34:18.334008 > "229 Entering Passive Mode (|||43019|)[LF]" 10:34:18.334403 Client has been notified that DATA conn will be accepted on port 43019 10:34:18.337432 Client connects to port 43019 10:34:18.337929 ====> Client established passive DATA connection on port 43019 10:34:18.338900 < "TYPE I" 10:34:18.340378 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:18.342494 < "SIZE verifiedserver" 10:34:18.342972 > "213 17[CR][LF]" 10:34:18.346377 < "RETR verifiedserver" 10:34:18.346913 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:18.347679 =====> Closing passive DATA connection... 10:34:18.347984 Server disconnects passive DATA connection 10:34:18.350614 Server disconnected passive DATA connection 10:34:18.351187 DATA sockfilt for passive data channel quits (pid 162858) 10:34:18.353793 DATA sockfilt for passive data channel quit (pid 162858) 10:34:18.354288 =====> Closed passive DATA connection 10:34:18.354796 > "226 File transfer complete[CR][LF]" 10:34:18.391644 < "QUIT" 10:34:18.392096 > "221 bye bye baby[CR][LF]" 10:34:18.395448 MAIN sockfilt said DISC 10:34:18.395870 ====> Client disconnected 10:34:18.397190 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:17.959808 ====> Client connect 10:34:17.963462 Received DATA (on stdin) 10:34:17.963752 > 160 bytes data, server => client 10:34:17.963874 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:17.963978 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:17.964057 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:17.965233 < 16 bytes data, client => server 10:34:17.965459 'USER anonymous\r\n' 10:34:17.969066 Received DATA (on stdin) 10:34:17.969351 > 33 bytes data, server => client 10:34:17.969464 '331 We are happy you popped in!\r\n' 10:34:17.971767 < 22 bytes data, client => server 10:34:17.971999 'PASS ftp@example.com\r\n' 10:34:17.974889 Received DATA (on stdin) 10:34:17.975060 > 30 bytes data, server => client 10:34:17.975160 '230 Welcome you silly person\r\n' 10:34:17.975856 < 5 bytes data, client => server 10:34:17.976040 'PWD\r\n' 10:34:17.978649 Received DATA (on stdin) 10:34:17.978908 > 30 bytes data, server => client 10:34:17.979006 '257 "/" is current directory\r\n' 10:34:17.979941 < 6 bytes data, client => server 10:34:17.980143 'EPSV\r\n' 10:34:18.002090 Received DATA (on stdin) 10:34:18.002359 > 38 bytes data, server => client 10:34:18.002500 '229 Entering Passive Mode (|||43019|)\n' 10:34:18.004098 < 8 bytes data, client => server 10:34:18.004241 'TYPE I\r\n' 10:34:18.006579 Received DATA (on stdin) 10:34:18.006744 > 33 bytes data, server => client 10:34:18.006936 '200 I modify TYPE as you wanted\r\n' 10:34:18.008395 < 21 bytes data, client => server 10:34:18.008660 'SIZE verifiedserver\r\n' 10:34:18.010338 Received DATA (on stdin) 10:34:18.010457 > 8 bytes data, server => client 10:34:18.010528 '213 17\r\n' 10:34:18.012196 < 21 bytes data, client => server 10:34:18.012384 'RETR verifiedserver\r\n' 10:34:18.015568 Received DATA (on stdin) 10:34:18.015683 > 29 bytes data, server => client 10:34:18.015752 '150 Binary junk (17 bytes).\r\n' 10:34:18.022349 Received DATA (on stdin) 10:34:18.022570 > 28 bytes data, server => client 10:34:18.022683 '226 File transfer complete\r\n' 10:34:18.057880 < 6 bytes data, client => server 10:34:18.058098 'QUIT\r\n' 10:34:18.059259 Received DATA (on stdin) 10:34:18.059431 > 18 bytes data, server => client 10:34:18.059523 '221 bye bye baby\r\n' 10:34:18.062230 ====> Client disconnect 10:34:18.063519 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:18.997267 Running IPv4 version 10:34:18.997809 Listening on port 43019 10:34:18.998301 Wrote pid 162858 to log/1/server/ftp_sockdata.pid 10:34:18.998474 Received PING (on stdin) 10:34:18.999532 Received PORT (on stdin) 10:34:19.004064 ====> Client connect 10:34:19.016201 Received DATA (on stdin) 10:34:19.016404 > 17 bytes data, server => client 10:34:19.016513 'WE ROOLZ: 79585\r\n' 10:34:19.017118 Received DISC (on stdin) 10:34:19.017276 ====> Client forcibly disconnected 10:34:19.018759 Received QUIT (on stdin) 10:34:19.018957 quits 10:34:19.019430 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:34:17.784060 ====> Client connect 10:34:17.784881 accept_connection 3 returned 4 10:34:17.785415 accept_connection 3 returned 0 10:34:17.787734 Read 93 bytes 10:34:17.788067 Process 93 bytes request 10:34:17.788294 Got request: GET /verifiedserver HTTP/1.1 10:34:17.788467 Are-we-friendly question received 10:34:17.789656 Wrote request (93 bytes) input to log/1/server.input 10:34:17.790101 Identifying ourselves as friends 10:34:17.793717 Response sent (57 bytes) and written to log/1/server.response 10:34:17.793955 special request received, no persistency 10:34:17.794092 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 40808 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 2001 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file test2001.txtCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2002 ../src/curl -q --trace-ascii log/7/trace2002 --trace-time http://127.0.0.1:40129/20020001 ftp://127.0.0.1:38253/20020002 file://localhost/build/curl/src/build-curl/tests/log/7/test2002.txt tftp://127.0.0.1:41660//20020003 > log/7/stdout2002 2> log/7/stderr2002 foo bar bar foo moo === End of file test2001.txt === Start of file valgrind2001 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2001 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2023 ./libtest/libtests lib2023 http://127.0.0.1:36933/2023 basic basic > log/3/stdout2023 2> log/3/stderr2023 test 2002...[HTTP GET followed by FTP RETR followed by FILE followed by TFTP RRQ] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2002 ../src/curl -q --trace-ascii log/7/trace2002 --trace-time http://127.0.0.1:40129/20020001 ftp://127.0.0.1:38253/20020002 file://localhost/build/curl/src/build-curl/tests/log/7/test2002.txt tftp://127.0.0.1:41660//20020003 > log/7/stdout2002 2> log/7/stderr2002 2002: stdout FAILED: --- log/7/check-expected 2025-09-11 10:34:19.523229941 +0000 +++ log/7/check-generated 2025-09-11 10:34:19.523229941 +0000 @@ -1,16 +0,0 @@ --foo-[LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] -a chunk of[LF] -data[LF] -returned[LF] - to TFTP client[LF] == Contents of files in the log/7/ dir after test 2002 === Start of file check-expected -foo-[LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] a chunk of[LF] data[LF] returned[LF] to TFTP client[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2002 ../src/curl -q --trace-ascii log/7/trace2002 --trace-time http://127.0.0.1:40129/20020001 ftp://127.0.0.1:38253/20020002 file://localhost/build/curl/src/build-curl/tests/log/7/test2002.txt tftp://127.0.0.1:41660//20020003 > log/7/stdout2002 2> log/7/stderr2002 === End of file commands.log === Start of file ftp_server.log 10:34:18.329667 ====> Client connect 10:34:18.331082 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:18.342710 < "USER anonymous" 10:34:18.343104 > "331 We are happy you popped in![CR][LF]" 10:34:18.346481 < "PASS ftp@example.com" 10:34:18.346911 > "230 Welcome you silly person[CR][LF]" 10:34:18.351800 < "PWD" 10:34:18.352349 > "257 "/" is current directory[CR][LF]" 10:34:18.355989 < "EPSV" 10:34:18.356417 ====> Passive DATA channel requested by client 10:34:18.356633 DATA sockfilt for passive data channel starting... 10:34:18.368197 DATA sockfilt for passive data channel started (pid 162883) 10:34:18.369738 DATA sockfilt for passive data channel listens on port 37963 10:34:18.370316 > "229 Entering Passive Mode (|||37963|)[LF]" 10:34:18.370666 Client has been notified that DATA conn will be accepted on port 37963 10:34:18.375924 Client connects to port 37963 10:34:18.376517 ====> Client established passive DATA connection on port 37963 10:34:18.377444 < "TYPE I" 10:34:18.378108 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:18.380209 < "SIZE verifiedserver" 10:34:18.380786 > "213 17[CR][LF]" 10:34:18.382691 < "RETR verifiedserver" 10:34:18.383315 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:18.384396 =====> Closing passive DATA connection... 10:34:18.384811 Server disconnects passive DATA connection 10:34:18.387007 Server disconnected passive DATA connection 10:34:18.387499 DATA sockfilt for passive data channel quits (pid 162883) 10:34:18.389414 DATA sockfilt for passive data channel quit (pid 162883) 10:34:18.389956 =====> Closed passive DATA connection 10:34:18.390384 > "226 File transfer complete[CR][LF]" 10:34:18.431478 < "QUIT" 10:34:18.432071 > "221 bye bye baby[CR][LF]" 10:34:18.441916 MAIN sockfilt said DISC 10:34:18.442556 ====> Client disconnected 10:34:18.443341 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:18.992881 ====> Client connect 10:34:19.004719 Received DATA (on stdin) 10:34:19.004969 > 160 bytes data, server => client 10:34:19.005106 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:19.005186 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:19.005254 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:19.009128 < 16 bytes data, client => server 10:34:19.009341 'USER anonymous\r\n' 10:34:19.010253 Received DATA (on stdin) 10:34:19.010390 > 33 bytes data, server => client 10:34:19.010462 '331 We are happy you popped in!\r\n' 10:34:19.011045 < 22 bytes data, client => server 10:34:19.011254 'PASS ftp@example.com\r\n' 10:34:19.014056 Received DATA (on stdin) 10:34:19.014182 > 30 bytes data, server => client 10:34:19.014257 '230 Welcome you silly person\r\n' 10:34:19.016777 < 5 bytes data, client => server 10:34:19.016958 'PWD\r\n' 10:34:19.019490 Received DATA (on stdin) 10:34:19.019662 > 30 bytes data, server => client 10:34:19.019770 '257 "/" is current directory\r\n' 10:34:19.021817 < 6 bytes data, client => server 10:34:19.022017 'EPSV\r\n' 10:34:19.039265 Received DATA (on stdin) 10:34:19.039508 > 38 bytes data, server => client 10:34:19.039593 '229 Entering Passive Mode (|||37963|)\n' 10:34:19.041205 < 8 bytes data, client => server 10:34:19.041451 'TYPE I\r\n' 10:34:19.045260 Received DATA (on stdin) 10:34:19.045497 > 33 bytes data, server => client 10:34:19.045632 '200 I modify TYPE as you wanted\r\n' 10:34:19.046478 < 21 bytes data, client => server 10:34:19.046745 'SIZE verifiedserver\r\n' 10:34:19.047921 Received DATA (on stdin) 10:34:19.048108 > 8 bytes data, server => client 10:34:19.048194 '213 17\r\n' 10:34:19.049070 < 21 bytes data, client => server 10:34:19.049250 'RETR verifiedserver\r\n' 10:34:19.050748 Received DATA (on stdin) 10:34:19.050901 > 29 bytes data, server => client 10:34:19.051007 '150 Binary junk (17 bytes).\r\n' 10:34:19.057933 Received DATA (on stdin) 10:34:19.058102 > 28 bytes data, server => client 10:34:19.058205 '226 File transfer complete\r\n' 10:34:19.097502 < 6 bytes data, client => server 10:34:19.097776 'QUIT\r\n' 10:34:19.099228 Received DATA (on stdin) 10:34:19.099443 > 18 bytes data, server => client 10:34:19.099548 '221 bye bye baby\r\n' 10:34:19.104814 ====> Client disconnect 10:34:19.109731 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:18.033488 Running IPv4 version 10:34:18.034102 Listening on port 37963 10:34:18.034658 Wrote pid 162883 to log/7/server/ftp_sockdata.pid 10:34:18.034842 Received PING (on stdin) 10:34:18.035922 Received PORT (on stdin) 10:34:18.040864 ====> Client connect 10:34:18.052456 Received DATA (on stdin) 10:34:18.052788 > 17 bytes data, server => client 10:34:18.052968 'WE ROOLZ: 79543\r\n' 10:34:18.053355 Received DISC (on stdin) 10:34:18.053615 ====> Client forcibly disconnected 10:34:18.054996 Received QUIT (on stdin) 10:34:18.055203 quits 10:34:18.055635 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:34:17.825418 ====> Client connect 10:34:17.825763 accept_connection 3 returned 4 10:34:17.825945 accept_connection 3 returned 0 10:34:17.826073 Read 93 bytes 10:34:17.826152 Process 93 bytes request 10:34:17.826232 Got request: GET /verifiedserver HTTP/1.1 10:34:17.826299 Are-we-friendly question received 10:34:17.826542 Wrote request (93 bytes) input to log/7/server.input 10:34:17.826729 Identifying ourselves as friends 10:34:17.827573 Response sent (56 bytes) and written to log/7/server.response 10:34:17.827718 special request received, no persistency 10:34:17.827806 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60560 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start ofCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2024 ./libtest/libtests lib2023 http://127.0.0.1:36007/2024 basic digest > log/8/stdout2024 2> log/8/stderr2024 file server.cmd Testnum 2002 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file test2002.txt foo bar bar foo moo === End of file test2002.txt === Start of file tftp_server.log 10:34:18.293287 trying to get file: verifiedserver mode 1 10:34:18.293620 Are-we-friendly question received 10:34:18.293762 write 10:34:18.294012 read 10:34:18.294453 read: 4 10:34:18.294825 end of one transfer === End of file tftp_server.log === Start of file valgrind2002 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2002 test 2023...[HTTP authorization retry (Basic)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2023 ./libtest/libtests lib2023 http://127.0.0.1:36933/2023 basic basic > log/3/stdout2023 2> log/3/stderr2023 2023: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 2023 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2023 ./libtest/libtests lib2023 http://127.0.0.1:36933/2023 basic basic > log/3/stdout2023 2> log/3/stderr2023 === End of file commands.log === Start of file http_server.log 10:34:18.253854 ====> Client connect 10:34:18.254234 accept_connection 3 returned 4 10:34:18.254374 accept_connection 3 returned 0 10:34:18.254497 Read 93 bytes 10:34:18.254585 Process 93 bytes request 10:34:18.254679 Got request: GET /verifiedserver HTTP/1.1 10:34:18.254757 Are-we-friendly question received 10:34:18.255050 Wrote request (93 bytes) input to log/3/server.input 10:34:18.255298 Identifying ourselves as friends 10:34:18.256094 Response sent (56 bytes) and written to log/3/server.response 10:34:18.256274 special request received, no persistency 10:34:18.256346 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 52516 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 2023 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind2023 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2023 test 2024...[HTTP authorization retry (Basic switching to Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2024 ./libtest/libtests lib2023 http://127.0.0.1:36007/2024 basic digest > log/8/stdout2024 2> log/8/stderr2024 2024: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 2024 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2024 ./libtest/libtests lib2023 http://127.0.0.1:36007/2024 basic digest > log/8/stdout2024 2> log/8/stderr2024 === End of file commands.log === Start of file http_server.log 10:34:18.250139 ====> Client connect 10:34:18.250490 accept_connection 3 returned 4 10:34:18.250718 accept_connection 3 returned 0 10:34:18.250894 Read 93 bytes 10:34:18.250998 Process 93 bytes request 10:34:18.251100 Got request: GET /verifiedserver HTTP/1.1 10:34:18.251175 Are-we-friendly question received 10:34:18.251432 Wrote request (93 bytes) input to log/8/server.input 10:34:18.251643 Identifying ourselves as friends 10:34:18.252357 Response sent (56 bytes) and written to log/8/server.response 10:34:18.252483 special request received, no persistency 10:34:18.252552 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 32998 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 2024 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind2024 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platfoCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2003 ../src/curl -q --trace-ascii log/5/trace2003 --trace-time http://127.0.0.1:41733/20030001 ftp://127.0.0.1:40501/20030002 file://localhost/build/curl/src/build-curl/tests/log/5/test2003.txt tftp://127.0.0.1:44106//20030003 tftp://127.0.0.1:44106//20030003 file://localhost/build/curl/src/build-curl/tests/log/5/test2003.txt ftp://127.0.0.1:40501/20030002 http://127.0.0.1:41733/20030001 > log/5/stdout2003 2> log/5/stderr2003 rm-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2024 test 2003...[HTTP GET, FTP RETR, FILE, TFTP RRQ then again in rev order] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2003 ../src/curl -q --trace-ascii log/5/trace2003 --trace-time http://127.0.0.1:41733/20030001 ftp://127.0.0.1:40501/20030002 file://localhost/build/curl/src/build-curl/tests/log/5/test2003.txt tftp://127.0.0.1:44106//20030003 tftp://127.0.0.1:44106//20030003 file://localhost/build/curl/src/build-curl/tests/log/5/test2003.txt ftp://127.0.0.1:40501/20030002 http://127.0.0.1:41733/20030001 > log/5/stdout2003 2> log/5/stderr2003 2003: stdout FAILED: --- log/5/check-expected 2025-09-11 10:34:19.791235276 +0000 +++ log/5/check-generated 2025-09-11 10:34:19.787235196 +0000 @@ -1,32 +0,0 @@ --foo-[LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] -a chunk of[LF] -data[LF] -returned[LF] - to TFTP client[LF] -a chunk of[LF] -data[LF] -returned[LF] - to TFTP client[LF] -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] -data[LF] - to[LF] - see[LF] -that FTP[LF] -works[LF] - so does it?[LF] --foo-[LF] == Contents of files in the log/5/ dir after test 2003 === Start of file check-expected -foo-[LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] a chunk of[LF] data[LF] returned[LF] to TFTP client[LF] a chunk of[LF] data[LF] returned[LF] to TFTP client[LF] foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] data[LF] to[LF] see[LF] that FTP[LF] works[LF] so does it?[LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2003 ../src/curl -q --trace-ascii log/5/trace2003 --trace-time http://127.0.0.1:41733/20030001 ftp://127.0.0.1:40501/20030002 file://localhost/build/curl/src/build-curl/tests/log/5/test2003.txt tftp://127.0.0.1:44106//20030003 tftp://127.0.0.1:44106//20030003 file://localhost/build/curl/src/build-curl/tests/log/5/test2003.txt ftp://127.0.0.1:40501/20030002 http://127.0.0.1:41733/20030001 > log/5/stdout2003 2> log/5/stderr2003 === End of file commands.log === Start of file ftp_server.log 10:34:18.485942 ====> Client connect 10:34:18.487293 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:18.494373 < "USER anonymous" 10:34:18.494967 > "331 We are happy you popped in![CR][LF]" 10:34:18.496843 < "PASS ftp@example.com" 10:34:18.497287 > "230 Welcome you silly person[CR][LF]" 10:34:18.502264 < "PWD" 10:34:18.502808 > "257 "/" is current directory[CR][LF]" 10:34:18.506029 < "EPSV" 10:34:18.506497 ====> Passive DATA channel requested by client 10:34:18.506819 DATA sockfilt for passive data channel starting... 10:34:18.519604 DATA sockfilt for passive data channel started (pid 162952) 10:34:18.520817 DATA sockfilt for passive data channel listens on port 36679 10:34:18.521445 > "229 Entering Passive Mode (|||36679|)[LF]" 10:34:18.521775 Client has been notified that DATA conn will be accepted on port 36679 10:34:18.526267 Client connects to port 36679 10:34:18.526812 ====> Client established passive DATA connection on port 36679 10:34:18.527935 < "TYPE I" 10:34:18.528553 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:18.532898 < "SIZE verifiedserver" 10:34:18.534010 > "213 18[CR][LF]" 10:34:18.536080 < "RETR verifiedserver" 10:34:18.536710 > "150 Binary junk (18 bytes).[CR][LF]" 10:34:18.537638 =====> Closing passive DATA connection... 10:34:18.537996 Server disconnects passive DATA connection 10:34:18.539758 Server disconnected passive DATA connection 10:34:18.540150 DATA sockfilt for passive data channel quits (pid 162952) 10:34:18.542060 DATA sockfilt for passive data channel quit (pid 162952) 10:34:18.542455 =====> Closed passive DATA connection 10:34:18.542895 > "226 File transfer complete[CR][LF]" 10:34:18.586344 < "QUIT" 10:34:18.586871 > "221 bye bye baby[CR][LF]" 10:34:18.592433 MAIN sockfilt said DISC 10:34:18.592893 ====> Client disconnected 10:34:18.593681 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:19.151633 ====> Client connect 10:34:19.154807 Received DATA (on stdin) 10:34:19.155023 > 160 bytes data, server => client 10:34:19.155136 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:19.155220 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:19.155352 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:19.156833 < 16 bytes data, client => server 10:34:19.157112 'USER anonymous\r\n' 10:34:19.162109 Received DATA (on stdin) 10:34:19.162318 > 33 bytes data, server => client 10:34:19.162420 '331 We are happy you popped in!\r\n' 10:34:19.163275 < 22 bytes data, client => server 10:34:19.163477 'PASS ftp@example.com\r\n' 10:34:19.164410 Received DATA (on stdin) 10:34:19.164562 > 30 bytes data, server => client 10:34:19.165211 '230 Welcome you silly person\r\n' 10:34:19.166108 < 5 bytes data, client => server 10:34:19.166292 'PWD\r\n' 10:34:19.170836 Received DATA (on stdin) 10:34:19.171084 > 30 bytes data, server => client 10:34:19.171204 '257 "/" is current directory\r\n' 10:34:19.172279 < 6 bytes data, client => server 10:34:19.172523 'EPSV\r\n' 10:34:19.188643 Received DATA (on stdin) 10:34:19.188859 > 38 bytes data, server => client 10:34:19.188970 '229 Entering Passive Mode (|||36679|)\n' 10:34:19.192807 < 8 bytes data, client => server 10:34:19.193027 'TYPE I\r\n' 10:34:19.195679 Received DATA (on stdin) 10:34:19.195908 > 33 bytes data, server => client 10:34:19.196030 '200 I modify TYPE as you wanted\r\n' 10:34:19.197121 < 21 bytes data, client => server 10:34:19.197340 'SIZE verifiedserver\r\n' 10:34:19.200750 Received DATA (on stdin) 10:34:19.200990 > 8 bytes data, server => client 10:34:19.201089 '213 18\r\n' 10:34:19.202070 < 21 bytes data, client => server 10:34:19.202331 'RETR verifiedserver\r\n' 10:34:19.203860 Received DATA (on stdin) 10:34:19.204099 > 29 bytes data, server => client 10:34:19.204250 '150 Binary junk (18 bytes).\r\n' 10:34:19.210062 Received DATA (on stdin) 10:34:19.210268 > 28 bytes data, server => client 10:34:19.210369 '226 File transfer complete\r\n' 10:34:19.246468 < 6 bytes data, client => server 10:34:19.246702 'QUIT\r\n' 10:34:19.254041 Received DATA (on stdin) 10:34:19.254198 > 18 bytes data, server => client 10:34:19.254295 '221 bye bye baby\r\n' 10:34:19.259085 ====> Client disconnect 10:34:19.262127 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:18.183382 Running IPv4 version 10:34:18.183957 Listening on port 36679 10:34:18.184455 Wrote pid 162952 to log/5/server/ftp_sockdata.pid 10:34:18.186250 Received PING (on stdin) 10:34:18.187235 Received PORT (on stdin) 10:34:18.190409 ====> Client connect 10:34:18.205481 Received DATA (on stdin) 10:34:18.205689 > 18 bytes data, server => client 10:34:18.205822 'WE ROOLZ: 131615\r\n' 10:34:18.206206 Received DISC (on stdin) 10:34:18.206418 ====> Client forcibly disconnected 10:34:18.207667 Received QUIT (on stdin) 10:34:18.207825 quits 10:34:18.208326 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file http_server.log 10:34:19.013111 ====> Client connect 10:34:19.013436 accept_connection 3 returned 4 10:34:19.013617 accept_connection 3 returned 0 10:34:19.013760 Read 93 bytes 10:34:19.013860 Process 93 bytes request 10:34:19.014061 Got request: GET /verifiedserver HTTP/1.1 10:34:19.014161 Are-we-friendly question received 10:34:19.014476 Wrote request (93 bytes) input to log/5/server.input 10:34:19.014701 Identifying ourselves as friends 10:34:19.015497 Response sent (56CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2025 ./libtest/libtests lib2023 http://127.0.0.1:43789/2025 basic ntlm > log/2/stdout2025 2> log/2/stderr2025 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2026 ./libtest/libtests lib2023 http://127.0.0.1:36757/2026 digest basic > log/4/stdout2026 2> log/4/stderr2026 bytes) and written to log/5/server.response 10:34:19.015620 special request received, no persistency 10:34:19.015680 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 56984 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 2003 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file test2003.txt foo bar bar foo moo === End of file test2003.txt === Start of file tftp_server.log 10:34:19.400398 trying to get file: verifiedserver mode 1 10:34:19.400868 Are-we-friendly question received 10:34:19.401030 write 10:34:19.401277 read 10:34:19.404708 read: 4 10:34:19.405344 end of one transfer === End of file tftp_server.log === Start of file valgrind2003 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2003 test 2025...[HTTP authorization retry (Basic switching to NTLM)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2025 ./libtest/libtests lib2023 http://127.0.0.1:43789/2025 basic ntlm > log/2/stdout2025 2> log/2/stderr2025 2025: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 2025 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2025 ./libtest/libtests lib2023 http://127.0.0.1:43789/2025 basic ntlm > log/2/stdout2025 2> log/2/stderr2025 === End of file commands.log === Start of file http_server.log 10:34:18.434997 ====> Client connect 10:34:18.435284 accept_connection 3 returned 4 10:34:18.435446 accept_connection 3 returned 0 10:34:18.435559 Read 93 bytes 10:34:18.435636 Process 93 bytes request 10:34:18.435719 Got request: GET /verifiedserver HTTP/1.1 10:34:18.435790 Are-we-friendly question received 10:34:18.436055 Wrote request (93 bytes) input to log/2/server.input 10:34:18.436243 Identifying ourselves as friends 10:34:18.438036 Response sent (56 bytes) and written to log/2/server.response 10:34:18.438214 special request received, no persistency 10:34:18.438290 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 50252 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 2025 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind2025 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2025 test 2026...[HTTP authorization retry (Digest switching to Basic)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2026 ./libtest/libtests lib2023 http://127.0.0.1:36757/2026 digest basic > log/4/stdout2026 2> log/4/stderr2026 2026: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 2026 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2026 ./libtest/libtests lib2023 http://127.0.0.1:36757/2026 digest basic > log/4/stdout2026 2> log/4/stderr2026 === End of file commands.log === Start of file http_server.log 10:34:19.635550 ====> Client connect 10:34:19.635863 accept_connection 3 returned 4 10:34:19.636072 accept_connection 3 returned 0 10:34:19.636202 Read 93 bytes 10:34:19.636275 Process 93 bytes request 10:34:19.636351 Got request: GET /verifiedserver HTTP/1.1 10:34:19.636417 Are-we-friendly question received 10:34:19.636702 Wrote request (93 bytes) input to log/4/server.input 10:34:19.636939 Identifying ourselves as friends 10:34:19.637615 Response sent (56 bytes) and written to log/4/server.response 10:34:19.637756 special request received, no persistency 10:34:19.637831 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 3CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2027 ./libtest/libtests lib2023 http://127.0.0.1:39357/2027 digest digest > log/6/stdout2027 2> log/6/stderr2027 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2028 ./libtest/libtests lib2023 http://127.0.0.1:42781/2028 digest ntlm > log/1/stdout2028 2> log/1/stderr2028 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2032 ./libtest/libtests lib2032 http://127.0.0.1:41733/2032 > log/5/stdout2032 2> log/5/stderr2032 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2029 ./libtest/libtests lib2023 http://127.0.0.1:40129/2029 ntlm basic > log/7/stdout2029 2> log/7/stderr2029 6757) from 127.0.0.1 port 33740 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 2026 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind2026 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2026 test 2027...[HTTP authorization retry (Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2027 ./libtest/libtests lib2023 http://127.0.0.1:39357/2027 digest digest > log/6/stdout2027 2> log/6/stderr2027 2027: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 2027 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2027 ./libtest/libtests lib2023 http://127.0.0.1:39357/2027 digest digest > log/6/stdout2027 2> log/6/stderr2027 === End of file commands.log === Start of file http_server.log 10:34:19.087240 ====> Client connect 10:34:19.087719 accept_connection 3 returned 4 10:34:19.087980 accept_connection 3 returned 0 10:34:19.088145 Read 93 bytes 10:34:19.088256 Process 93 bytes request 10:34:19.088369 Got request: GET /verifiedserver HTTP/1.1 10:34:19.088484 Are-we-friendly question received 10:34:19.088927 Wrote request (93 bytes) input to log/6/server.input 10:34:19.089323 Identifying ourselves as friends 10:34:19.090439 Response sent (57 bytes) and written to log/6/server.response 10:34:19.090673 special request received, no persistency 10:34:19.090759 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 46526 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 2027 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind2027 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2027 test 2028...[HTTP authorization retry (Digest switching to NTLM)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2028 ./libtest/libtests lib2023 http://127.0.0.1:42781/2028 digest ntlm > log/1/stdout2028 2> log/1/stderr2028 2028: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 2028 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2028 ./libtest/libtests lib2023 http://127.0.0.1:42781/2028 digest ntlm > log/1/stdout2028 2> log/1/stderr2028 === End of file commands.log === Start of file http_server.log 10:34:19.202904 ====> Client connect 10:34:19.203330 accept_connection 3 returned 4 10:34:19.203579 accept_connection 3 returned 0 10:34:19.203735 Read 93 bytes 10:34:19.203829 Process 93 bytes request 10:34:19.203922 Got request: GET /verifiedserver HTTP/1.1 10:34:19.204005 Are-we-friendly question received 10:34:19.206582 Wrote request (93 bytes) input to log/1/server.input 10:34:19.206894 Identifying ourselves as friends 10:34:19.207843 Response sent (57 bytes) and written to log/1/server.response 10:34:19.207989 special request received, no persistency 10:34:19.208074 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 40810 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 2028 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind2028 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2028 test 2032...[NTLM connection mapping] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2032 ./libtest/libtests lib2032 http://127.0.0.1:41733/2032 > log/5/stdout2032 2> log/5/stderr2032 2032: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 2032 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2032 ./libtest/libtests lib2032 http://127.0.0.1:41733/2032 > log/5/stdout2032 2> log/5/stderr2032 === End of file commands.log === Start of file http_server.log 10:34:20.671011 ====> Client connect 10:34:20.671357 accept_connection 3 returned 4 10:34:20.671564 accept_connection 3 returned 0 10:34:20.671727 Read 93 bytes 10:34:20.671817 Process 93 bytes request 10:34:20.671912 Got request: GET /verifiedserver HTTP/1.1 10:34:20.671997 Are-we-friendly question received 10:34:20.672239 Wrote request (93 bytes) input to log/5/server.input 10:34:20.672513 Identifying ourselves as friends 10:34:20.673555 Response sent (56 bytes) and written to log/5/server.response 10:34:20.673725 special request received, no persistency 10:34:20.673802 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 56996 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 2032 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind2032 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2032 test 2029...[HTTP authorization retry (NTLM switching to Basic)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2029 ./libtest/libtests lib2023 http://127.0.0.1:40129/2029 ntlm basic > log/7/stdout2029 2> log/7/stderr2029 2029: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 2029 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2029 ./libtest/libtests lib2023 http://127.0.0.1:40129/2029 ntlm basic > log/7/stdout2029 2> log/7/stderr2029 === End of file commands.log === Start of file http_server.log 10:34:19.436417 ====> Client connect 10:34:19.437171 accept_connection 3 returned 4 10:34:19.437435 accept_connection 3 returned 0 10:34:19.437591 Read 93 bytes 10:34:19.437687 Process 93 bytes request 10:34:19.437775 Got request: GET /verifiedserver HTTP/1.1 10:34:19.437845 Are-we-friendly question received 10:34:19.438173 Wrote request (93 bytes) input to log/7/server.input 10:34:19.438424 Identifying ourselves as friends 10:34:19.439358 Response sent (56 bytes) and written to log/7/server.response 10:34:19.439565 special request received, no persistency 10:34:19.439678 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 60564 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 2029 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind2029 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2030 ./libtest/libtests lib2023 http://127.0.0.1:36933/2030 ntlm digest > log/3/stdout2030 2> log/3/stderr2030 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2031 ./libtest/libtests lib2023 http://127.0.0.1:36007/2031 ntlm ntlm > log/8/stdout2031 2> log/8/stderr2031 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2040 ../src/curl -q --trace-ascii log/4/trace2040 --trace-time -u testuser:testpass http://127.0.0.1:36757/20400100 --next --no-basic http://127.0.0.1:36757/20400200 > log/4/stdout2040 2> log/4/stderr2040 dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2029 test 2030...[HTTP authorization retry (NTLM switching to Digest)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2030 ./libtest/libtests lib2023 http://127.0.0.1:36933/2030 ntlm digest > log/3/stdout2030 2> log/3/stderr2030 2030: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 2030 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2030 ./libtest/libtests lib2023 http://127.0.0.1:36933/2030 ntlm digest > log/3/stdout2030 2> log/3/stderr2030 === End of file commands.log === Start of file http_server.log 10:34:19.464959 ====> Client connect 10:34:19.465299 accept_connection 3 returned 4 10:34:19.465480 accept_connection 3 returned 0 10:34:19.466631 Read 93 bytes 10:34:19.466820 Process 93 bytes request 10:34:19.466911 Got request: GET /verifiedserver HTTP/1.1 10:34:19.466978 Are-we-friendly question received 10:34:19.467236 Wrote request (93 bytes) input to log/3/server.input 10:34:19.467413 Identifying ourselves as friends 10:34:19.468076 Response sent (56 bytes) and written to log/3/server.response 10:34:19.468195 special request received, no persistency 10:34:19.468256 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 52524 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 2030 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind2030 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2030 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2039 ../src/curl -q --output log/2/curl2039.out --include --trace-ascii log/2/trace2039 --trace-time --netrc-optional --netrc-file log/2/netrc2039 ftp://127.0.0.1:35999/ > log/2/stdout2039 2> log/2/stderr2039 test 2040...[HTTP Basic authorization, then without authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2040 ../src/curl -q --trace-ascii log/4/trace2040 --trace-time -u testuser:testpass http://127.0.0.1:36757/20400100 --next --no-basic http://127.0.0.1:36757/20400200 > log/4/stdout2040 2> log/4/stderr2040 2040: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:21.059260517 +0000 +++ log/4/check-generated 2025-09-11 10:34:21.059260517 +0000 @@ -1,2 +0,0 @@ -Finally, this is the real page![LF] -This is a bad password page![LF] == Contents of files in the log/4/ dir after test 2040 === Start of file check-expected Finally, this is the real page![LF] This is a bad password page![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2040 ../src/curl -q --trace-ascii log/4/trace2040 --trace-time -u testuser:testpass http://127.0.0.1:36757/20400100 --next --no-basic http://127.0.0.1:36757/20400200 > log/4/stdout2040 2> log/4/stderr2040 === End of file commands.log === Start of file http_server.log 10:34:20.930796 ====> Client connect 10:34:20.931136 accept_connection 3 returned 4 10:34:20.936801 accept_connection 3 returned 0 10:34:20.937019 Read 93 bytes 10:34:20.937108 Process 93 bytes request 10:34:20.937199 Got request: GET /verifiedserver HTTP/1.1 10:34:20.937272 Are-we-friendly question received 10:34:20.937473 Wrote request (93 bytes) input to log/4/server.input 10:34:20.937653 Identifying ourselves as friends 10:34:20.938348 Response sent (56 bytes) and written to log/4/server.response 10:34:20.938483 special request received, no persistency 10:34:20.938544 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 45740 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 2040 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind2040 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2040 test 2031...[HTTP authorization retry (NTLM)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2031 ./libtest/libtests lib2023 http://127.0.0.1:36007/2031 ntlm ntlm > log/8/stdout2031 2> log/8/stderr2031 2031: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 2031 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2031 ./libtest/libtests lib2023 http://127.0.0.1:36007/2031 ntlm ntlm > log/8/stdout2031 2> log/8/stderr2031 === End of file commands.log === Start of file http_server.log 10:34:19.456296 ====> Client connect 10:34:19.456686 accept_connection 3 returned 4 10:34:19.456917 accept_connection 3 returned 0 10:34:19.457053 Read 93 bytes 10:34:19.457148 Process 93 bytes request 10:34:19.457226 Got request: GET /verifiedserver HTTP/1.1 10:34:19.457289 Are-we-friendly question received 10:34:19.457523 Wrote request (93 bytes) input to log/8/server.input 10:34:19.461011 Identifying ourselves as friends 10:34:19.462237 Response sent (56 bytes) and written to log/8/server.response 10:34:19.462399 special request received, no persistency 10:34:19.462480 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 33012 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 2031 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind2031 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2031 test 2039...[FTP (optional .netrc with 'default' override; no user/pass) dir list PASV] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind203CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2044 ../src/curl -q --output log/6/curl2044.out --include --trace-ascii log/6/trace2044 --trace-time --proto-default DOESNOTEXIST > log/6/stdout2044 2> log/6/stderr2044 9 ../src/curl -q --output log/2/curl2039.out --include --trace-ascii log/2/trace2039 --trace-time --netrc-optional --netrc-file log/2/netrc2039 ftp://127.0.0.1:35999/ > log/2/stdout2039 2> log/2/stderr2039 2039: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 2039 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2039 ../src/curl -q --output log/2/curl2039.out --include --trace-ascii log/2/trace2039 --trace-time --netrc-optional --netrc-file log/2/netrc2039 ftp://127.0.0.1:35999/ > log/2/stdout2039 2> log/2/stderr2039 === End of file commands.log === Start of file ftp_server.log 10:34:20.235771 ====> Client connect 10:34:20.237043 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:20.239766 < "USER anonymous" 10:34:20.240543 > "331 We are happy you popped in![CR][LF]" 10:34:20.243732 < "PASS ftp@example.com" 10:34:20.244309 > "230 Welcome you silly person[CR][LF]" 10:34:20.249310 < "PWD" 10:34:20.251580 > "257 "/" is current directory[CR][LF]" 10:34:20.252629 < "EPSV" 10:34:20.253007 ====> Passive DATA channel requested by client 10:34:20.253190 DATA sockfilt for passive data channel starting... 10:34:20.272059 DATA sockfilt for passive data channel started (pid 163594) 10:34:20.275654 DATA sockfilt for passive data channel listens on port 43639 10:34:20.276353 > "229 Entering Passive Mode (|||43639|)[LF]" 10:34:20.276682 Client has been notified that DATA conn will be accepted on port 43639 10:34:20.281262 Client connects to port 43639 10:34:20.281827 ====> Client established passive DATA connection on port 43639 10:34:20.282676 < "TYPE I" 10:34:20.283020 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:20.286700 < "SIZE verifiedserver" 10:34:20.287258 > "213 18[CR][LF]" 10:34:20.290273 < "RETR verifiedserver" 10:34:20.290910 > "150 Binary junk (18 bytes).[CR][LF]" 10:34:20.291805 =====> Closing passive DATA connection... 10:34:20.292113 Server disconnects passive DATA connection 10:34:20.293987 Server disconnected passive DATA connection 10:34:20.294468 DATA sockfilt for passive data channel quits (pid 163594) 10:34:20.296468 DATA sockfilt for passive data channel quit (pid 163594) 10:34:20.296858 =====> Closed passive DATA connection 10:34:20.297356 > "226 File transfer complete[CR][LF]" 10:34:20.339943 < "QUIT" 10:34:20.340374 > "221 bye bye baby[CR][LF]" 10:34:20.350996 MAIN sockfilt said DISC 10:34:20.352225 ====> Client disconnected 10:34:20.352964 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:19.902234 ====> Client connect 10:34:19.904111 Received DATA (on stdin) 10:34:19.904343 > 160 bytes data, server => client 10:34:19.904464 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:19.904676 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:19.904793 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:19.905588 < 16 bytes data, client => server 10:34:19.905859 'USER anonymous\r\n' 10:34:19.908324 Received DATA (on stdin) 10:34:19.908643 > 33 bytes data, server => client 10:34:19.908788 '331 We are happy you popped in!\r\n' 10:34:19.909605 < 22 bytes data, client => server 10:34:19.909846 'PASS ftp@example.com\r\n' 10:34:19.914012 Received DATA (on stdin) 10:34:19.914364 > 30 bytes data, server => client 10:34:19.914549 '230 Welcome you silly person\r\n' 10:34:19.915391 < 5 bytes data, client => server 10:34:19.915621 'PWD\r\n' 10:34:19.916947 Received DATA (on stdin) 10:34:19.917132 > 30 bytes data, server => client 10:34:19.917310 '257 "/" is current directory\r\n' 10:34:19.918027 < 6 bytes data, client => server 10:34:19.918227 'EPSV\r\n' 10:34:19.944161 Received DATA (on stdin) 10:34:19.944377 > 38 bytes data, server => client 10:34:19.944479 '229 Entering Passive Mode (|||43639|)\n' 10:34:19.946045 < 8 bytes data, client => server 10:34:19.946195 'TYPE I\r\n' 10:34:19.950227 Received DATA (on stdin) 10:34:19.950373 > 33 bytes data, server => client 10:34:19.950472 '200 I modify TYPE as you wanted\r\n' 10:34:19.952017 < 21 bytes data, client => server 10:34:19.952271 'SIZE verifiedserver\r\n' 10:34:19.954920 Received DATA (on stdin) 10:34:19.955210 > 8 bytes data, server => client 10:34:19.955336 '213 18\r\n' 10:34:19.956067 < 21 bytes data, client => server 10:34:19.956278 'RETR verifiedserver\r\n' 10:34:19.959037 Received DATA (on stdin) 10:34:19.959216 > 29 bytes data, server => client 10:34:19.959311 '150 Binary junk (18 bytes).\r\n' 10:34:19.965070 Received DATA (on stdin) 10:34:19.965307 > 28 bytes data, server => client 10:34:19.965483 '226 File transfer complete\r\n' 10:34:20.005774 < 6 bytes data, client => server 10:34:20.006050 'QUIT\r\n' 10:34:20.009181 Received DATA (on stdin) 10:34:20.009422 > 18 bytes data, server => client 10:34:20.009558 '221 bye bye baby\r\n' 10:34:20.016338 ====> Client disconnect 10:34:20.018619 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:20.933887 Running IPv4 version 10:34:20.936997 Listening on port 43639 10:34:20.937360 Wrote pid 163594 to log/2/server/ftp_sockdata.pid 10:34:20.937508 Received PING (on stdin) 10:34:20.941822 Received PORT (on stdin) 10:34:20.945654 ====> Client connect 10:34:20.959703 Received DATA (on stdin) 10:34:20.959903 > 18 bytes data, server => client 10:34:20.960009 'WE ROOLZ: 157322\r\n' 10:34:20.960296 Received DISC (on stdin) 10:34:20.960512 ====> Client forcibly disconnected 10:34:20.961966 Received QUIT (on stdin) 10:34:20.962149 quits 10:34:20.962585 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file netrc2039 # the following two lines were created while testing curl default login userdef password passwddef machine 127.0.0.1 login user1 password passwd1 machine 127.0.0.1 login user2 password passwd2 === End of file netrc2039 === Start of file server.cmd Testnum 2039 === End of file server.cmd === Start of file valgrind2039 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2039 test 2044...[Attempt to set a default protocol that does not exist] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2044 ../src/curl -q --output log/6/curl2044.out --include --trace-ascii log/6/trace2044 --traceCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2046 ../src/curl -q --include --trace-ascii log/7/trace2046 --trace-time http://åäö.se:40129/2046 --resolve xn--4cab6c.se:40129:127.0.0.1 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/7/stdout2046 2> log/7/stderr2046 -time --proto-default DOESNOTEXIST > log/6/stdout2044 2> log/6/stderr2044 valgrind ERROR valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. == Contents of files in the log/6/ dir after test 2044 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2044 ../src/curl -q --output log/6/curl2044.out --include --trace-ascii log/6/trace2044 --trace-time --proto-default DOESNOTEXIST > log/6/stdout2044 2> log/6/stderr2044 === End of file commands.log === Start of file server.cmd Testnum 2044 === End of file server.cmd === Start of file valgrind2044 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2044 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2045 ../src/curl -q --output log/1/curl2045.out --include --trace-ascii log/1/trace2045 --trace-time -H "User-Agent:" -H "Host:" -H "Accept:" --proto-default ftp 127.0.0.1:38733 > log/1/stdout2045 2> log/1/stderr2045 setenv LC_ALL = C.UTF-8 test 2046...[Connection reuse with IDN host name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2046 ../src/curl -q --include --trace-ascii log/7/trace2046 --trace-time http://åäö.se:40129/2046 --resolve xn--4cab6c.se:40129:127.0.0.1 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/7/stdout2046 2> log/7/stderr2046 2046: stdout FAILED: --- log/7/check-expected 2025-09-11 10:34:21.935277955 +0000 +++ log/7/check-generated 2025-09-11 10:34:21.935277955 +0000 @@ -1,18 +0,0 @@ -HTTP/1.1 302 OK swsbounce[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Content-Type: text/plain[LF] -Location: ./20460001[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain; charset=us-ascii[LF] -[LF] -OK[LF] -1[LF] -1[LF] -3[LF] -http://%c3%a5%c3%a4%c3%b6.se:40129/20460001[LF] -text/plain; charset=us-ascii[LF] -200[LF] == Contents of files in the log/7/ dir after test 2046 === Start of file check-expected HTTP/1.1 302 OK swsbounce[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Content-Type: text/plain[LF] Location: ./20460001[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain; charset=us-ascii[LF] [LF] OK[LF] 1[LF] 1[LF] 3[LF] http://%c3%a5%c3%a4%c3%b6.se:40129/20460001[LF] text/plain; charset=us-ascii[LF] 200[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2046 ../src/curl -q --include --trace-ascii log/7/trace2046 --trace-time http://åäö.se:40129/2046 --resolve xn--4cab6c.se:40129:127.0.0.1 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/7/stdout2046 2> log/7/stderr2046 === End of file commands.log === Start of file http_server.log 10:34:20.750108 ====> Client connect 10:34:20.750439 accept_connection 3 returned 4 10:34:20.750624 accept_connection 3 returned 0 10:34:20.750764 Read 93 bytes 10:34:20.750843 Process 93 bytes request 10:34:20.750935 Got request: GET /verifiedserver HTTP/1.1 10:34:20.751004 Are-we-friendly question received 10:34:20.751265 Wrote request (93 bytes) input to log/7/server.input 10:34:20.751468 Identifying ourselves as friends 10:34:20.752218 Response sent (56 bytes) and written to log/7/server.response 10:34:20.752390 special request received, no persistency 10:34:20.752455 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 41854 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 2046 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind2046 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2046 test 2045...[Set the default protocol to ftp for a schemeless URL] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2045 ../src/curl -q --output log/1/curl2045.out --include --trace-ascii log/1/trace2045 --trace-time -H "User-Agent:" -H "Host:" -H "Accept:" --proto-default ftp 127.0.0.1:38733 > log/1/stdout2045 2> log/1/stderr2045 curl returned 1, when expecting 8 2045: exit FAILED == Contents of files in the log/1/ dir after test 2045 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2045 ../src/curl -q --output log/1/curl2045.out --include --trace-ascii log/1/trace2045 --trace-time -H "User-Agent:" -H "Host:" -H "Accept:" --proto-default ftp 127.0.0.1:38733 > log/1/stdout2045 2> log/1/stderr2045 === End of file commands.log === Start of file ftp_server.log 10:34:21.015279 ====> Client connect 10:34:21.016484 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:21.031136 < "USER anonymous" 10:34:21.033207 > "331 We are happy you popped in![CR][LF]" 10:34:21.036838 < "PASS ftp@example.com" 10:34:21.037294 > "230 Welcome you silly person[CR][LF]" 10:34:21.041372 < "PWD" 10:34:21.043740 > "257 "/" is current directory[CR][LF]" 10:34:21.047689 < "EPSV" 10:34:21.048248 ====> Passive DATA channel requested by client 10:34:21.048613 DATA sockfilt for passive data channel starting... 10:34:21.060872 DATA sockfilt for passive data channel started (pid 163995) 10:34:21.062281 DATA sockfilt for passive data channel listens on port 36619 10:34:21.062870 > "229 Entering Passive Mode (|||36619|)[LF]" 10:34:21.063142 Client has been notified that DATA conn will be accepted on port 36619 10:34:21.066042 Client connects to port 36619 10:34:21.066637 ====> Client established passive DATA connection on port 36619 10:34:21.068047 < "TYPE I" 10:34:21.068764 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:21.072315 < "SIZE verifiedserver" 10:34:21.072902 > "213 17[CR][LF]" 10:34:21.075802 < "RETR verifiedserver" 10:34:21.076393 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:21.077267 =====> Closing passive DATA connection... 10:34:21.077633 Server disconnects passive DATA connection 10:34:21.078238 Server disconnected passive DATA connection 10:34:21.078713 DATA sockfilt for passive data channel quits (pid 163995) 10:34:21.080850 DATA sockfilt for passive data channel quit (pid 163995) 10:34:21.081313 =====> Closed passive DATA connection 10:34:21.081874 > "226 File transfer complete[CR][LF]" 10:34:21.130476 < "QUIT" 10:34:21.130930 > "221 bye bye baby[CR][LF]" 10:34:21.132101 MAIN sockfilt said DISC 10:34:21.132538 ====> Client disconnected 10:34:21.133122 Awaiting input === End of file ftp_server.log === Start of CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2047 ../src/curl -q --include --trace-ascii log/3/trace2047 --trace-time http://åäö.se/2047 -x 127.0.0.1:36933 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/3/stdout2047 2> log/3/stderr2047 file ftp_sockctrl.log 10:34:20.680366 ====> Client connect 10:34:20.688836 Received DATA (on stdin) 10:34:20.691076 > 160 bytes data, server => client 10:34:20.691324 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:20.691432 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:20.691519 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:20.695158 < 16 bytes data, client => server 10:34:20.695448 'USER anonymous\r\n' 10:34:20.700373 Received DATA (on stdin) 10:34:20.700644 > 33 bytes data, server => client 10:34:20.700788 '331 We are happy you popped in!\r\n' 10:34:20.701508 < 22 bytes data, client => server 10:34:20.701691 'PASS ftp@example.com\r\n' 10:34:20.704405 Received DATA (on stdin) 10:34:20.704722 > 30 bytes data, server => client 10:34:20.704855 '230 Welcome you silly person\r\n' 10:34:20.707146 < 5 bytes data, client => server 10:34:20.707395 'PWD\r\n' 10:34:20.712600 Received DATA (on stdin) 10:34:20.712858 > 30 bytes data, server => client 10:34:20.712962 '257 "/" is current directory\r\n' 10:34:20.713863 < 6 bytes data, client => server 10:34:20.714129 'EPSV\r\n' 10:34:20.729948 Received DATA (on stdin) 10:34:20.730144 > 38 bytes data, server => client 10:34:20.730265 '229 Entering Passive Mode (|||36619|)\n' 10:34:20.732304 < 8 bytes data, client => server 10:34:20.732663 'TYPE I\r\n' 10:34:20.736332 Received DATA (on stdin) 10:34:20.736922 > 33 bytes data, server => client 10:34:20.737116 '200 I modify TYPE as you wanted\r\n' 10:34:20.737894 < 21 bytes data, client => server 10:34:20.738134 'SIZE verifiedserver\r\n' 10:34:20.740382 Received DATA (on stdin) 10:34:20.740649 > 8 bytes data, server => client 10:34:20.740813 '213 17\r\n' 10:34:20.741690 < 21 bytes data, client => server 10:34:20.741922 'RETR verifiedserver\r\n' 10:34:20.744763 Received DATA (on stdin) 10:34:20.744963 > 29 bytes data, server => client 10:34:20.745077 '150 Binary junk (17 bytes).\r\n' 10:34:20.748914 Received DATA (on stdin) 10:34:20.749145 > 28 bytes data, server => client 10:34:20.749247 '226 File transfer complete\r\n' 10:34:20.796724 < 6 bytes data, client => server 10:34:20.796939 'QUIT\r\n' 10:34:20.798015 Received DATA (on stdin) 10:34:20.798174 > 18 bytes data, server => client 10:34:20.798258 '221 bye bye baby\r\n' 10:34:20.798776 ====> Client disconnect 10:34:20.800669 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:21.726570 Running IPv4 version 10:34:21.727241 Listening on port 36619 10:34:21.727518 Wrote pid 163995 to log/1/server/ftp_sockdata.pid 10:34:21.727654 Received PING (on stdin) 10:34:21.728629 Received PORT (on stdin) 10:34:21.732336 ====> Client connect 10:34:21.744005 Received DATA (on stdin) 10:34:21.744208 > 17 bytes data, server => client 10:34:21.744325 'WE ROOLZ: 79585\r\n' 10:34:21.745068 Received DISC (on stdin) 10:34:21.745197 ====> Client forcibly disconnected 10:34:21.746157 Received QUIT (on stdin) 10:34:21.746348 quits 10:34:21.746887 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY welcome HTTP/1.1 200 OK\r\nContent-Length: 21\r\n\r\n500 Weird FTP Reply Testnum 2045 === End of file server.cmd === Start of file valgrind2045 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2045 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2051 ../src/curl -q --include --trace-ascii log/2/trace2051 --trace-time http://127.0.0.1:43789/2051 -w "%{num_connects}\n" --next --connect-to ::127.0.0.1:43789 http://127.0.0.1:43789/2051 -w "%{num_connects}\n" --next http://127.0.0.1:43789/2051 -w "%{num_connects}\n" > log/2/stdout2051 2> log/2/stderr2051 setenv LC_ALL = C.UTF-8 test 2047...[Connection reuse with IDN host name over HTTP proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2047 ../src/curl -q --include --trace-ascii log/3/trace2047 --trace-time http://åäö.se/2047 -x 127.0.0.1:36933 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/3/stdout2047 2> log/3/stderr2047 2047: stdout FAILED: --- log/3/check-expected 2025-09-11 10:34:22.047280184 +0000 +++ log/3/check-generated 2025-09-11 10:34:22.047280184 +0000 @@ -1,18 +0,0 @@ -HTTP/1.1 302 OK swsbounce[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Content-Type: text/plain[LF] -Location: ./20470001[LF] -[LF] -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain; charset=us-ascii[LF] -[LF] -OK[LF] -1[LF] -1[LF] -3[LF] -http://%c3%a5%c3%a4%c3%b6.se/20470001[LF] -text/plain; charset=us-ascii[LF] -200[LF] == Contents of files in the log/3/ dir after test 2047 === Start of file check-expected HTTP/1.1 302 OK swsbounce[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Content-Type: text/plain[LF] Location: ./20470001[LF] [LF] HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain; charset=us-ascii[LF] [LF] OK[LF] 1[LF] 1[LF] 3[LF] http://%c3%a5%c3%a4%c3%b6.se/20470001[LF] text/plain; charset=us-ascii[LF] 200[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2047 ../src/curl -q --include --trace-ascii log/3/trace2047 --trace-time http://åäö.se/2047 -x 127.0.0.1:36933 -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L > log/3/stdout2047 2> log/3/stderr2047 === End of file commands.log === Start of file http_server.log 10:34:20.826090 ====> Client connect 10:34:20.826415 accept_connection 3 returned 4 10:34:20.826580 accept_connection 3 returned 0 10:34:20.826699 Read 93 bytes 10:34:20.826780 Process 93 bytes request 10:34:20.826853 Got request: GET /verifiedserver HTTP/1.1 10:34:20.826914 Are-we-friendly question received 10:34:20.827149 Wrote request (93 bytes) input to log/3/server.input 10:34:20.827330 Identifying ourselves as friends 10:34:20.828018 Response sent (56 bytes) and written to log/3/server.response 10:34:20.828153 special request received, no persistency 10:34:20.828226 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45526 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 2047 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind2047 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2047 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2049 ../src/curl -q --output log/8/curl2049.out --include --trace-ascii log/8/trace2049 --trace-time http://www1.example.com:8081/2049 --connect-to ::127.0.0.1:36007 --next http://www2.example.com:8082/2049 --connect-to :8082:127.0.0.1:36007 --next http://www3.example.com:8083/2049 --connect-to www3.example.com::127.0.0.1:36007 --next http://www4.example.com:8084/2049 --connect-to www4.example.com:8084:127.0.0.1:36007 > log/8/stdout2049 2> log/8/stderr2049 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2052 ../src/curl -q --include --trace-ascii log/5/trace2052 --trace-time http://www.example.com:41733/2052 --resolve www.example.com:41733:127.0.0.1 -w "%{num_connects}\n" --next --resolve -www.example.com:41733 --connect-to ::127.0.0.1:41733 http://www.example.com:41733/2052 -w "%{num_connects}\n" > log/5/stdout2052 2> log/5/stderr2052 test 2051...[Connect to specific host: Reuse existing connections if possible] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2051 ../src/curl -q --include --trace-ascii log/2/trace2051 --trace-time http://127.0.0.1:43789/2051 -w "%{num_connects}\n" --next --connect-to ::127.0.0.1:43789 http://127.0.0.1:43789/2051 -w "%{num_connects}\n" --next http://127.0.0.1:43789/2051 -w "%{num_connects}\n" > log/2/stdout2051 2> log/2/stderr2051 2051: stdout FAILED: --- log/2/check-expected 2025-09-11 10:34:22.243284086 +0000 +++ log/2/check-generated 2025-09-11 10:34:22.239284006 +0000 @@ -1,11 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain[LF] -[LF] -OK[LF] -1[LF] -OK[LF] -0[LF] -OK[LF] -0[LF] == Contents of files in the log/2/ dir after test 2051 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain[LF] [LF] OK[LF] 1[LF] OK[LF] 0[LF] OK[LF] 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2051 ../src/curl -q --include --trace-ascii log/2/trace2051 --trace-time http://127.0.0.1:43789/2051 -w "%{num_connects}\n" --next --connect-to ::127.0.0.1:43789 http://127.0.0.1:43789/2051 -w "%{num_connects}\n" --next http://127.0.0.1:43789/2051 -w "%{num_connects}\n" > log/2/stdout2051 2> log/2/stderr2051 === End of file commands.log === Start of file http_server.log 10:34:21.028315 ====> Client connect 10:34:21.028723 accept_connection 3 returned 4 10:34:21.028946 accept_connection 3 returned 0 10:34:21.029793 Read 93 bytes 10:34:21.029993 Process 93 bytes request 10:34:21.030101 Got request: GET /verifiedserver HTTP/1.1 10:34:21.030180 Are-we-friendly question received 10:34:21.030432 Wrote request (93 bytes) input to log/2/server.input 10:34:21.030625 Identifying ourselves as friends 10:34:21.031204 Response sent (56 bytes) and written to log/2/server.response 10:34:21.031351 special request received, no persistency 10:34:21.031432 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60398 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 2051 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind2051 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2051 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2050 ../src/curl -q --output log/4/curl2050.out --include --trace-ascii log/4/trace2050 --trace-time http://www.example.com.2050/2050 --connect-to ::connect.example.com.2050:36757 -x 127.0.0.1:38083 > log/4/stdout2050 2> log/4/stderr2050 test 2052...[--connect-to: do not mix connections with and without a "connect to host"] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2052 ../src/curl -q --include --trace-ascii log/5/trace2052 --trace-time http://www.example.com:41733/2052 --resolve www.example.com:41733:127.0.0.1 -w "%{num_connects}\n" --next --resolve -www.example.com:41733 --connect-to ::127.0.0.1:41733 http://www.example.com:41733/2052 -w "%{num_connects}\n" > log/5/stdout2052 2> log/5/stderr2052 2052: stdout FAILED: --- log/5/check-expected 2025-09-11 10:34:22.299285201 +0000 +++ log/5/check-generated 2025-09-11 10:34:22.299285201 +0000 @@ -1,9 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 3[LF] -Content-Type: text/plain[LF] -[LF] -OK[LF] -1[LF] -OK[LF] -1[LF] == Contents of files in the log/5/ dir after test 2052 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 3[LF] Content-Type: text/plain[LF] [LF] OK[LF] 1[LF] OK[LF] 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2052 ../src/curl -q --include --trace-ascii log/5/trace2052 --trace-time http://www.example.com:41733/2052 --resolve www.example.com:41733:127.0.0.1 -w "%{num_connects}\n" --next --resolve -www.example.com:41733 --connect-to ::127.0.0.1:41733 http://www.example.com:41733/2052 -w "%{num_connects}\n" > log/5/stdout2052 2> log/5/stderr2052 === End of file commands.log === Start of file http_server.log 10:34:22.066045 ====> Client connect 10:34:22.066376 accept_connection 3 returned 4 10:34:22.066569 accept_connection 3 returned 0 10:34:22.066699 Read 93 bytes 10:34:22.066793 Process 93 bytes request 10:34:22.066873 Got request: GET /verifiedserver HTTP/1.1 10:34:22.066948 Are-we-friendly question received 10:34:22.067178 Wrote request (93 bytes) input to log/5/server.input 10:34:22.067383 Identifying ourselves as friends 10:34:22.068093 Response sent (56 bytes) and written to log/5/server.response 10:34:22.068232 special request received, no persistency 10:34:22.068300 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 33094 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 2052 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind2052 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2052 test 2049...[Connect to specific host] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2049 ../src/curl -q --output log/8/curl2049.out --include --trace-ascii log/8/trace2049 --trace-time http://www1.example.com:8081/2049 --connect-to ::127.0.0.1:36007 --next http://www2.example.com:8082/2049 --connect-to :8082:127.0.0.1:36007 --next http://www3.example.com:8083/2049 --connect-to www3.example.com::127.0.0.1:36007 --next http://www4.example.com:8084/2049 --connect-to www4.example.com:8084:127.0.0.1:36007 > log/8/stdout2049 2> log/8/stderr2049 2049: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 2049 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2049 ../src/curl -q --output log/8/curl2049.out --include --trace-ascii log/8/trace2049 --trace-time http://www1.example.com:8081/2049 --connect-to ::127.0.0.1:36007 --next http://www2.example.com:8082/2049 --connect-to :8082:127.0.0.1:36007 --next http://www3.example.com:8083/2049 --connect-to www3.example.com::127.0.0.1:36007 --next http://www4.example.com:8084/2049 --connect-to www4.example.com:8084:127.0.0.1:36007 > log/8/stdout2049 2> log/8/stderr2049 === End of file commands.log === Start of file http_server.log 10:34:20.945867 ====> Client connect 10:34:20.946220 accept_connection 3 returned 4 10:34:20.946427 accept_connection 3 returned 0 10:34:20.946560 Read 93 bytes 10:34:20.946646 Process 93 bytes request 10:34:20.946729 Got request: GET /verifiedserver HTTP/1.1 10:34:20.946795 Are-we-friendly question received 10:34:20.947017 Wrote request (93 bytes) input to log/8/server.input 10:34:20.947216 Identifying ourselves as friends 10:34:20.948011 Response sent (56 bytes) and written to log/8/server.response 10:34:20.948174 special request received, no persistency 10:34:20.948243 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 43010 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 2049 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind2049 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2053 ../src/curl -q --output log/6/curl2053.out --include --trace-ascii log/6/trace2053 --trace-time http://10.0.0.1:8081/2053 --connect-to 10.0.0.1:8081:127.0.0.1:39357 --next http://[fc00::1]:8082/2053 --connect-to [fc00::1]:8082:127.0.0.1:39357 > log/6/stdout2053 2> log/6/stderr2053 1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2049 test 2050...[--connect-to via HTTP proxy (tunnel mode automatically)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2050 ../src/curl -q --output log/4/curl2050.out --include --trace-ascii log/4/trace2050 --trace-time http://www.example.com.2050/2050 --connect-to ::connect.example.com.2050:36757 -x 127.0.0.1:38083 > log/4/stdout2050 2> log/4/stderr2050 2050: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 2050 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2050 ../src/curl -q --output log/4/curl2050.out --include --trace-ascii log/4/trace2050 --trace-time http://www.example.com.2050/2050 --connect-to ::connect.example.com.2050:36757 -x 127.0.0.1:38083 > log/4/stdout2050 2> log/4/stderr2050 === End of file commands.log === Start of file http2_server.log 10:34:21.102409 ====> Client connect 10:34:21.102788 accept_connection 3 returned 4 10:34:21.103028 accept_connection 3 returned 0 10:34:21.103181 Read 93 bytes 10:34:21.103295 Process 93 bytes request 10:34:21.103396 Got request: GET /verifiedserver HTTP/1.1 10:34:21.103481 Are-we-friendly question received 10:34:21.103786 Wrote request (93 bytes) input to log/4/proxy.input 10:34:21.104061 Identifying ourselves as friends 10:34:21.105174 Response sent (57 bytes) and written to log/4/proxy.response 10:34:21.105361 special request received, no persistency 10:34:21.105441 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:38083... * Established connection to 127.0.0.1 (127.0.0.1 port 38083) from 127.0.0.1 port 55562 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:38083 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:38083 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 143578 === End of file http2_verify.out === Start of file http_server.log 10:34:21.935860 ====> Client connect 10:34:21.936286 accept_connection 3 returned 4 10:34:21.936592 accept_connection 3 returned 0 10:34:21.936790 Read 93 bytes 10:34:21.936901 Process 93 bytes request 10:34:21.936993 Got request: GET /verifiedserver HTTP/1.1 10:34:21.937092 Are-we-friendly question received 10:34:21.937389 Wrote request (93 bytes) input to log/4/server.input 10:34:21.937617 Identifying ourselves as friends 10:34:21.938423 Response sent (56 bytes) and written to log/4/server.response 10:34:21.938600 special request received, no persistency 10:34:21.938672 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 45756 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 143578 === End of file proxy.response === Start of file server.cmd Testnum 2050 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind2050 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2050 test 2053...[Connect to specific host with IP addresses] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2053 ../src/curl -q --output log/6/curl2053.out --include --trace-ascii log/6/trace2053 --trace-time http://10.0.0.1:8081/2053 --connect-to 10.0.0.1:8081:127.0.0.1:39357 --next http://[fc00::1]:8082/2053 --connect-to [fc00::1]:8082:127.0.0.1:39357 > log/6/stdout2053 2> log/6/stderr2053 2053: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 2053 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2053 ../src/curl -q --output log/6/curl2053.out --include --trace-ascii log/6/trace2053 --trace-time http://10.0.0.1:8081/2053 --connect-to 10.0.0.1:8081:127.0.0.1:39357 --next http://[fc00::1]:8082/2053 --connect-to [fc00::1]:8082:127.0.0.1:39357 > log/6/stdout2053 2> log/6/stderr2053 === End of file commands.log === Start of file http_server.log 10:34:21.202388 ====> Client connect 10:34:21.203128 accept_connection 3 returned 4 10:34:21.203409 accept_connection 3 returned 0 10:34:21.203534 Read 93 bytes 10:34:21.203608 Process 93 bytes request 10:34:21.203682 Got request: GET /verifiedserver HTTP/1.1 10:34:21.203747 Are-we-friendly question received 10:34:21.203965 Wrote request (93 bytes) input to log/6/server.input 10:34:21.204112 Identifying ourselves as friends 10:34:21.204939 Response sent (57 bytes) and written to log/6/server.response 10:34:21.205112 special request received, no persistency 10:34:21.205187 ====> Client disconnect 0 === End of file http_server.log === Start of file htCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2054 ../src/curl -q --output log/7/curl2054.out --include --trace-ascii log/7/trace2054 --trace-time http://127.0.0.1:40129/2054 --connect-to foo::bar: --connect-to :123::456 --next http://www.example.com:40129/2054 --connect-to www.example.com::127.0.0.1: --connect-to www.example.com::foo: --next http://127.0.0.1:8083/2054 --connect-to :8083::40129 --connect-to :8083::123 --next http://www.example.com:8084/2054 --connect-to www.example.com:8084:127.0.0.1:40129 --connect-to www.example.com:8084:foo:123 > log/7/stdout2054 2> log/7/stderr2054 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2055 ../src/curl -q --output log/1/curl2055.out --include --trace-ascii log/1/trace2055 --trace-time http://www.example.com.2055/2055 --connect-to ::connect.example.com.2055:42781 -x 127.0.0.1:41917 --preproxy socks5://127.0.0.1:46193 > log/1/stdout2055 2> log/1/stderr2055 tp_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 54356 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 2053 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind2053 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2053 test 2054...[Connect to specific host: use the first "connect-to" string that matches] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2054 ../src/curl -q --output log/7/curl2054.out --include --trace-ascii log/7/trace2054 --trace-time http://127.0.0.1:40129/2054 --connect-to foo::bar: --connect-to :123::456 --next http://www.example.com:40129/2054 --connect-to www.example.com::127.0.0.1: --connect-to www.example.com::foo: --next http://127.0.0.1:8083/2054 --connect-to :8083::40129 --connect-to :8083::123 --next http://www.example.com:8084/2054 --connect-to www.example.com:8084:127.0.0.1:40129 --connect-to www.example.com:8084:foo:123 > log/7/stdout2054 2> log/7/stderr2054 2054: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 2054 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2054 ../src/curl -q --output log/7/curl2054.out --include --trace-ascii log/7/trace2054 --trace-time http://127.0.0.1:40129/2054 --connect-to foo::bar: --connect-to :123::456 --next http://www.example.com:40129/2054 --connect-to www.example.com::127.0.0.1: --connect-to www.example.com::foo: --next http://127.0.0.1:8083/2054 --connect-to :8083::40129 --connect-to :8083::123 --next http://www.example.com:8084/2054 --connect-to www.example.com:8084:127.0.0.1:40129 --connect-to www.example.com:8084:foo:123 > log/7/stdout2054 2> log/7/stderr2054 === End of file commands.log === Start of file http_server.log 10:34:21.831118 ====> Client connect 10:34:21.831592 accept_connection 3 returned 4 10:34:21.831876 accept_connection 3 returned 0 10:34:21.832079 Read 93 bytes 10:34:21.832233 Process 93 bytes request 10:34:21.832385 Got request: GET /verifiedserver HTTP/1.1 10:34:21.832576 Are-we-friendly question received 10:34:21.832914 Wrote request (93 bytes) input to log/7/server.input 10:34:21.833166 Identifying ourselves as friends 10:34:21.834272 Response sent (56 bytes) and written to log/7/server.response 10:34:21.834456 special request received, no persistency 10:34:21.834547 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 41856 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 2054 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind2054 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2054 test 2055...[--connect-to via SOCKS proxy and HTTP proxy (tunnel mode automatically)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2055 ../src/curl -q --output log/1/curl2055.out --include --trace-ascii log/1/trace2055 --trace-time http://www.example.com.2055/2055 --connect-to ::connect.example.com.2055:42781 -x 127.0.0.1:41917 --preproxy socks5://127.0.0.1:46193 > log/1/stdout2055 2> log/1/stderr2055 2055: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 2055 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2055 ../src/curl -q --output log/1/curl2055.out --include --trace-ascii log/1/trace2055 --trace-time http://www.example.com.2055/2055 --connect-to ::connect.example.com.2055:42781 -x 127.0.0.1:41917 --preproxy socks5://127.0.0.1:46193 > log/1/stdout2055 2> log/1/stderr2055 === End of file commands.log === Start of file http2_server.log 10:34:23.033378 ====> Client connect 10:34:23.033690 accept_connection 3 returned 4 10:34:23CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2058 ../src/curl -q --output log/3/curl2058.out --include --trace-ascii log/3/trace2058 --trace-time http://127.0.0.1:36933/2058 -u auser:apasswd --digest -T log/3/2058 -x http://127.0.0.1:36933 -C 2 -X GET > log/3/stdout2058 2> log/3/stderr2058 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2061 ../src/curl -q --output log/4/curl2061.out --include --trace-ascii log/4/trace2061 --trace-time http://127.0.0.1:36757/2061 -u testuser:testpass --digest > log/4/stdout2061 2> log/4/stderr2061 .033860 accept_connection 3 returned 0 10:34:23.034011 Read 93 bytes 10:34:23.034101 Process 93 bytes request 10:34:23.034194 Got request: GET /verifiedserver HTTP/1.1 10:34:23.034260 Are-we-friendly question received 10:34:23.034478 Wrote request (93 bytes) input to log/1/proxy.input 10:34:23.034639 Identifying ourselves as friends 10:34:23.035246 Response sent (56 bytes) and written to log/1/proxy.response 10:34:23.035384 special request received, no persistency 10:34:23.035449 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:41917... * Established connection to 127.0.0.1 (127.0.0.1 port 41917) from 127.0.0.1 port 53646 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41917 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41917 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 78259 === End of file http2_verify.out === Start of file http_server.log 10:34:21.888856 ====> Client connect 10:34:21.889220 accept_connection 3 returned 4 10:34:21.889416 accept_connection 3 returned 0 10:34:21.889593 Read 93 bytes 10:34:21.889691 Process 93 bytes request 10:34:21.889774 Got request: GET /verifiedserver HTTP/1.1 10:34:21.889845 Are-we-friendly question received 10:34:21.890120 Wrote request (93 bytes) input to log/1/server.input 10:34:21.890361 Identifying ourselves as friends 10:34:21.891116 Response sent (57 bytes) and written to log/1/server.response 10:34:21.891264 special request received, no persistency 10:34:21.891335 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 58156 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 78259 === End of file proxy.response === Start of file server.cmd Testnum 2055 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind2055 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2055 test 2058...[HTTP Digest with PUT, resumed upload, modified method and SHA-256] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2058 ../src/curl -q --output log/3/curl2058.out --include --trace-ascii log/3/trace2058 --trace-time http://127.0.0.1:36933/2058 -u auser:apasswd --digest -T log/3/2058 -x http://127.0.0.1:36933 -C 2 -X GET > log/3/stdout2058 2> log/3/stderr2058 2058: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 2058 === Start of file 2058 test === End of file 2058 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2058 ../src/curl -q --output log/3/curl2058.out --include --trace-ascii log/3/trace2058 --trace-time http://127.0.0.1:36933/2058 -u auser:apasswd --digest -T log/3/2058 -x http://127.0.0.1:36933 -C 2 -X GET > log/3/stdout2058 2> log/3/stderr2058 === End of file commands.log === Start of file http_server.log 10:34:21.954800 ====> Client connect 10:34:21.955263 accept_connection 3 returned 4 10:34:21.955521 accept_connection 3 returned 0 10:34:21.955751 Read 93 bytes 10:34:21.955920 Process 93 bytes request 10:34:21.956083 Got request: GET /verifiedserver HTTP/1.1 10:34:21.956246 Are-we-friendly question received 10:34:21.956884 Wrote request (93 bytes) input to log/3/server.input 10:34:21.957225 Identifying ourselves as friends 10:34:21.958212 Response sent (56 bytes) and written to log/3/server.response 10:34:21.958370 special request received, no persistency 10:34:21.958460 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45534 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 2058 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind2058 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2058 test 2061...[HTTP with RCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2059 ../src/curl -q --output log/2/curl2059.out --include --trace-ascii log/2/trace2059 --trace-time http://127.0.0.1:43789/2059 -u auser:apasswd --digest -T log/2/2059 -x http://127.0.0.1:43789 -C 2 -X GET > log/2/stdout2059 2> log/2/stderr2059 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2062 ../src/curl -q --output log/6/curl2062.out --include --trace-ascii log/6/trace2062 --trace-time http://127.0.0.1:39357/2062 -u testuser:testpass --digest > log/6/stdout2062 2> log/6/stderr2062 FC7616 SHA256 Digest authorization] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2061 ../src/curl -q --output log/4/curl2061.out --include --trace-ascii log/4/trace2061 --trace-time http://127.0.0.1:36757/2061 -u testuser:testpass --digest > log/4/stdout2061 2> log/4/stderr2061 2061: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 2061 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2061 ../src/curl -q --output log/4/curl2061.out --include --trace-ascii log/4/trace2061 --trace-time http://127.0.0.1:36757/2061 -u testuser:testpass --digest > log/4/stdout2061 2> log/4/stderr2061 === End of file commands.log === Start of file http_server.log 10:34:23.183782 ====> Client connect 10:34:23.184092 accept_connection 3 returned 4 10:34:23.184264 accept_connection 3 returned 0 10:34:23.184399 Read 93 bytes 10:34:23.184479 Process 93 bytes request 10:34:23.184672 Got request: GET /verifiedserver HTTP/1.1 10:34:23.184755 Are-we-friendly question received 10:34:23.185054 Wrote request (93 bytes) input to log/4/server.input 10:34:23.185251 Identifying ourselves as friends 10:34:23.185881 Response sent (56 bytes) and written to log/4/server.response 10:34:23.185991 special request received, no persistency 10:34:23.186055 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 45760 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 2061 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind2061 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2061 test 2059...[HTTP Digest with PUT, resumed upload, modified method, SHA-256 and userhash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2059 ../src/curl -q --output log/2/curl2059.out --include --trace-ascii log/2/trace2059 --trace-time http://127.0.0.1:43789/2059 -u auser:apasswd --digest -T log/2/2059 -x http://127.0.0.1:43789 -C 2 -X GET > log/2/stdout2059 2> log/2/stderr2059 2059: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 2059 === Start of file 2059 test === End of file 2059 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2059 ../src/curl -q --output log/2/curl2059.out --include --trace-ascii log/2/trace2059 --trace-time http://127.0.0.1:43789/2059 -u auser:apasswd --digest -T log/2/2059 -x http://127.0.0.1:43789 -C 2 -X GET > log/2/stdout2059 2> log/2/stderr2059 === End of file commands.log === Start of file http_server.log 10:34:22.084980 ====> Client connect 10:34:22.085357 accept_connection 3 returned 4 10:34:22.085563 accept_connection 3 returned 0 10:34:22.085745 Read 93 bytes 10:34:22.085840 Process 93 bytes request 10:34:22.085929 Got request: GET /verifiedserver HTTP/1.1 10:34:22.086000 Are-we-friendly question received 10:34:22.086234 Wrote request (93 bytes) input to log/2/server.input 10:34:22.086401 Identifying ourselves as friends 10:34:22.087007 Response sent (56 bytes) and written to log/2/server.response 10:34:22.087126 special request received, no persistency 10:34:22.087193 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60410 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 2059 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind2059 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2059 test 2062...[HTTP with RFC7616 SHA-512-256 Digest authorization and userhash=false] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2060 ../src/curl -q --output log/8/curl2060.out --include --trace-ascii log/8/trace2060 --trace-time http://127.0.0.1:36007/2060 -u auser:apasswd --digest -T log/8/2060 -x http://127.0.0.1:36007 -C 2 -X GET > log/8/stdout2060 2> log/8/stderr2060 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2063 ../src/curl -q --output log/5/curl2063.out --include --trace-ascii log/5/trace2063 --trace-time http://127.0.0.1:41733/2063 -u testuser:testpass --digest > log/5/stdout2063 2> log/5/stderr2063 ions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2062 ../src/curl -q --output log/6/curl2062.out --include --trace-ascii log/6/trace2062 --trace-time http://127.0.0.1:39357/2062 -u testuser:testpass --digest > log/6/stdout2062 2> log/6/stderr2062 2062: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 2062 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2062 ../src/curl -q --output log/6/curl2062.out --include --trace-ascii log/6/trace2062 --trace-time http://127.0.0.1:39357/2062 -u testuser:testpass --digest > log/6/stdout2062 2> log/6/stderr2062 === End of file commands.log === Start of file http_server.log 10:34:22.221765 ====> Client connect 10:34:22.222069 accept_connection 3 returned 4 10:34:22.222244 accept_connection 3 returned 0 10:34:22.222373 Read 93 bytes 10:34:22.222462 Process 93 bytes request 10:34:22.222557 Got request: GET /verifiedserver HTTP/1.1 10:34:22.222641 Are-we-friendly question received 10:34:22.222875 Wrote request (93 bytes) input to log/6/server.input 10:34:22.223063 Identifying ourselves as friends 10:34:22.223748 Response sent (57 bytes) and written to log/6/server.response 10:34:22.223877 special request received, no persistency 10:34:22.223942 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 54364 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 2062 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind2062 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2062 test 2060...[HTTP Digest with PUT, resumed upload, SHA-512-256, userhash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2060 ../src/curl -q --output log/8/curl2060.out --include --trace-ascii log/8/trace2060 --trace-time http://127.0.0.1:36007/2060 -u auser:apasswd --digest -T log/8/2060 -x http://127.0.0.1:36007 -C 2 -X GET > log/8/stdout2060 2> log/8/stderr2060 2060: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 2060 === Start of file 2060 test === End of file 2060 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2060 ../src/curl -q --output log/8/curl2060.out --include --trace-ascii log/8/trace2060 --trace-time http://127.0.0.1:36007/2060 -u auser:apasswd --digest -T log/8/2060 -x http://127.0.0.1:36007 -C 2 -X GET > log/8/stdout2060 2> log/8/stderr2060 === End of file commands.log === Start of file http_server.log 10:34:22.156138 ====> Client connect 10:34:22.156455 accept_connection 3 returned 4 10:34:22.156863 accept_connection 3 returned 0 10:34:22.157018 Read 93 bytes 10:34:22.157100 Process 93 bytes request 10:34:22.157178 Got request: GET /verifiedserver HTTP/1.1 10:34:22.157251 Are-we-friendly question received 10:34:22.157480 Wrote request (93 bytes) input to log/8/server.input 10:34:22.157673 Identifying ourselves as friends 10:34:22.158429 Response sent (56 bytes) and written to log/8/server.response 10:34:22.158549 special request received, no persistency 10:34:22.158612 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 43018 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 2060 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind2060 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2060 test 2063...[HTTP with RFC7616 SHA-256 Digest authorization and userhash=true] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2063 ../src/curl -q --output log/5/curl2063.out --include --CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2064 ../src/curl -q --output log/7/curl2064.out --include --trace-ascii log/7/trace2064 --trace-time http://127.0.0.1:40129/2064 -u testuser:test2pass --digest > log/7/stdout2064 2> log/7/stderr2064 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2071 ../src/curl -q --output log/5/curl2071.out --trace-ascii log/5/trace2071 --trace-time file://127.0.0.1/build/curl/src/build-curl/tests/log/5/test2070.txt > log/5/stdout2071 2> log/5/stderr2071 trace-ascii log/5/trace2063 --trace-time http://127.0.0.1:41733/2063 -u testuser:testpass --digest > log/5/stdout2063 2> log/5/stderr2063 2063: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 2063 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2063 ../src/curl -q --output log/5/curl2063.out --include --trace-ascii log/5/trace2063 --trace-time http://127.0.0.1:41733/2063 -u testuser:testpass --digest > log/5/stdout2063 2> log/5/stderr2063 === End of file commands.log === Start of file http_server.log 10:34:23.316116 ====> Client connect 10:34:23.316430 accept_connection 3 returned 4 10:34:23.316768 accept_connection 3 returned 0 10:34:23.316944 Read 93 bytes 10:34:23.317033 Process 93 bytes request 10:34:23.317129 Got request: GET /verifiedserver HTTP/1.1 10:34:23.317215 Are-we-friendly question received 10:34:23.319901 Wrote request (93 bytes) input to log/5/server.input 10:34:23.321552 Identifying ourselves as friends 10:34:23.322528 Response sent (56 bytes) and written to log/5/server.response 10:34:23.322706 special request received, no persistency 10:34:23.322785 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 33102 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 2063 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind2063 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2063 test 2064...[HTTP with RFC7616 Digest authorization with bad password and SHA256] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2064 ../src/curl -q --output log/7/curl2064.out --include --trace-ascii log/7/trace2064 --trace-time http://127.0.0.1:40129/2064 -u testuser:test2pass --digest > log/7/stdout2064 2> log/7/stderr2064 2064: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 2064 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2064 ../src/curl -q --output log/7/curl2064.out --include --trace-ascii log/7/trace2064 --trace-time http://127.0.0.1:40129/2064 -u testuser:test2pass --digest > log/7/stdout2064 2> log/7/stderr2064 === End of file commands.log === Start of file http_server.log 10:34:23.025356 ====> Client connect 10:34:23.025805 accept_connection 3 returned 4 10:34:23.026093 accept_connection 3 returned 0 10:34:23.026287 Read 93 bytes 10:34:23.026400 Process 93 bytes request 10:34:23.026492 Got request: GET /verifiedserver HTTP/1.1 10:34:23.026568 Are-we-friendly question received 10:34:23.026862 Wrote request (93 bytes) input to log/7/server.input 10:34:23.027088 Identifying ourselves as friends 10:34:23.028366 Response sent (56 bytes) and written to log/7/server.response 10:34:23.032817 special request received, no persistency 10:34:23.033089 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 41858 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 2064 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind2064 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2064 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2072 ../src/curl -q --output log/2/curl2072.out --trace-ascii log/2/trace2072 --trace-time file://///build/curl/src/build-curl/tests/log/2/test2072.txt > log/2/stdout2072 2> log/2/stderr2072 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2065 ../src/curl -q --output log/1/curl2065.out --include --trace-ascii log/1/trace2065 --trace-time http://127.0.0.1:42781/2065 -u testuser:test2pass --digest > log/1/stdout2065 2> log/1/stderr2065 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2066 ../src/curl -q --output log/3/curl2066.out --include --trace-ascii log/3/trace2066 --trace-time http://127.0.0.1:36933/2066 -u testuser:test2pass --digest > log/3/stdout2066 2> log/3/stderr2066 test 2071...[basic file:// file with "127.0.0.1" hostname] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2071 ../src/curl -q --output log/5/curl2071.out --trace-ascii log/5/trace2071 --trace-time file://127.0.0.1/build/curl/src/build-curl/tests/log/5/test2070.txt > log/5/stdout2071 2> log/5/stderr2071 2071: data FAILED: --- log/5/check-expected 2025-09-11 10:34:24.275324536 +0000 +++ log/5/check-generated 2025-09-11 10:34:24.275324536 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/5/ dir after test 2071 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2071 ../src/curl -q --output log/5/curl2071.out --trace-ascii log/5/trace2071 --trace-time file://127.0.0.1/build/curl/src/build-curl/tests/log/5/test2070.txt > log/5/stdout2071 2> log/5/stderr2071 === End of file commands.log === Start of file server.cmd Testnum 2071 === End of file server.cmd === Start of file valgrind2071 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2071 test 2065...[HTTP with RFC7616 Digest, bad password, SHA-512-256 and userhash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2065 ../src/curl -q --output log/1/curl2065.out --include --trace-ascii log/1/trace2065 --trace-time http://127.0.0.1:42781/2065 -u testuser:test2pass --digest > log/1/stdout2065 2> log/1/stderr2065 2065: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 2065 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2065 ../src/curl -q --output log/1/curl2065.out --include --trace-ascii log/1/trace2065 --trace-time http://127.0.0.1:42781/2065 -u testuser:test2pass --digest > log/1/stdout2065 2> log/1/stderr2065 === End of file commands.log === Start of file http_server.log 10:34:23.144887 ====> Client connect 10:34:23.145260 accept_connection 3 returned 4 10:34:23.145464 accept_connection 3 returned 0 10:34:23.145639 Read 93 bytes 10:34:23.145767 Process 93 bytes request 10:34:23.145905 Got request: GET /verifiedserver HTTP/1.1 10:34:23.146002 Are-we-friendly question received 10:34:23.146277 Wrote request (93 bytes) input to log/1/server.input 10:34:23.146514 Identifying ourselves as friends 10:34:23.147391 Response sent (57 bytes) and written to log/1/server.response 10:34:23.147572 special request received, no persistency 10:34:23.147685 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 58158 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 2065 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind2065 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2065 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2068 ../src/curl -q --output log/6/curl2068.out --include --trace-ascii log/6/trace2068 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:39357/2068 > log/6/stdout2068 2> log/6/stderr2068 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2067 ../src/curl -q --output log/4/curl2067.out --include --trace-ascii log/4/trace2067 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:36757/2067 > log/4/stdout2067 2> log/4/stderr2067 prechecked /usr/bin/perl -e "print 'Test requires a Unix system' if($^O eq 'MSWin32' || $^O eq 'cygwin' || $^O eq 'dos' || $^O eq 'msys');" test 2072...[file:// with Unix path resolution behavior for the case of extra slashes] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2072 ../src/curl -q --output log/2/curl2072.out --trace-ascii log/2/trace2072 --trace-time file://///build/curl/src/build-curl/tests/log/2/test2072.txt > log/2/stdout2072 2> log/2/stderr2072 2072: data FAILED: --- log/2/check-expected 2025-09-11 10:34:24.351326049 +0000 +++ log/2/check-generated 2025-09-11 10:34:24.351326049 +0000 @@ -1,5 +0,0 @@ -foo[LF] - bar[LF] -bar[LF] - foo[LF] -moo[LF] == Contents of files in the log/2/ dir after test 2072 === Start of file check-expected foo[LF] bar[LF] bar[LF] foo[LF] moo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2072 ../src/curl -q --output log/2/curl2072.out --trace-ascii log/2/trace2072 --trace-time file://///build/curl/src/build-curl/tests/log/2/test2072.txt > log/2/stdout2072 2> log/2/stderr2072 === End of file commands.log === Start of file server.cmd Testnum 2072 === End of file server.cmd === Start of file test2072.txt foo bar bar foo moo === End of file test2072.txt === Start of file valgrind2072 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2072 test 2066...[HTTP with RFC7616 Digest, bad password, SHA-256 and userhash] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2066 ../src/curl -q --output log/3/curl2066.out --include --trace-ascii log/3/trace2066 --trace-time http://127.0.0.1:36933/2066 -u testuser:test2pass --digest > log/3/stdout2066 2> log/3/stderr2066 2066: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 2066 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2066 ../src/curl -q --output log/3/curl2066.out --include --trace-ascii log/3/trace2066 --trace-time http://127.0.0.1:36933/2066 -u testuser:test2pass --digest > log/3/stdout2066 2> log/3/stderr2066 === End of file commands.log === Start of file http_server.log 10:34:23.187924 ====> Client connect 10:34:23.188251 accept_connection 3 returned 4 10:34:23.188444 accept_connection 3 returned 0 10:34:23.188699 Read 93 bytes 10:34:23.188798 Process 93 bytes request 10:34:23.188892 Got request: GET /verifiedserver HTTP/1.1 10:34:23.188975 Are-we-friendly question received 10:34:23.189232 Wrote request (93 bytes) input to log/3/server.input 10:34:23.189429 Identifying ourselves as friends 10:34:23.190149 Response sent (56 bytes) and written to log/3/server.response 10:34:23.190274 special request received, no persistency 10:34:23.190340 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45540 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 2066 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind2066 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2066 test 2068...[HTTP POST Digest with SHA-512-256, userhash and set Content-Length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2068 ../src/curl -q --output log/6/curl2068.out --include --trace-ascii log/6/trace2068 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:39357/2068 > log/6/stdout2068 2> log/6/stderr2068 2068: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 2068 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2068 ../src/curl -q --output log/6/curl2068.out --include --trace-ascii log/6/trace2068 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:39357/2068 > log/6/stdout2068 2> log/6/stderr2068 === End of file commands.log === Start of file http_server.log 10:34:23.226148 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2069 ../src/curl -q --output log/8/curl2069.out --include --trace-ascii log/8/trace2069 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:36007/2069 > log/8/stdout2069 2> log/8/stderr2069 ====> Client connect 10:34:23.226481 accept_connection 3 returned 4 10:34:23.226659 accept_connection 3 returned 0 10:34:23.227414 Read 93 bytes 10:34:23.227613 Process 93 bytes request 10:34:23.227712 Got request: GET /verifiedserver HTTP/1.1 10:34:23.227788 Are-we-friendly question received 10:34:23.228030 Wrote request (93 bytes) input to log/6/server.input 10:34:23.228241 Identifying ourselves as friends 10:34:23.228933 Response sent (57 bytes) and written to log/6/server.response 10:34:23.229099 special request received, no persistency 10:34:23.229182 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 54374 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 2068 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind2068 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2068 test 2067...[HTTP POST --digest with SHA256 and user-specified Content-Length header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2067 ../src/curl -q --output log/4/curl2067.out --include --trace-ascii log/4/trace2067 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:36757/2067 > log/4/stdout2067 2> log/4/stderr2067 2067: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 2067 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2067 ../src/curl -q --output log/4/curl2067.out --include --trace-ascii log/4/trace2067 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:36757/2067 > log/4/stdout2067 2> log/4/stderr2067 === End of file commands.log === Start of file http_server.log 10:34:24.212775 ====> Client connect 10:34:24.213141 accept_connection 3 returned 4 10:34:24.213332 accept_connection 3 returned 0 10:34:24.213451 Read 93 bytes 10:34:24.213523 Process 93 bytes request 10:34:24.213603 Got request: GET /verifiedserver HTTP/1.1 10:34:24.213665 Are-we-friendly question received 10:34:24.213876 Wrote request (93 bytes) input to log/4/server.input 10:34:24.214036 Identifying ourselves as friends 10:34:24.214676 Response sent (56 bytes) and written to log/4/server.response 10:34:24.214805 special request received, no persistency 10:34:24.214870 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 45776 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 2067 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind2067 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2067 test 2069...[HTTP POST Digest with SHA-256, userhash and set Content-Length header] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2069 ../src/curl -q --output log/8/curl2069.out --include --trace-ascii log/8/trace2069 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:36007/2069 > log/8/stdout2069 2> log/8/stderr2069 2069: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 2069 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2069 ../src/curl -q --output log/8/curl2069.out --include --trace-ascii log/8/trace2069 --trace-time -H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://127.0.0.1:36007/2069 > log/8/stdout2069 2> log/8/stderr2069 === End of file commands.log === Start of file http_server.log 10:34:23.304686 ====> Client connect 10:34:23.305109 accept_connection 3 returned 4 10:34:23.305332 accept_connection 3 returned 0 10:34:23.308773 Read 93 bytes 10:34:23.30893CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2075 ../src/curl -q --output log/3/curl2075.out --include --trace-ascii log/3/trace2075 --trace-time --disallow-username-in-url http://username:password@example.com/ > log/3/stdout2075 2> log/3/stderr2075 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2073 ../src/curl -q --output log/7/curl2073.out --include --trace-ascii log/7/trace2073 --trace-time http://127.0.0.1:40129/2073 -F 'name=a;filename=a.pdf' --next http://127.0.0.1:40129/2073 -F 'name=b;filename=b.jpg' > log/7/stdout2073 2> log/7/stderr2073 9 Process 93 bytes request 10:34:23.309022 Got request: GET /verifiedserver HTTP/1.1 10:34:23.309086 Are-we-friendly question received 10:34:23.309320 Wrote request (93 bytes) input to log/8/server.input 10:34:23.309493 Identifying ourselves as friends 10:34:23.310143 Response sent (56 bytes) and written to log/8/server.response 10:34:23.310279 special request received, no persistency 10:34:23.310339 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 43024 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 2069 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind2069 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2069 test 2075...[Verify usernames are not allowed in url] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2075 ../src/curl -q --output log/3/curl2075.out --include --trace-ascii log/3/trace2075 --trace-time --disallow-username-in-url http://username:password@example.com/ > log/3/stdout2075 2> log/3/stderr2075 curl returned 1, when expecting 67 2075: exit FAILED == Contents of files in the log/3/ dir after test 2075 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2075 ../src/curl -q --output log/3/curl2075.out --include --trace-ascii log/3/trace2075 --trace-time --disallow-username-in-url http://username:password@example.com/ > log/3/stdout2075 2> log/3/stderr2075 === End of file commands.log === Start of file server.cmd Testnum 2075 === End of file server.cmd === Start of file valgrind2075 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2075 test 2073...[HTTP form posts with handle reset] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2073 ../src/curl -q --output log/7/curl2073.out --include --trace-ascii log/7/trace2073 --trace-time http://127.0.0.1:40129/2073 -F 'name=a;filename=a.pdf' --next http://127.0.0.1:40129/2073 -F 'name=b;filename=b.jpg' > log/7/stdout2073 2> log/7/stderr2073 2073: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 2073 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2073 ../src/curl -q --output log/7/curl2073.out --include --trace-ascii log/7/trace2073 --trace-time http://127.0.0.1:40129/2073 -F 'name=a;filename=a.pdf' --next http://127.0.0.1:40129/2073 -F 'name=b;filename=b.jpg' > log/7/stdout2073 2> log/7/stderr2073 === End of file commands.log === Start of file http_server.log 10:34:24.071296 ====> Client connect 10:34:24.071590 accept_connection 3 returned 4 10:34:24.071736 accept_connection 3 returned 0 10:34:24.071853 Read 93 bytes 10:34:24.071928 Process 93 bytes request 10:34:24.072007 Got request: GET /verifiedserver HTTP/1.1 10:34:24.072072 Are-we-friendly question received 10:34:24.072267 Wrote request (93 bytes) input to log/7/server.input 10:34:24.072432 Identifying ourselves as friends 10:34:24.073176 Response sent (56 bytes) and written to log/7/server.response 10:34:24.073292 special request received, no persistency 10:34:24.073363 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 41874 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 2073 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind2073 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst prCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2074 ../src/curl -q --output log/5/curl2074.out --include --trace-ascii log/5/trace2074 --trace-time http://127.0.0.1:41733/2074 --oauth2-bearer mF_9.B5f-4.1JqM > log/5/stdout2074 2> log/5/stderr2074 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2077 ../src/curl -q --output log/4/curl2077.out --include --trace-ascii log/4/trace2077 --trace-time http://127.0.0.1:36757/2077 --fail --negotiate > log/4/stdout2077 2> log/4/stderr2077 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2080 ../src/curl -q --output log/8/curl2080.out --include --trace-ascii log/8/trace2080 --trace-time -K log/8/config2080 file://de\>v/null > log/8/stdout2080 2> log/8/stderr2080 ocessing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2073 test 2074...[HTTP GET] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2074 ../src/curl -q --output log/5/curl2074.out --include --trace-ascii log/5/trace2074 --trace-time http://127.0.0.1:41733/2074 --oauth2-bearer mF_9.B5f-4.1JqM > log/5/stdout2074 2> log/5/stderr2074 2074: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 2074 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2074 ../src/curl -q --output log/5/curl2074.out --include --trace-ascii log/5/trace2074 --trace-time http://127.0.0.1:41733/2074 --oauth2-bearer mF_9.B5f-4.1JqM > log/5/stdout2074 2> log/5/stderr2074 === End of file commands.log === Start of file http_server.log 10:34:25.131020 ====> Client connect 10:34:25.131377 accept_connection 3 returned 4 10:34:25.131563 accept_connection 3 returned 0 10:34:25.131687 Read 93 bytes 10:34:25.131764 Process 93 bytes request 10:34:25.131874 Got request: GET /verifiedserver HTTP/1.1 10:34:25.131976 Are-we-friendly question received 10:34:25.132253 Wrote request (93 bytes) input to log/5/server.input 10:34:25.132554 Identifying ourselves as friends 10:34:25.133397 Response sent (56 bytes) and written to log/5/server.response 10:34:25.133561 special request received, no persistency 10:34:25.133634 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 33114 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 2074 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind2074 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2074 test 2077...[curl --fail --negotiate to unauthenticated service fails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2077 ../src/curl -q --output log/4/curl2077.out --include --trace-ascii log/4/trace2077 --trace-time http://127.0.0.1:36757/2077 --fail --negotiate > log/4/stdout2077 2> log/4/stderr2077 2077: data FAILED: --- log/4/check-expected 2025-09-11 10:34:25.315345238 +0000 +++ log/4/check-generated 2025-09-11 10:34:25.315345238 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 200 OK swsclose[CR][LF] -Content-Length: 23[CR][LF] -[CR][LF] -This IS the real page![LF] == Contents of files in the log/4/ dir after test 2077 === Start of file check-expected HTTP/1.1 200 OK swsclose[CR][LF] Content-Length: 23[CR][LF] [CR][LF] This IS the real page![LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2077 ../src/curl -q --output log/4/curl2077.out --include --trace-ascii log/4/trace2077 --trace-time http://127.0.0.1:36757/2077 --fail --negotiate > log/4/stdout2077 2> log/4/stderr2077 === End of file commands.log === Start of file http_server.log 10:34:25.273171 ====> Client connect 10:34:25.273464 accept_connection 3 returned 4 10:34:25.273620 accept_connection 3 returned 0 10:34:25.273733 Read 93 bytes 10:34:25.273820 Process 93 bytes request 10:34:25.273901 Got request: GET /verifiedserver HTTP/1.1 10:34:25.273965 Are-we-friendly question received 10:34:25.274190 Wrote request (93 bytes) input to log/4/server.input 10:34:25.274371 Identifying ourselves as friends 10:34:25.275004 Response sent (56 bytes) and written to log/4/server.response 10:34:25.275114 special request received, no persistency 10:34:25.275174 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 45778 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 2077 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind2077 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2077 test 2080...[config file with overly long option] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2080 ../src/curl -q --output log/8/curl2080.out --include --trace-ascii log/8/trace2080 --trace-time -K log/8/config2080 file://de\>v/null > log/8/stdout2080 2> log/8/stderr2080 curl returned 1, when expecting 26 2080: exit FAILED == Contents of files in the log/8/ dir after test 2080 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2080 ../src/curl -q --output log/8/curl2080.out --include --trace-ascii log/8/trace2080 --trace-time -K log/8/config2080 file://de\>v/null > log/8/stdout2080 2> log/8/stderr2080 === End of file commands.log === Start of file config2080 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2076 ../src/curl -q --output log/6/curl2076.out --include --trace-ascii log/6/trace2076 --trace-time "http://127.0.0.1:39357/2076?query" -u testuser:testpass --digest > log/6/stdout2076 2> log/6/stderr2076 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2078 ../src/curl -q --output log/2/curl2078.out --include --trace-ascii log/2/trace2078 --trace-time http://127.0.0.1:43789/2078 --negotiate --data name=value > log/2/stdout2078 2> log/2/stderr2078 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD === End of file config2080 === Start of file server.cmd Testnum 2080 === End of file server.cmd === Start of file valgrind2080 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2080 test 2076...[HTTP with digest auth and URI contains query] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2076 ../src/curl -q --output log/6/curl2076.out --include --trace-ascii log/6/trace2076 --trace-time "http://127.0.0.1:39357/2076?query" -u testuser:testpass --digest > log/6/stdout2076 2> log/6/stderr2076 2076: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 2076 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2076 ../src/curl -q --output log/6/curl2076.out --include --trace-ascii log/6/trace2076 --trace-time "http://127.0.0.1:39357/2076?query" -u testuser:testpass --digest > log/6/stdout2076 2> log/6/stderr2076 === End of file commands.log === Start of file http_server.log 10:34:24.232797 ====> Client connect 10:34:24.233093 accept_connection 3 returned 4 10:34:24.233260 accept_connection 3 returned 0 10:34:24.233372 Read 93 bytes 10:34:24.233450 Process 93 bytes request 10:34:24.233530 Got request: GET /verifiedserver HTTP/1.1 10:34:24.233600 Are-we-friendly question received 10:34:24.233812 Wrote request (93 bytes) input to log/6/server.input 10:34:24.233988 Identifying ourselves as friends 10:34:24.234646 Response sent (57 bytes) and written to log/6/server.response 10:34:24.234784 special request received, no persistency 10:34:24.234854 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 54386 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 2076 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind2076 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2076 test 2078...[curl --negotiate should not send empty POST request only] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2078 ../src/curl -q --output log/2/curl2078.out --include --trace-ascii log/2/trace2078 --trace-time http://127.0.0.1:43789/2078 --negotiate --data name=value > log/2/stdout2078 2> log/2/stderr2078 2078: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 2078 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2078 ../src/curl -q --output log/2/curl2078.out --include --trace-ascii log/2/trace2078 --trace-time http://127.0.0.1:43789/2078 --negotiate --data name=value > log/2/stdout2078 2> log/2/stderr2078 === End of file commands.log === Start of file http_server.log 10:34:24.311409 ====> Client connect 10:34:24.311728 accept_connection 3 returned 4 10:34:24.311917 accept_connection 3 returned 0 10:34:24.313195 Read 93 bytes 10:34:24.313431 Process 93 bytes request 10:34:24.313549 Got request: GET /verifiedserver HTTP/1.1 10:34:24.313630 Are-we-friendly question received 10:34:24.313918 Wrote request (93 bytes) input to log/2/server.input 10:34:24.314186 Identifying ourselves as friends 10:34:24.315658 Response sent (56 bytes) and written to log/2/server.response 10:34:24.315864 special request received, no persistency 10:34:24.315973 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60416 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2081 ../src/curl -q --include --trace-ascii log/1/trace2081 --trace-time http://user:pass@127.0.0.1:42781/we/want/our/2081#anchor --location --referer ';auto' --write-out '%{referer}\n' > log/1/stdout2081 2> log/1/stderr2081 < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 2078 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind2078 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2078 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2082 ./libtest/libtests lib2082 127.0.0.1:36933/2082 > log/3/stdout2082 2> log/3/stderr2082 test 2081...[Automatic referrer credential and anchor stripping check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2081 ../src/curl -q --include --trace-ascii log/1/trace2081 --trace-time http://user:pass@127.0.0.1:42781/we/want/our/2081#anchor --location --referer ';auto' --write-out '%{referer}\n' > log/1/stdout2081 2> log/1/stderr2081 2081: stdout FAILED: --- log/1/check-expected 2025-09-11 10:34:25.647351847 +0000 +++ log/1/check-generated 2025-09-11 10:34:25.647351847 +0000 @@ -1,10 +0,0 @@ -HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] -Location: data/20810002.txt?coolsite=yes[CR][LF] -Content-Length: 62[CR][LF] -Connection: close[CR][LF] -[CR][LF] -HTTP/1.1 200 This is another weirdo text message swsclose[CR][LF] -Connection: close[CR][LF] -[CR][LF] -Thanks for following.[LF] -http://127.0.0.1:42781/we/want/our/2081[LF] == Contents of files in the log/1/ dir after test 2081 === Start of file check-expected HTTP/1.1 301 This is a weirdo text message swsclose[CR][LF] Location: data/20810002.txt?coolsite=yes[CR][LF] Content-Length: 62[CR][LF] Connection: close[CR][LF] [CR][LF] HTTP/1.1 200 This is another weirdo text message swsclose[CR][LF] Connection: close[CR][LF] [CR][LF] Thanks for following.[LF] http://127.0.0.1:42781/we/want/our/2081[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2081 ../src/curl -q --include --trace-ascii log/1/trace2081 --trace-time http://user:pass@127.0.0.1:42781/we/want/our/2081#anchor --location --referer ';auto' --write-out '%{referer}\n' > log/1/stdout2081 2> log/1/stderr2081 === End of file commands.log === Start of file http_server.log 10:34:24.421420 ====> Client connect 10:34:24.421831 accept_connection 3 returned 4 10:34:24.422094 accept_connection 3 returned 0 10:34:24.422263 Read 93 bytes 10:34:24.422354 Process 93 bytes request 10:34:24.422438 Got request: GET /verifiedserver HTTP/1.1 10:34:24.422507 Are-we-friendly question received 10:34:24.422758 Wrote request (93 bytes) input to log/1/server.input 10:34:24.422945 Identifying ourselves as friends 10:34:24.423671 Response sent (57 bytes) and written to log/1/server.response 10:34:24.423830 special request received, no persistency 10:34:24.423907 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 58164 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 2081 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind2081 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2081 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2083 ./libtest/libtests lib2082 ftp://127.0.0.1:38253/test-2083/ > log/7/stdout2083 2> log/7/stderr2083 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2084 ./libtest/libtests lib2082 127.0.0.1:41733/2084#err > log/5/stdout2084 2> log/5/stderr2084 test 2082...[Pre-request callback for HTTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2082 ./libtest/libtests lib2082 127.0.0.1:36933/2082 > log/3/stdout2082 2> log/3/stderr2082 2082: stdout FAILED: --- log/3/check-expected 2025-09-11 10:34:26.071360287 +0000 +++ log/3/check-generated 2025-09-11 10:34:26.071360287 +0000 @@ -1,5 +0,0 @@ -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 36933[LF] -Local port = stripped[LF] -Returning = 0[LF] == Contents of files in the log/3/ dir after test 2082 === Start of file check-expected Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 36933[LF] Local port = stripped[LF] Returning = 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2082 ./libtest/libtests lib2082 127.0.0.1:36933/2082 > log/3/stdout2082 2> log/3/stderr2082 === End of file commands.log === Start of file http_server.log 10:34:24.962644 ====> Client connect 10:34:24.963074 accept_connection 3 returned 4 10:34:24.963336 accept_connection 3 returned 0 10:34:24.963534 Read 93 bytes 10:34:24.963688 Process 93 bytes request 10:34:24.963798 Got request: GET /verifiedserver HTTP/1.1 10:34:24.963893 Are-we-friendly question received 10:34:24.964259 Wrote request (93 bytes) input to log/3/server.input 10:34:24.964641 Identifying ourselves as friends 10:34:24.965695 Response sent (56 bytes) and written to log/3/server.response 10:34:24.965878 special request received, no persistency 10:34:24.965948 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36933... * Established connection to 127.0.0.1 (127.0.0.1 port 36933) from 127.0.0.1 port 45554 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36933 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36933 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73521 === End of file http_verify.out === Start of file server.cmd Testnum 2082 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73521 === End of file server.response === Start of file valgrind2082 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2082 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2200 ../src/curl -q --output log/6/curl2200.out --include --trace log/6/trace2200 --trace-time mqtt://127.0.0.1:40257/2200 -u fakeuser:fakepasswd > log/6/stdout2200 2> log/6/stderr2200 test 2083...[Pre-request callback for FTP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2083 ./libtest/libtests lib2082 ftp://127.0.0.1:38253/test-2083/ > log/7/stdout2083 2> log/7/stderr2083 2083: stdout FAILED: --- log/7/check-expected 2025-09-11 10:34:26.195362756 +0000 +++ log/7/check-generated 2025-09-11 10:34:26.191362676 +0000 @@ -1,5 +0,0 @@ -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 38253[LF] -Local port = stripped[LF] -Returning = 0[LF] == Contents of files in the log/7/ dir after test 2083 === Start of file check-expected Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 38253[LF] Local port = stripped[LF] Returning = 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2083 ./libtest/libtests lib2082 ftp://127.0.0.1:38253/test-2083/ > log/7/stdout2083 2> log/7/stderr2083 === End of file commands.log === Start of file ftp_server.log 10:34:25.400225 ====> Client connect 10:34:25.401623 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:25.404764 < "USER anonymous" 10:34:25.405376 > "331 We are happy you popped in![CR][LF]" 10:34:25.408443 < "PASS ftp@example.com" 10:34:25.409020 > "230 Welcome you silly person[CR][LF]" 10:34:25.412238 < "PWD" 10:34:25.412803 > "257 "/" is current directory[CR][LF]" 10:34:25.415945 < "EPSV" 10:34:25.416377 ====> Passive DATA channel requested by client 10:34:25.416733 DATA sockfilt for passive data channel starting... 10:34:25.430416 DATA sockfilt for passive data channel started (pid 166086) 10:34:25.431599 DATA sockfilt for passive data channel listens on port 42533 10:34:25.432172 > "229 Entering Passive Mode (|||42533|)[LF]" 10:34:25.432476 Client has been notified that DATA conn will be accepted on port 42533 10:34:25.435177 Client connects to port 42533 10:34:25.435614 ====> Client established passive DATA connection on port 42533 10:34:25.436572 < "TYPE I" 10:34:25.437557 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:25.440099 < "SIZE verifiedserver" 10:34:25.440703 > "213 17[CR][LF]" 10:34:25.446626 < "RETR verifiedserver" 10:34:25.448284 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:25.449153 =====> Closing passive DATA connection... 10:34:25.449390 Server disconnects passive DATA connection 10:34:25.450871 Server disconnected passive DATA connection 10:34:25.451250 DATA sockfilt for passive data channel quits (pid 166086) 10:34:25.462044 DATA sockfilt for passive data channel quit (pid 166086) 10:34:25.462492 =====> Closed passive DATA connection 10:34:25.469719 > "226 File transfer complete[CR][LF]" 10:34:25.493440 < "QUIT" 10:34:25.494102 > "221 bye bye baby[CR][LF]" 10:34:25.499042 MAIN sockfilt said DISC 10:34:25.499550 ====> Client disconnected 10:34:25.500253 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:26.066562 ====> Client connect 10:34:26.068555 Received DATA (on stdin) 10:34:26.068860 > 160 bytes data, server => client 10:34:26.068996 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:26.069112 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:26.069241 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:26.070368 < 16 bytes data, client => server 10:34:26.070617 'USER anonymous\r\n' 10:34:26.072968 Received DATA (on stdin) 10:34:26.073187 > 33 bytes data, server => client 10:34:26.073302 '331 We are happy you popped in!\r\n' 10:34:26.074223 < 22 bytes data, client => server 10:34:26.074458 'PASS ftp@example.com\r\n' 10:34:26.076497 Received DATA (on stdin) 10:34:26.076753 > 30 bytes data, server => client 10:34:26.076878 '230 Welcome you silly person\r\n' 10:34:26.078117 < 5 bytes data, client => server 10:34:26.078399 'PWD\r\n' 10:34:26.080233 Received DATA (on stdin) 10:34:26.080526 > 30 bytes data, server => client 10:34:26.080665 '257 "/" is current directory\r\n' 10:34:26.081671 < 6 bytes data, client => server 10:34:26.081953 'EPSV\r\n' 10:34:26.099848 Received DATA (on stdin) 10:34:26.099975 > 38 bytes data, server => client 10:34:26.100058 '229 Entering Passive Mode (|||42533|)\n' 10:34:26.101663 < 8 bytes data, client => server 10:34:26.101800 'TYPE I\r\n' 10:34:26.104033 Received DATA (on stdin) 10:34:26.104214 > 33 bytes data, server => client 10:34:26.105005 '200 I modify TYPE as you wanted\r\n' 10:34:26.106015 < 21 bytes data, client => server 10:34:26.106219 'SIZE verifiedserver\r\n' 10:34:26.111026 Received DATA (on stdin) 10:34:26.111265 > 8 bytes data, server => client 10:34:26.111361 '213 17\r\n' 10:34:26.112149 < 21 bytes data, client => server 10:34:26.112363 'RETR verifiedserver\r\n' 10:34:26.114185 Received DATA (on stdin) 10:34:26.114362 > 29 bytes data, server => client 10:34:26.114529 '150 Binary junk (17 bytes).\r\n' 10:34:26.130005 Received DATA (on stdin) 10:34:26.130253 > 28 bytes data, server => client 10:34:26.137195 '226 File transfer complete\r\n' 10:34:26.159363 < 6 bytes data, client => server 10:34:26.159590 'QUIT\r\n' 10:34:26.161554 Received DATA (on stdin) 10:34:26.161750 > 18 bytes data, server => client 10:34:26.161843 '221 bye bye baby\r\n' 10:34:26.165567 ====> Client disconnect 10:34:26.172041 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:25.094838 Running IPv4 version 10:34:25.095495 Listening on port 42533 10:34:25.095934 Wrote pid 166086 to log/7/server/ftp_sockdata.pid 10:34:25.096977 Received PING (on stdin) 10:34:25.097903 Received PORT (on stdin) 10:34:25.101352 ====> Client connect 10:34:25.116550 Received DATA (on stdin) 10:34:25.116744 > 17 bytes data, server => client 10:34:25.116840 'WE ROOLZ: 79543\r\n' 10:34:25.117209 Received DISC (on stdin) 10:34:25.117387 ====> Client forcibly disconnected 10:34:25.124750 Received QUIT (on stdin) 10:34:25.125004 quits 10:34:25.125535 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 2083 === End of file server.cmd === Start of file valgrind2083 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2083 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2086 ./libtest/libtests lib2082 [::1]:42259/2086#ipv6 > log/8/stdout2086 2> log/8/stderr2086 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2085 ./libtest/libtests lib2082 127.0.0.1:36757/2085#redir > log/4/stdout2085 2> log/4/stderr2085 test 2084...[Pre-request callback for HTTP with callback terminating transfer] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2084 ./libtest/libtests lib2082 127.0.0.1:41733/2084#err > log/5/stdout2084 2> log/5/stderr2084 2084: stdout FAILED: --- log/5/check-expected 2025-09-11 10:34:26.263364109 +0000 +++ log/5/check-generated 2025-09-11 10:34:26.263364109 +0000 @@ -1,5 +0,0 @@ -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 41733[LF] -Local port = stripped[LF] -Returning = 1[LF] == Contents of files in the log/5/ dir after test 2084 === Start of file check-expected Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 41733[LF] Local port = stripped[LF] Returning = 1[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2084 ./libtest/libtests lib2082 127.0.0.1:41733/2084#err > log/5/stdout2084 2> log/5/stderr2084 === End of file commands.log === Start of file http_server.log 10:34:26.099173 ====> Client connect 10:34:26.099476 accept_connection 3 returned 4 10:34:26.099653 accept_connection 3 returned 0 10:34:26.099799 Read 93 bytes 10:34:26.099907 Process 93 bytes request 10:34:26.099985 Got request: GET /verifiedserver HTTP/1.1 10:34:26.100047 Are-we-friendly question received 10:34:26.100302 Wrote request (93 bytes) input to log/5/server.input 10:34:26.100950 Identifying ourselves as friends 10:34:26.101758 Response sent (56 bytes) and written to log/5/server.response 10:34:26.101860 special request received, no persistency 10:34:26.101929 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 33128 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 2084 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind2084 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2084 test 2200...[MQTT SUBSCRIBE with user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2200 ../src/curl -q --output log/6/curl2200.out --include --trace log/6/trace2200 --trace-time mqtt://127.0.0.1:40257/2200 -u fakeuser:fakepasswd > log/6/stdout2200 2> log/6/stderr2200 2200: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 2200 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2200 ../src/curl -q --output log/6/curl2200.out --include --trace log/6/trace2200 --trace-time mqtt://127.0.0.1:40257/2200 -u fakeuser:fakepasswd > log/6/stdout2200 2> log/6/stderr2200 === End of file commands.log === Start of file server.cmd error-CONNACK 5 Testnum 2200 === End of file server.cmd === Start of file valgrind2200 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2200 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2201 ../src/curl -q --output log/2/curl2201.out --include --trace log/2/trace2201 --trace-time mqtt://127.0.0.1:34833/2201 -d something -u testuser:testpasswd > log/2/stdout2201 2> log/2/stderr2201 setenv MSYS2_ARG_CONV_EXCL = * test 2086...[Pre-request callback for HTTP IPv6] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2086 ./libtest/libtests lib2082 [::1]:42259/2086#ipv6 > log/8/stdout2086 2> log/8/stderr2086 2086: stdout FAILED: --- log/8/check-expected 2025-09-11 10:34:26.343365702 +0000 +++ log/8/check-generated 2025-09-11 10:34:26.343365702 +0000 @@ -1,5 +0,0 @@ -Connected to [::1][LF] -Connected from [::1][LF] -Remote port = 42259[LF] -Local port = stripped[LF] -Returning = 0[LF] == Contents of files in the log/8/ dir after test 2086 === Start of file check-expected Connected to [::1][LF] Connected from [::1][LF] Remote port = 42259[LF] Local port = stripped[LF] Returning = 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2086 ./libtest/libtests lib2082 [::1]:42259/2086#ipv6 > log/8/stdout2086 2> log/8/stderr2086 === End of file commands.log === Start of file http_ipv6_server.log 10:34:25.259080 ====> Client connect 10:34:25.259386 accept_connection 3 returned 4 10:34:25.259563 accept_connection 3 returned 0 10:34:25.259702 Read 89 bytes 10:34:25.259788 Process 89 bytes request 10:34:25.259865 Got request: GET /verifiedserver HTTP/1.1 10:34:25.259935 Are-we-friendly question received 10:34:25.260156 Wrote request (89 bytes) input to log/8/server.input 10:34:25.260336 Identifying ourselves as friends 10:34:25.261213 Response sent (57 bytes) and written to log/8/server.response 10:34:25.261359 special request received, no persistency 10:34:25.261439 ====> Client disconnect 0 === End of file http_ipv6_server.log === Start of file http_ipv6_verify.log * Trying [::1]:42259... * Established connection to ::1 (::1 port 42259) from ::1 port 60556 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: [::1]:42259 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host ::1:42259 left intact === End of file http_ipv6_verify.log === Start of file http_ipv6_verify.out WE ROOLZ: 128457 === End of file http_ipv6_verify.out === Start of file server.cmd Testnum 2086 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 128457 === End of file server.response === Start of file valgrind2086 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2086 test 2201...[MQTT PUBLISH with user and password valid] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2201 ../src/curl -q --output log/2/curl2201.out --include --trace log/2/trace2201 --trace-time mqtt://127.0.0.1:34833/2201 -d something -u testuser:testpasswd > log/2/stdout2201 2> log/2/stderr2201 2201: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 2201 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2201 ../src/curl -q --output log/2/curl2201.out --include --trace log/2/trace2201 --trace-time mqtt://127.0.0.1:34833/2201 -d something -u testuser:testpasswd > log/2/stdout2201 2> log/2/stderr2201 === End of file commands.log === Start of file server.cmd Testnum 2201 === End of file server.cmd === Start of file valgrind2201 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2201 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2202 ../src/curl -q --output log/1/curl2202.out --include --trace log/1/trace2202 --trace-time mqtt://127.0.0.1:40043/2202 -d something -u fakeuser:fakepasswd > log/1/stdout2202 2> log/1/stderr2202 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2203 ../src/curl -q --output log/3/curl2203.out --include --trace log/3/trace2203 --trace-time mqtt://127.0.0.1:36001/2203 > log/3/stdout2203 2> log/3/stderr2203 test 2085...[Pre-request callback for HTTP with location following] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2085 ./libtest/libtests lib2082 127.0.0.1:36757/2085#redir > log/4/stdout2085 2> log/4/stderr2085 2085: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:26.399366817 +0000 +++ log/4/check-generated 2025-09-11 10:34:26.399366817 +0000 @@ -1,10 +0,0 @@ -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 36757[LF] -Local port = stripped[LF] -Returning = 0[LF] -Connected to 127.0.0.1[LF] -Connected from 127.0.0.1[LF] -Remote port = 36757[LF] -Local port = stripped[LF] -Returning = 0[LF] == Contents of files in the log/4/ dir after test 2085 === Start of file check-expected Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 36757[LF] Local port = stripped[LF] Returning = 0[LF] Connected to 127.0.0.1[LF] Connected from 127.0.0.1[LF] Remote port = 36757[LF] Local port = stripped[LF] Returning = 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2085 ./libtest/libtests lib2082 127.0.0.1:36757/2085#redir > log/4/stdout2085 2> log/4/stderr2085 === End of file commands.log === Start of file http_server.log 10:34:26.205534 ====> Client connect 10:34:26.205938 accept_connection 3 returned 4 10:34:26.206177 accept_connection 3 returned 0 10:34:26.207643 Read 93 bytes 10:34:26.207848 Process 93 bytes request 10:34:26.207958 Got request: GET /verifiedserver HTTP/1.1 10:34:26.208048 Are-we-friendly question received 10:34:26.208332 Wrote request (93 bytes) input to log/4/server.input 10:34:26.208682 Identifying ourselves as friends 10:34:26.211419 Response sent (56 bytes) and written to log/4/server.response 10:34:26.211631 special request received, no persistency 10:34:26.211755 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 45794 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 2085 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind2085 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2085 test 2202...[MQTT PUBLISH with invalid user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2202 ../src/curl -q --output log/1/curl2202.out --include --trace log/1/trace2202 --trace-time mqtt://127.0.0.1:40043/2202 -d something -u fakeuser:fakepasswd > log/1/stdout2202 2> log/1/stderr2202 2202: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 2202 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind2202 ../src/curl -q --output log/1/curl2202.out --include --trace log/1/trace2202 --trace-time mqtt://127.0.0.1:40043/2202 -d something -u fakeuser:fakepasswd > log/1/stdout2202 2> log/1/stderr2202 === End of file commands.log === Start of file server.cmd error-CONNACK 5 Testnum 2202 === End of file server.cmd === Start of file valgrind2202 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2202 test 2203...[MQTT with error in CONNACK] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2203 ../src/curl -q --output log/3/curl2203.out --include --trace log/3/trace2203 --trace-time mqtt://127.0.0.1:36001/2203 > log/3/stdout2203 2> log/3/stderr2203 2203: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 2203 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind2203 ../src/curl -q --output log/3/curl2203.out --include --trace log/3/trace2203 --trace-time mqtt://127.0.0.1:36001/2203 > log/3/stdout2203 2> log/3/stderr2203 === End of file commands.log === Start of file server.cmd error-CONNACK 5 Testnum 2203 === End of file server.cmd === Start of file valgrind2203 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannotCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2205 ../src/curl -q --output log/6/curl2205.out --include --trace log/6/trace2205 --trace-time mqtt://127.0.0.1:40257/2205 -K log/6/input2205 > log/6/stdout2205 2> log/6/stderr2205 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2204 ../src/curl -q --output log/7/curl2204.out --include --trace log/7/trace2204 --trace-time mqtt://127.0.0.1:33835/2204 -u testuser:testpasswd > log/7/stdout2204 2> log/7/stderr2204 be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2203 test 2205...[MQTT with very long user name] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2205 ../src/curl -q --output log/6/curl2205.out --include --trace log/6/trace2205 --trace-time mqtt://127.0.0.1:40257/2205 -K log/6/input2205 > log/6/stdout2205 2> log/6/stderr2205 curl returned 1, when expecting 8 2205: exit FAILED == Contents of files in the log/6/ dir after test 2205 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2205 ../src/curl -q --output log/6/curl2205.out --include --trace log/6/trace2205 --trace-time mqtt://127.0.0.1:40257/2205 -K log/6/input2205 > log/6/stdout2205 2> log/6/stderr2205 === End of file commands.log === Start of file input2205 user = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2306 ./libtest/libtests lib2306 http://127.0.0.1:41733/2306 http://127.0.0.1:41733/23060002 > log/5/stdout2306 2> log/5/stderr2306 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:fakepasswd === End of file input2205 === Start of file server.cmd Testnum 2205 === End of file server.cmd === Start of file valgrind2205 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2205 test 2204...[MQTT SUBSCRIBE with user and password] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2204 ../src/curl -q --output log/7/curl2204.out --include --trace log/7/trace2204 --trace-time mqtt://127.0.0.1:33835/2204 -u testuser:testpasswd > log/7/stdout2204 2> log/7/stderr2204 2204: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 2204 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2204 ../src/curl -q --output log/7/curl2204.out --include --trace log/7/trace2204 --trace-time mqtt://127.0.0.1:33835/2204 -u testuser:testpasswd > log/7/stdout2204 2> log/7/stderr2204 === End of file commands.log === Start of file server.cmd Testnum 2204 === End of file server.cmd === Start of file valgrind2204 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2204 test 2306...[HTTP GET reused handle with first header folded] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2306 ./libtest/libtests lib2306 http://127.0.0.1:41733/2306 http://127.0.0.1:41733/23060002 > log/5/stdout2306 2> log/5/stderr2306 2306: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 2306 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2306 ./libtest/libtests lib2306 http://127.0.0.1:41733/2306 http://127.0.0.1:41733/23060002 > log/5/stdout2306 2> log/5/stderr2306 === End of file commands.log === Start of file http_server.log 10:34:27.125661 ====> Client connect 10:34:27.126033 accept_connection 3 returned 4 10:34:27.126274 accept_connection 3 returned 0 10:34:27.126446 Read 93 bytes 10:34:27.126552 Process 93 bytes request 10:34:27.126647 Got request: GET /verifiedserver HTTP/1.1 10:34:27.126727 Are-we-friendly question received 10:34:27.127000 Wrote request (93 bytes) input to log/5/server.input 10:34:27.127235 Identifying ourselves as friends 10:34:27.128100 Response sent (56 bytes) and written to log/5/server.response 10:34:27.128257 special request received, no persistency 10:34:27.128340 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 33136 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > HosCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2308 ./libtest/libtests lib2308 http://127.0.0.1:36757/2308 > log/4/stdout2308 2> log/4/stderr2308 t: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 2306 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind2306 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2306 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2309 ./libtest/libtests lib2309 http://github.com log/2/netrc2309 http://127.0.0.1:43789/ > log/2/stdout2309 2> log/2/stderr2309 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2307 ../src/curl -q --output log/8/curl2307.out --include --trace-ascii log/8/trace2307 --trace-time -r 4-1000 ftp://127.0.0.1:42977/2307 > log/8/stdout2307 2> log/8/stderr2307 test 2308...[verify return code when write callback returns error] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2308 ./libtest/libtests lib2308 http://127.0.0.1:36757/2308 > log/4/stdout2308 2> log/4/stderr2308 2308: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:27.367386086 +0000 +++ log/4/check-generated 2025-09-11 10:34:27.367386086 +0000 @@ -1 +0,0 @@ -Returned 23, should be 23.[CR][LF] == Contents of files in the log/4/ dir after test 2308 === Start of file check-expected Returned 23, should be 23.[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2308 ./libtest/libtests lib2308 http://127.0.0.1:36757/2308 > log/4/stdout2308 2> log/4/stderr2308 === End of file commands.log === Start of file http_server.log 10:34:27.266131 ====> Client connect 10:34:27.266448 accept_connection 3 returned 4 10:34:27.266608 accept_connection 3 returned 0 10:34:27.266743 Read 93 bytes 10:34:27.266813 Process 93 bytes request 10:34:27.266896 Got request: GET /verifiedserver HTTP/1.1 10:34:27.266970 Are-we-friendly question received 10:34:27.267193 Wrote request (93 bytes) input to log/4/server.input 10:34:27.267371 Identifying ourselves as friends 10:34:27.268038 Response sent (56 bytes) and written to log/4/server.response 10:34:27.268186 special request received, no persistency 10:34:27.268255 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 45802 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 2308 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind2308 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2308 test 2309...[HTTP with .netrc using duped easy handle] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2309 ./libtest/libtests lib2309 http://github.com log/2/netrc2309 http://127.0.0.1:43789/ > log/2/stdout2309 2> log/2/stderr2309 2309: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 2309 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind2309 ./libtest/libtests lib2309 http://github.com log/2/netrc2309 http://127.0.0.1:43789/ > log/2/stdout2309 2> log/2/stderr2309 === End of file commands.log === Start of file http_server.log 10:34:26.298609 ====> Client connect 10:34:26.298887 accept_connection 3 returned 4 10:34:26.299042 accept_connection 3 returned 0 10:34:26.299169 Read 93 bytes 10:34:26.299249 Process 93 bytes request 10:34:26.299337 Got request: GET /verifiedserver HTTP/1.1 10:34:26.299416 Are-we-friendly question received 10:34:26.299648 Wrote request (93 bytes) input to log/2/server.input 10:34:26.299898 Identifying ourselves as friends 10:34:26.300811 Response sent (56 bytes) and written to log/2/server.response 10:34:26.300957 special request received, no persistency 10:34:26.301051 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60420 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file netrc2309 machine github.com login daniel password $y$j9T$WUVjiVvDbRAWafDLs6cab1$01NX.oaZKf5lw8MR2Nk9Yaxv4CqbE0IaDF.GpGxPul1 === End of file netrc2309 === Start of file server.cmd Testnum 2309 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind2309 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2309 test 2307...[FTP retrieve a byte-range with end larger than file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2307 ../src/curl -q --output log/8/curl2307.out --include --trace-ascii log/8/trace2307CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2601 ./unit/units unit2601 - > log/5/stdout2601 2> log/5/stderr2601 --trace-time -r 4-1000 ftp://127.0.0.1:42977/2307 > log/8/stdout2307 2> log/8/stderr2307 2307: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 2307 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind2307 ../src/curl -q --output log/8/curl2307.out --include --trace-ascii log/8/trace2307 --trace-time -r 4-1000 ftp://127.0.0.1:42977/2307 > log/8/stdout2307 2> log/8/stderr2307 === End of file commands.log === Start of file ftp_server.log 10:34:26.560961 ====> Client connect 10:34:26.562569 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:26.574664 < "USER anonymous" 10:34:26.575294 > "331 We are happy you popped in![CR][LF]" 10:34:26.580884 < "PASS ftp@example.com" 10:34:26.581455 > "230 Welcome you silly person[CR][LF]" 10:34:26.594301 < "PWD" 10:34:26.594875 > "257 "/" is current directory[CR][LF]" 10:34:26.599966 < "EPSV" 10:34:26.600243 ====> Passive DATA channel requested by client 10:34:26.600411 DATA sockfilt for passive data channel starting... 10:34:26.616191 DATA sockfilt for passive data channel started (pid 166621) 10:34:26.619569 DATA sockfilt for passive data channel listens on port 40335 10:34:26.620190 > "229 Entering Passive Mode (|||40335|)[LF]" 10:34:26.620532 Client has been notified that DATA conn will be accepted on port 40335 10:34:26.623145 Client connects to port 40335 10:34:26.623640 ====> Client established passive DATA connection on port 40335 10:34:26.625901 < "TYPE I" 10:34:26.626452 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:26.632098 < "SIZE verifiedserver" 10:34:26.632583 > "213 17[CR][LF]" 10:34:26.634542 < "RETR verifiedserver" 10:34:26.635098 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:26.636622 =====> Closing passive DATA connection... 10:34:26.636985 Server disconnects passive DATA connection 10:34:26.639399 Server disconnected passive DATA connection 10:34:26.639788 DATA sockfilt for passive data channel quits (pid 166621) 10:34:26.642002 DATA sockfilt for passive data channel quit (pid 166621) 10:34:26.642394 =====> Closed passive DATA connection 10:34:26.642840 > "226 File transfer complete[CR][LF]" 10:34:26.680935 < "QUIT" 10:34:26.681440 > "221 bye bye baby[CR][LF]" 10:34:26.688328 MAIN sockfilt said DISC 10:34:26.692740 ====> Client disconnected 10:34:26.693641 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:26.226986 ====> Client connect 10:34:26.229528 Received DATA (on stdin) 10:34:26.229809 > 160 bytes data, server => client 10:34:26.229941 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:26.230037 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:26.230127 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:26.234012 < 16 bytes data, client => server 10:34:26.234270 'USER anonymous\r\n' 10:34:26.242660 Received DATA (on stdin) 10:34:26.242900 > 33 bytes data, server => client 10:34:26.243035 '331 We are happy you popped in!\r\n' 10:34:26.246933 < 22 bytes data, client => server 10:34:26.247179 'PASS ftp@example.com\r\n' 10:34:26.250633 Received DATA (on stdin) 10:34:26.250917 > 30 bytes data, server => client 10:34:26.251054 '230 Welcome you silly person\r\n' 10:34:26.256620 < 5 bytes data, client => server 10:34:26.256831 'PWD\r\n' 10:34:26.265056 Received DATA (on stdin) 10:34:26.265352 > 30 bytes data, server => client 10:34:26.265456 '257 "/" is current directory\r\n' 10:34:26.266268 < 6 bytes data, client => server 10:34:26.266418 'EPSV\r\n' 10:34:26.287987 Received DATA (on stdin) 10:34:26.288214 > 38 bytes data, server => client 10:34:26.288334 '229 Entering Passive Mode (|||40335|)\n' 10:34:26.291587 < 8 bytes data, client => server 10:34:26.291780 'TYPE I\r\n' 10:34:26.293895 Received DATA (on stdin) 10:34:26.294118 > 33 bytes data, server => client 10:34:26.294215 '200 I modify TYPE as you wanted\r\n' 10:34:26.296087 < 21 bytes data, client => server 10:34:26.296354 'SIZE verifiedserver\r\n' 10:34:26.299806 Received DATA (on stdin) 10:34:26.299965 > 8 bytes data, server => client 10:34:26.300044 '213 17\r\n' 10:34:26.300770 < 21 bytes data, client => server 10:34:26.302608 'RETR verifiedserver\r\n' 10:34:26.302885 Received DATA (on stdin) 10:34:26.303038 > 29 bytes data, server => client 10:34:26.303148 '150 Binary junk (17 bytes).\r\n' 10:34:26.309813 Received DATA (on stdin) 10:34:26.310066 > 28 bytes data, server => client 10:34:26.310195 '226 File transfer complete\r\n' 10:34:26.346926 < 6 bytes data, client => server 10:34:26.347167 'QUIT\r\n' 10:34:26.348497 Received DATA (on stdin) 10:34:26.348740 > 18 bytes data, server => client 10:34:26.348860 '221 bye bye baby\r\n' 10:34:26.352912 ====> Client disconnect 10:34:26.355867 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:26.280311 Running IPv4 version 10:34:26.281042 Listening on port 40335 10:34:26.281576 Wrote pid 166621 to log/8/server/ftp_sockdata.pid 10:34:26.281822 Received PING (on stdin) 10:34:26.284975 Received PORT (on stdin) 10:34:26.289651 ====> Client connect 10:34:26.302660 Received DATA (on stdin) 10:34:26.302817 > 17 bytes data, server => client 10:34:26.304334 'WE ROOLZ: 86552\r\n' 10:34:26.304912 Received DISC (on stdin) 10:34:26.305159 ====> Client forcibly disconnected 10:34:26.307120 Received QUIT (on stdin) 10:34:26.307311 quits 10:34:26.307783 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd Testnum 2307 === End of file server.cmd === Start of file valgrind2307 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2307 test 2601...[bufq unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2601 ./unit/units unit2601 - > log/5/stdout2601 2> log/5/stderr2601 units returned 1, when expecting 0 2601: exit FAILED == Contents of files in the log/5/ dir after test 2601 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind2601 ./unit/units unit2601 - > log/5/stdout2601 2> log/5/stderr2601 === End of file commands.log === Start of file server.cmd Testnum 2601 ==CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2602 ./unit/units unit2602 - > log/7/stdout2602 2> log/7/stderr2602 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2603 ./unit/units unit2603 - > log/6/stdout2603 2> log/6/stderr2603 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2604 ./unit/units unit2604 - > log/4/stdout2604 2> log/4/stderr2604 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3002 ../src/curl -q --output log/2/curl3002.out --include --trace-ascii log/2/trace3002 --trace-time smtp://127.0.0.1:40329/3002 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/2/stdout3002 2> log/2/stderr3002 = End of file server.cmd === Start of file valgrind2601 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2601 test 2602...[dynhds unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2602 ./unit/units unit2602 - > log/7/stdout2602 2> log/7/stderr2602 units returned 1, when expecting 0 2602: exit FAILED == Contents of files in the log/7/ dir after test 2602 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind2602 ./unit/units unit2602 - > log/7/stdout2602 2> log/7/stderr2602 === End of file commands.log === Start of file server.cmd Testnum 2602 === End of file server.cmd === Start of file valgrind2602 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2602 test 2603...[http1 parser unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2603 ./unit/units unit2603 - > log/6/stdout2603 2> log/6/stderr2603 units returned 1, when expecting 0 2603: exit FAILED == Contents of files in the log/6/ dir after test 2603 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind2603 ./unit/units unit2603 - > log/6/stdout2603 2> log/6/stderr2603 === End of file commands.log === Start of file server.cmd Testnum 2603 === End of file server.cmd === Start of file valgrind2603 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2603 test 2604...[Curl_get_pathname unit test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2604 ./unit/units unit2604 - > log/4/stdout2604 2> log/4/stderr2604 units returned 1, when expecting 0 2604: exit FAILED == Contents of files in the log/4/ dir after test 2604 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind2604 ./unit/units unit2604 - > log/4/stdout2604 2> log/4/stderr2604 === End of file commands.log === Start of file server.cmd Testnum 2604 === End of file server.cmd === Start of file valgrind2604 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind2604 test 3002...[SMTP multiple and invalid (first)CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3003 ../src/curl -q --output log/8/curl3003.out --include --trace-ascii log/8/trace3003 --trace-time smtp://127.0.0.1:38345/3003 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt invalid.five --mail-from sender@example.com -T - log/8/stdout3003 2> log/8/stderr3003 --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3002 ../src/curl -q --output log/2/curl3002.out --include --trace-ascii log/2/trace3002 --trace-time smtp://127.0.0.1:40329/3002 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/2/stdout3002 2> log/2/stderr3002 3002: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 3002 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3002 ../src/curl -q --output log/2/curl3002.out --include --trace-ascii log/2/trace3002 --trace-time smtp://127.0.0.1:40329/3002 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/2/stdout3002 2> log/2/stderr3002 === End of file commands.log === Start of file server.cmd Testnum 3002 === End of file server.cmd === Start of file smtp_server.log 10:34:27.617295 ====> Client connect 10:34:27.618821 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:27.622092 < "EHLO verifiedserver" 10:34:27.623159 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:34:27.626138 < "HELP" 10:34:27.626705 > "214 WE ROOLZ: 107342[CR][LF]" 10:34:27.626949 return proof we are we 10:34:27.629718 < "QUIT" 10:34:27.630623 > "221 curl ESMTP server signing off[CR][LF]" 10:34:27.633740 MAIN sockfilt said DISC 10:34:27.634223 ====> Client disconnected 10:34:27.634805 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:34:28.283528 ====> Client connect 10:34:28.286221 Received DATA (on stdin) 10:34:28.286414 > 160 bytes data, server => client 10:34:28.286506 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:28.286580 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:28.286646 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:28.287447 < 21 bytes data, client => server 10:34:28.287623 'EHLO verifiedserver\r\n' 10:34:28.289648 Received DATA (on stdin) 10:34:28.289841 > 53 bytes data, server => client 10:34:28.290515 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:34:28.291659 < 6 bytes data, client => server 10:34:28.291923 'HELP\r\n' 10:34:28.294152 Received DATA (on stdin) 10:34:28.294324 > 22 bytes data, server => client 10:34:28.294404 '214 WE ROOLZ: 107342\r\n' 10:34:28.295490 < 6 bytes data, client => server 10:34:28.295701 'QUIT\r\n' 10:34:28.297111 Received DATA (on stdin) 10:34:28.297297 > 35 bytes data, server => client 10:34:28.297979 '221 curl ESMTP server signing off\r\n' 10:34:28.299580 ====> Client disconnect 10:34:28.302179 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3002 From: different To: another body === End of file stdin-for-3002 === Start of file valgrind3002 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3002 test 3003...[SMTP multiple and invalid (last) --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3003 ../src/curl -q --output log/8/curl3003.out --include --trace-ascii log/8/trace3003 --trace-time smtp://127.0.0.1:38345/3003 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt invalid.five --mail-from sender@example.com -T - log/8/stdout3003 2> log/8/stderr3003 3003: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 3003 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3003 ../src/curl -q --output log/8/curl3003.out --include --trace-ascii log/8/trace3003 --trace-time smtp://127.0.0.1:38345/3003 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt invalid.five --mail-from sender@example.com -T - log/8/stdout3003 2> log/8/stderr3003 === End of file commands.log === Start of file server.cmd Testnum 3003 === End of file server.cmd === Start of file smtp_server.log 10:34:27.659230 ====> Client connect 10:34:27.660562 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:27.667575 < "EHLO verifiedserver" 10:34:27.668213 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:34:27.673761 < "HELP" 10:34:27.674350 > "214 WE ROOLZ: 107099[CR][LF]" 10:34:27.674705 return proof we are we 10:34:27.678815 < "QUIT" 10:34:27.679272 > "221 curl ESMTP server signing off[CR][LF]" 10:34:27.680459 MAIN sockfilt said DISC 10:34:27.680932 ====> Client disconnected 10:34:27.681659 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:34:27.325523 ====> Client connect 10:34:27.331569 Received DATA (on stdin) 10:34:27.331834 > 160 bytes data, server => client 10:34:27.331926 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:27.332000 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:27.332064 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:27.332882 < 21 bytes data, client => server 10:34:27.333122 'EHLO verifiedserver\r\n' 10:34:27.336543 Received DATA (on stdin) 10:34:27.336770 > 53 bytes data, server => client 10:34:27.336873 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:34:27.337969 < 6 bytes datCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3007 ../src/curl -q --output log/4/curl3007.out --include --trace-ascii log/4/trace3007 --trace-time smtp://127.0.0.1:44481/3007 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-from sender@example.com -T - log/4/stdout3007 2> log/4/stderr3007 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3004 ../src/curl -q --output log/5/curl3004.out --include --trace-ascii log/5/trace3004 --trace-time smtp://127.0.0.1:34989/3004 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/5/stdout3004 2> log/5/stderr3004 a, client => server 10:34:27.338163 'HELP\r\n' 10:34:27.341290 Received DATA (on stdin) 10:34:27.341575 > 22 bytes data, server => client 10:34:27.341697 '214 WE ROOLZ: 107099\r\n' 10:34:27.344501 < 6 bytes data, client => server 10:34:27.344765 'QUIT\r\n' 10:34:27.346225 Received DATA (on stdin) 10:34:27.346404 > 35 bytes data, server => client 10:34:27.346501 '221 curl ESMTP server signing off\r\n' 10:34:27.347020 ====> Client disconnect 10:34:27.347898 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3003 From: different To: another body === End of file stdin-for-3003 === Start of file valgrind3003 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3003 test 3007...[SMTP with invalid --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3007 ../src/curl -q --output log/4/curl3007.out --include --trace-ascii log/4/trace3007 --trace-time smtp://127.0.0.1:44481/3007 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-from sender@example.com -T - log/4/stdout3007 2> log/4/stderr3007 3007: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 3007 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3007 ../src/curl -q --output log/4/curl3007.out --include --trace-ascii log/4/trace3007 --trace-time smtp://127.0.0.1:44481/3007 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-from sender@example.com -T - log/4/stdout3007 2> log/4/stderr3007 === End of file commands.log === Start of file server.cmd Testnum 3007 === End of file server.cmd === Start of file smtp_server.log 10:34:28.105448 ====> Client connect 10:34:28.106692 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:28.109560 < "EHLO verifiedserver" 10:34:28.110041 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:34:28.112072 < "HELP" 10:34:28.113636 > "214 WE ROOLZ: 120358[CR][LF]" 10:34:28.114053 return proof we are we 10:34:28.114802 < "QUIT" 10:34:28.115255 > "221 curl ESMTP server signing off[CR][LF]" 10:34:28.120447 MAIN sockfilt said DISC 10:34:28.120836 ====> Client disconnected 10:34:28.121347 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:34:27.771694 ====> Client connect 10:34:27.774105 Received DATA (on stdin) 10:34:27.774294 > 160 bytes data, server => client 10:34:27.774386 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:27.774462 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:27.774530 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:27.775317 < 21 bytes data, client => server 10:34:27.775490 'EHLO verifiedserver\r\n' 10:34:27.777322 Received DATA (on stdin) 10:34:27.777477 > 53 bytes data, server => client 10:34:27.777556 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:34:27.778183 < 6 bytes data, client => server 10:34:27.778320 'HELP\r\n' 10:34:27.779402 Received DATA (on stdin) 10:34:27.779558 > 22 bytes data, server => client 10:34:27.779697 '214 WE ROOLZ: 120358\r\n' 10:34:27.780736 < 6 bytes data, client => server 10:34:27.780944 'QUIT\r\n' 10:34:27.782205 Received DATA (on stdin) 10:34:27.782457 > 35 bytes data, server => client 10:34:27.782611 '221 curl ESMTP server signing off\r\n' 10:34:27.787050 ====> Client disconnect 10:34:27.787776 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3007 From: different To: another body === End of file stdin-for-3007 === Start of file valgrind3007 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3007 test 3004...[SMTP multiple and invalid (middle) --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3004 ../src/curl -q --output log/5/curl3004.out --include --trace-ascii log/5/trace3004 --trace-time smtp://127.0.0.1:34989/3004 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/5/stdout3004 2> log/5/stderr3004 3004: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 3004 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3004 ../src/curl -q --output log/5/curl3004.out --include --trace-ascii log/5/trace3004 --trace-time smtp://127.0.0.1:34989/3004 --mail-rcpt-allowfails --mail-rcpt recipient.one@examCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3006 ../src/curl -q --output log/6/curl3006.out --include --trace-ascii log/6/trace3006 --trace-time smtp://127.0.0.1:42767/3006 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt invalid.two --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/6/stdout3006 2> log/6/stderr3006 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3005 ../src/curl -q --output log/7/curl3005.out --include --trace-ascii log/7/trace3005 --trace-time smtp://127.0.0.1:45189/3005 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/7/stdout3005 2> log/7/stderr3005 ple.com --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T - log/5/stdout3004 2> log/5/stderr3004 === End of file commands.log === Start of file server.cmd Testnum 3004 === End of file server.cmd === Start of file smtp_server.log 10:34:27.993996 ====> Client connect 10:34:27.995300 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:28.001893 < "EHLO verifiedserver" 10:34:28.004043 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:34:28.007104 < "HELP" 10:34:28.008943 > "214 WE ROOLZ: 120432[CR][LF]" 10:34:28.009454 return proof we are we 10:34:28.018273 < "QUIT" 10:34:28.020461 > "221 curl ESMTP server signing off[CR][LF]" 10:34:28.027508 MAIN sockfilt said DISC 10:34:28.028079 ====> Client disconnected 10:34:28.028815 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:34:27.660138 ====> Client connect 10:34:27.663951 Received DATA (on stdin) 10:34:27.664272 > 160 bytes data, server => client 10:34:27.664540 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:27.664696 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:27.664790 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:27.665622 < 21 bytes data, client => server 10:34:27.665860 'EHLO verifiedserver\r\n' 10:34:27.670265 Received DATA (on stdin) 10:34:27.670580 > 53 bytes data, server => client 10:34:27.671589 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:34:27.672777 < 6 bytes data, client => server 10:34:27.672990 'HELP\r\n' 10:34:27.674672 Received DATA (on stdin) 10:34:27.674881 > 22 bytes data, server => client 10:34:27.676890 '214 WE ROOLZ: 120432\r\n' 10:34:27.683799 < 6 bytes data, client => server 10:34:27.684075 'QUIT\r\n' 10:34:27.686648 Received DATA (on stdin) 10:34:27.686944 > 35 bytes data, server => client 10:34:27.687975 '221 curl ESMTP server signing off\r\n' 10:34:27.693301 ====> Client disconnect 10:34:27.695447 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3004 From: different To: another body === End of file stdin-for-3004 === Start of file valgrind3004 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3004 test 3006...[SMTP with multiple invalid (all) --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3006 ../src/curl -q --output log/6/curl3006.out --include --trace-ascii log/6/trace3006 --trace-time smtp://127.0.0.1:42767/3006 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt invalid.two --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/6/stdout3006 2> log/6/stderr3006 3006: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 3006 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3006 ../src/curl -q --output log/6/curl3006.out --include --trace-ascii log/6/trace3006 --trace-time smtp://127.0.0.1:42767/3006 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt invalid.two --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/6/stdout3006 2> log/6/stderr3006 === End of file commands.log === Start of file server.cmd Testnum 3006 === End of file server.cmd === Start of file smtp_server.log 10:34:28.080497 ====> Client connect 10:34:28.081917 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:28.084573 < "EHLO verifiedserver" 10:34:28.085131 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:34:28.087611 < "HELP" 10:34:28.088076 > "214 WE ROOLZ: 120427[CR][LF]" 10:34:28.088279 return proof we are we 10:34:28.090616 < "QUIT" 10:34:28.091252 > "221 curl ESMTP server signing off[CR][LF]" 10:34:28.094160 MAIN sockfilt said DISC 10:34:28.094591 ====> Client disconnected 10:34:28.095138 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:34:27.746818 ====> Client connect 10:34:27.748813 Received DATA (on stdin) 10:34:27.749079 > 160 bytes data, server => client 10:34:27.749185 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:27.749272 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:27.749341 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:27.750109 < 21 bytes data, client => server 10:34:27.750321 'EHLO verifiedserver\r\n' 10:34:27.752531 Received DATA (on stdin) 10:34:27.752772 > 53 bytes data, server => client 10:34:27.752885 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:34:27.753712 < 6 bytes data, client => server 10:34:27.753963 'HELP\r\n' 10:34:27.755014 Received DATA (on stdin) 10:34:27.755187 > 22 bytes data, server => client 10:34:27.755291 '214 WE ROOLZ: 120427\r\n' 10:34:27.756536 < 6 bytes data, client => server 10:34:27.756830 'QUIT\r\n' 10:34:27.758209 Received DATA (on stdin) 10:34:27.758486 > 35 bytes data, server => client 10:34:27.758624 '221 curl ESMTP server signing off\r\n' 10:34:27.760661 ====> Client disconnect 10:34:27.761557 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3006 From: different To: another body === End of file stdin-for-3006 === Start of file valgrind3006 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distributiCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3008 ../src/curl -q --trace-ascii log/2/trace3008 --trace-time http://127.0.0.1:43789/this/is/the/3008 -O --output-dir /build/curl/src/build-curl/tests/log/2 > log/2/stdout3008 2> log/2/stderr3008 on to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3006 test 3005...[SMTP multiple invalid (all but one) --mail-rcpt and --mail-rcpt-allowfails] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3005 ../src/curl -q --output log/7/curl3005.out --include --trace-ascii log/7/trace3005 --trace-time smtp://127.0.0.1:45189/3005 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/7/stdout3005 2> log/7/stderr3005 3005: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 3005 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3005 ../src/curl -q --output log/7/curl3005.out --include --trace-ascii log/7/trace3005 --trace-time smtp://127.0.0.1:45189/3005 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T - log/7/stdout3005 2> log/7/stderr3005 === End of file commands.log === Start of file server.cmd Testnum 3005 === End of file server.cmd === Start of file smtp_server.log 10:34:28.053431 ====> Client connect 10:34:28.054786 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:28.059528 < "EHLO verifiedserver" 10:34:28.060127 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:34:28.064079 < "HELP" 10:34:28.065418 > "214 WE ROOLZ: 120422[CR][LF]" 10:34:28.066139 return proof we are we 10:34:28.069440 < "QUIT" 10:34:28.071105 > "221 curl ESMTP server signing off[CR][LF]" 10:34:28.076053 MAIN sockfilt said DISC 10:34:28.077156 ====> Client disconnected 10:34:28.077854 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:34:27.719638 ====> Client connect 10:34:27.722150 Received DATA (on stdin) 10:34:27.722356 > 160 bytes data, server => client 10:34:27.722456 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:27.722537 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:27.722607 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:27.725330 < 21 bytes data, client => server 10:34:27.725607 'EHLO verifiedserver\r\n' 10:34:27.727535 Received DATA (on stdin) 10:34:27.727781 > 53 bytes data, server => client 10:34:27.727895 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:34:27.729935 < 6 bytes data, client => server 10:34:27.730168 'HELP\r\n' 10:34:27.731678 Received DATA (on stdin) 10:34:27.731967 > 22 bytes data, server => client 10:34:27.733610 '214 WE ROOLZ: 120422\r\n' 10:34:27.735168 < 6 bytes data, client => server 10:34:27.735424 'QUIT\r\n' 10:34:27.737097 Received DATA (on stdin) 10:34:27.737327 > 35 bytes data, server => client 10:34:27.737547 '221 curl ESMTP server signing off\r\n' 10:34:27.742610 ====> Client disconnect 10:34:27.743453 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3005 From: different To: another body === End of file stdin-for-3005 === Start of file valgrind3005 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3005 test 3008...[--output-dir] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3008 ../src/curl -q --trace-ascii log/2/trace3008 --trace-time http://127.0.0.1:43789/this/is/the/3008 -O --output-dir /build/curl/src/build-curl/tests/log/2 > log/2/stdout3008 2> log/2/stderr3008 3008: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 3008 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3008 ../src/curl -q --trace-ascii log/2/trace3008 --trace-time http://127.0.0.1:43789/this/is/the/3008 -O --output-dir /build/curl/src/build-curl/tests/log/2 > log/2/stdout3008 2> log/2/stderr3008 === End of file commands.log === Start of file http_server.log 10:34:28.216105 ====> Client connect 10:34:28.218049 accept_connection 3 returned 4 10:34:28.218400 accept_connection 3 returned 0 10:34:28.218589 Read 93 bytes 10:34:28.218695 Process 93 bytes request 10:34:28.218786 Got request: GET /verifiedserver HTTP/1.1 10:34:28.218896 Are-we-friendly question received 10:34:28.219151 Wrote request (93 bytes) input to log/2/server.input 10:34:28.219324 Identifying ourselves as friends 10:34:28.220143 Response sent (56 bytes) and written to log/2/server.response 10:34:28.220269 special request received, no persistency 10:34:28.220329 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60430 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 3008 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length:CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3009 ../src/curl -q --trace-ascii log/8/trace3009 --trace-time http://127.0.0.1:36007/this/is/the/3009 -O --output-dir /build/curl/src/build-curl/tests/not-there > log/8/stdout3009 2> log/8/stderr3009 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3010 ./libtest/libtests lib3010 127.0.0.1:41733/3010 > log/5/stdout3010 2> log/5/stderr3010 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind3008 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3008 test 3009...[--output-dir a non-existing directory] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3009 ../src/curl -q --trace-ascii log/8/trace3009 --trace-time http://127.0.0.1:36007/this/is/the/3009 -O --output-dir /build/curl/src/build-curl/tests/not-there > log/8/stdout3009 2> log/8/stderr3009 3009: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 3009 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3009 ../src/curl -q --trace-ascii log/8/trace3009 --trace-time http://127.0.0.1:36007/this/is/the/3009 -O --output-dir /build/curl/src/build-curl/tests/not-there > log/8/stdout3009 2> log/8/stderr3009 === End of file commands.log === Start of file http_server.log 10:34:28.305235 ====> Client connect 10:34:28.305552 accept_connection 3 returned 4 10:34:28.305741 accept_connection 3 returned 0 10:34:28.305856 Read 93 bytes 10:34:28.305935 Process 93 bytes request 10:34:28.306015 Got request: GET /verifiedserver HTTP/1.1 10:34:28.306076 Are-we-friendly question received 10:34:28.306292 Wrote request (93 bytes) input to log/8/server.input 10:34:28.306469 Identifying ourselves as friends 10:34:28.307178 Response sent (56 bytes) and written to log/8/server.response 10:34:28.307319 special request received, no persistency 10:34:28.307391 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 43028 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 3009 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind3009 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3009 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3011 ../src/curl -q --trace-ascii log/6/trace3011 --trace-time http://127.0.0.1:39357/this/is/the/3011 -O --output-dir /build/curl/src/build-curl/tests/log/6/tmp --create-dirs > log/6/stdout3011 2> log/6/stderr3011 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3012 ../src/curl -q --trace-ascii log/7/trace3012 --trace-time http://127.0.0.1:40129/this/is/the/3012 -OJR --output-dir /build/curl/src/build-curl/tests/log/7 > log/7/stdout3012 2> log/7/stderr3012 test 3010...[HTTP retry-after reset] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3010 ./libtest/libtests lib3010 127.0.0.1:41733/3010 > log/5/stdout3010 2> log/5/stderr3010 3010: stdout FAILED: --- log/5/check-expected 2025-09-11 10:34:29.603430596 +0000 +++ log/5/check-generated 2025-09-11 10:34:29.603430596 +0000 @@ -1,2 +0,0 @@ -Retry-After 2[LF] -Retry-After 0[LF] == Contents of files in the log/5/ dir after test 3010 === Start of file check-expected Retry-After 2[LF] Retry-After 0[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3010 ./libtest/libtests lib3010 127.0.0.1:41733/3010 > log/5/stdout3010 2> log/5/stderr3010 === End of file commands.log === Start of file http_server.log 10:34:29.610664 ====> Client connect 10:34:29.611043 accept_connection 3 returned 4 10:34:29.611281 accept_connection 3 returned 0 10:34:29.611435 Read 93 bytes 10:34:29.611522 Process 93 bytes request 10:34:29.611605 Got request: GET /verifiedserver HTTP/1.1 10:34:29.611674 Are-we-friendly question received 10:34:29.611940 Wrote request (93 bytes) input to log/5/server.input 10:34:29.612115 Identifying ourselves as friends 10:34:29.613161 Response sent (56 bytes) and written to log/5/server.response 10:34:29.613307 special request received, no persistency 10:34:29.613376 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 33152 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 3010 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind3010 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3010 test 3011...[--output-dir with --create-dirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3011 ../src/curl -q --trace-ascii log/6/trace3011 --trace-time http://127.0.0.1:39357/this/is/the/3011 -O --output-dir /build/curl/src/build-curl/tests/log/6/tmp --create-dirs > log/6/stdout3011 2> log/6/stderr3011 3011: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 3011 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3011 ../src/curl -q --trace-ascii log/6/trace3011 --trace-time http://127.0.0.1:39357/this/is/the/3011 -O --output-dir /build/curl/src/build-curl/tests/log/6/tmp --create-dirs > log/6/stdout3011 2> log/6/stderr3011 === End of file commands.log === Start of file http_server.log 10:34:28.665473 ====> Client connect 10:34:28.665851 accept_connection 3 returned 4 10:34:28.666063 accept_connection 3 returned 0 10:34:28.666208 Read 93 bytes 10:34:28.666320 Process 93 bytes request 10:34:28.666434 Got request: GET /verifiedserver HTTP/1.1 10:34:28.666551 Are-we-friendly question received 10:34:28.666851 Wrote request (93 bytes) input to log/6/server.input 10:34:28.667128 Identifying ourselves as friends 10:34:28.668099 Response sent (57 bytes) and written to log/6/server.response 10:34:28.668286 special request received, no persistency 10:34:28.668432 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 54400 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 3011 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind3011 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3011 test 3012...[--output-dir with -J and -R] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3012 ../src/curl -q --trace-ascii log/7/trace3012 --trace-time http://127.0.0.1:40129/this/is/the/3012 -OJR --output-dir /build/curl/src/build-curl/tests/logCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3013 ../src/curl -q --trace-ascii log/4/trace3013 --trace-time http://127.0.0.1:36757/this/is/the/3013 -O --output-dir /build/curl/src/build-curl/tests/log/4 http://127.0.0.1:36757/another/3013 -o second3013 --output-dir /build/curl/src/build-curl/tests/log/4 > log/4/stdout3013 2> log/4/stderr3013 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3014 ../src/curl -q --include --trace-ascii log/2/trace3014 --trace-time http://127.0.0.1:43789/1439 --write-out '%{num_headers}' > log/2/stdout3014 2> log/2/stderr3014 /7 > log/7/stdout3012 2> log/7/stderr3012 3012: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 3012 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3012 ../src/curl -q --trace-ascii log/7/trace3012 --trace-time http://127.0.0.1:40129/this/is/the/3012 -OJR --output-dir /build/curl/src/build-curl/tests/log/7 > log/7/stdout3012 2> log/7/stderr3012 === End of file commands.log === Start of file http_server.log 10:34:28.677995 ====> Client connect 10:34:28.678357 accept_connection 3 returned 4 10:34:28.678562 accept_connection 3 returned 0 10:34:28.678712 Read 93 bytes 10:34:28.678801 Process 93 bytes request 10:34:28.678893 Got request: GET /verifiedserver HTTP/1.1 10:34:28.679030 Are-we-friendly question received 10:34:28.679547 Wrote request (93 bytes) input to log/7/server.input 10:34:28.679828 Identifying ourselves as friends 10:34:28.680687 Response sent (56 bytes) and written to log/7/server.response 10:34:28.680854 special request received, no persistency 10:34:28.680937 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 41894 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 3012 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind3012 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3012 test 3013...[Two --output-dir with --next in between] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3013 ../src/curl -q --trace-ascii log/4/trace3013 --trace-time http://127.0.0.1:36757/this/is/the/3013 -O --output-dir /build/curl/src/build-curl/tests/log/4 http://127.0.0.1:36757/another/3013 -o second3013 --output-dir /build/curl/src/build-curl/tests/log/4 > log/4/stdout3013 2> log/4/stderr3013 3013: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 3013 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3013 ../src/curl -q --trace-ascii log/4/trace3013 --trace-time http://127.0.0.1:36757/this/is/the/3013 -O --output-dir /build/curl/src/build-curl/tests/log/4 http://127.0.0.1:36757/another/3013 -o second3013 --output-dir /build/curl/src/build-curl/tests/log/4 > log/4/stdout3013 2> log/4/stderr3013 === End of file commands.log === Start of file http_server.log 10:34:29.780918 ====> Client connect 10:34:29.781343 accept_connection 3 returned 4 10:34:29.781584 accept_connection 3 returned 0 10:34:29.781731 Read 93 bytes 10:34:29.781816 Process 93 bytes request 10:34:29.781966 Got request: GET /verifiedserver HTTP/1.1 10:34:29.782065 Are-we-friendly question received 10:34:29.782325 Wrote request (93 bytes) input to log/4/server.input 10:34:29.782528 Identifying ourselves as friends 10:34:29.783212 Response sent (56 bytes) and written to log/4/server.response 10:34:29.783328 special request received, no persistency 10:34:29.783394 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 45804 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 3013 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind3013 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3013 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3015 ../src/curl -q --include --trace-ascii log/8/trace3015 --trace-time http://127.0.0.1:36007/3015 -w "%{num_headers}\n" -L -o/dev/null > log/8/stdout3015 2> log/8/stderr3015 test 3014...[Check if %{num_headers} returns correct number of headers] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3014 ../src/curl -q --include --trace-ascii log/2/trace3014 --trace-time http://127.0.0.1:43789/1439 --write-out '%{num_headers}' > log/2/stdout3014 2> log/2/stderr3014 3014: stdout FAILED: --- log/2/check-expected 2025-09-11 10:34:30.067439833 +0000 +++ log/2/check-generated 2025-09-11 10:34:30.067439833 +0000 @@ -1,8 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 9[LF] -Connection: close[LF] -Content-Type: text/plain[LF] -[LF] -testdata[LF] -4 == Contents of files in the log/2/ dir after test 3014 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 9[LF] Connection: close[LF] Content-Type: text/plain[LF] [LF] testdata[LF] 4 === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3014 ../src/curl -q --include --trace-ascii log/2/trace3014 --trace-time http://127.0.0.1:43789/1439 --write-out '%{num_headers}' > log/2/stdout3014 2> log/2/stderr3014 === End of file commands.log === Start of file http_server.log 10:34:29.046981 ====> Client connect 10:34:29.047306 accept_connection 3 returned 4 10:34:29.047482 accept_connection 3 returned 0 10:34:29.047600 Read 93 bytes 10:34:29.047684 Process 93 bytes request 10:34:29.047764 Got request: GET /verifiedserver HTTP/1.1 10:34:29.047825 Are-we-friendly question received 10:34:29.048022 Wrote request (93 bytes) input to log/2/server.input 10:34:29.048181 Identifying ourselves as friends 10:34:29.048959 Response sent (56 bytes) and written to log/2/server.response 10:34:29.049165 special request received, no persistency 10:34:29.049243 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 60444 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 3014 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind3014 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3014 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3016 ../src/curl -q --output log/5/curl3016.out --include --trace-ascii log/5/trace3016 --trace-time file:///build/curl/src/build-curl/tests/ > log/5/stdout3016 2> log/5/stderr3016 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3018 ../src/curl -q --output log/7/curl3018.out --include --trace log/7/trace3018 --trace-time mqtt://127.0.0.1:33835/3018 --max-filesize 11 > log/7/stdout3018 2> log/7/stderr3018 test 3015...[HTTP GET -w num_headers with redirected fetch (2 connects)] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3015 ../src/curl -q --include --trace-ascii log/8/trace3015 --trace-time http://127.0.0.1:36007/3015 -w "%{num_headers}\n" -L -o/dev/null > log/8/stdout3015 2> log/8/stderr3015 3015: stdout FAILED: --- log/8/check-expected 2025-09-11 10:34:30.207442620 +0000 +++ log/8/check-generated 2025-09-11 10:34:30.207442620 +0000 @@ -1 +0,0 @@ -4[CR][LF] == Contents of files in the log/8/ dir after test 3015 === Start of file check-expected 4[CR][LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3015 ../src/curl -q --include --trace-ascii log/8/trace3015 --trace-time http://127.0.0.1:36007/3015 -w "%{num_headers}\n" -L -o/dev/null > log/8/stdout3015 2> log/8/stderr3015 === End of file commands.log === Start of file http_server.log 10:34:29.121777 ====> Client connect 10:34:29.128917 accept_connection 3 returned 4 10:34:29.129149 accept_connection 3 returned 0 10:34:29.129297 Read 93 bytes 10:34:29.129396 Process 93 bytes request 10:34:29.129499 Got request: GET /verifiedserver HTTP/1.1 10:34:29.129586 Are-we-friendly question received 10:34:29.129846 Wrote request (93 bytes) input to log/8/server.input 10:34:29.130057 Identifying ourselves as friends 10:34:29.130789 Response sent (56 bytes) and written to log/8/server.response 10:34:29.130938 special request received, no persistency 10:34:29.131013 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 43044 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 3015 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind3015 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3015 test 3016...[GET a directory using file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3016 ../src/curl -q --output log/5/curl3016.out --include --trace-ascii log/5/trace3016 --trace-time file:///build/curl/src/build-curl/tests/ > log/5/stdout3016 2> log/5/stderr3016 curl returned 1, when expecting 0 3016: exit FAILED == Contents of files in the log/5/ dir after test 3016 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3016 ../src/curl -q --output log/5/curl3016.out --include --trace-ascii log/5/trace3016 --trace-time file:///build/curl/src/build-curl/tests/ > log/5/stdout3016 2> log/5/stderr3016 === End of file commands.log === Start of file server.cmd Testnum 3016 === End of file server.cmd === Start of file valgrind3016 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3016 test 3018...[MQTT SUBSCRIBE with PUBLISH larger than --max-filesize] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3018 ../src/curl -q --output log/7/curl3018.out --include --trace log/7/trace3018 --trace-time mqtt://127.0.0.1:33835/3018 --max-filesize 11 > log/7/stdout3018 2> log/7/stderr3018 3018: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 3018 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3018 ../src/curl -q --output log/7/curl3018.out --include --trace log/7/trace3018 --trace-time mqtt://127.0.0.1:33835/3018 --max-filesize 11 > log/7/stdout3018 2> log/7/stderr3018 === End of file commands.log === Start of file server.cmd Testnum 3018 === End of file server.cmd === Start of file valgrind3018 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3017 ../src/curl -q --output log/6/curl3017.out --include --trace log/6/trace3017 --trace-time mqtt://127.0.0.1:40257/3017 -m 3 > log/6/stdout3017 2> log/6/stderr3017 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3019 ../src/curl -q --output log/4/curl3019.out --include --trace-ascii log/4/trace3019 --trace-time --resolve 36757:example.com:127.0.0.1 http://example.com:36757/3019 > log/4/stdout3019 2> log/4/stderr3019 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3026 ./libtest/libtests lib3026 - > log/5/stdout3026 2> log/5/stderr3026 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3020 ../src/curl -q --output log/2/curl3020.out --include --trace-ascii log/2/trace3020 --trace-time --connect-to ::example.com:example.com http://example.com:43789/3020 > log/2/stdout3020 2> log/2/stderr3020 ginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3018 test 3017...[MQTT SUBSCRIBE with pathological PUBLISH length] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3017 ../src/curl -q --output log/6/curl3017.out --include --trace log/6/trace3017 --trace-time mqtt://127.0.0.1:40257/3017 -m 3 > log/6/stdout3017 2> log/6/stderr3017 3017: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 3017 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3017 ../src/curl -q --output log/6/curl3017.out --include --trace log/6/trace3017 --trace-time mqtt://127.0.0.1:40257/3017 -m 3 > log/6/stdout3017 2> log/6/stderr3017 === End of file commands.log === Start of file server.cmd excessive-remaining TRUE Testnum 3017 === End of file server.cmd === Start of file valgrind3017 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3017 test 3019...[HTTP with invalid --resolve syntax] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3019 ../src/curl -q --output log/4/curl3019.out --include --trace-ascii log/4/trace3019 --trace-time --resolve 36757:example.com:127.0.0.1 http://example.com:36757/3019 > log/4/stdout3019 2> log/4/stderr3019 curl returned 1, when expecting 49 3019: exit FAILED == Contents of files in the log/4/ dir after test 3019 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3019 ../src/curl -q --output log/4/curl3019.out --include --trace-ascii log/4/trace3019 --trace-time --resolve 36757:example.com:127.0.0.1 http://example.com:36757/3019 > log/4/stdout3019 2> log/4/stderr3019 === End of file commands.log === Start of file http_server.log 10:34:30.692315 ====> Client connect 10:34:30.692888 accept_connection 3 returned 4 10:34:30.693337 accept_connection 3 returned 0 10:34:30.693517 Read 93 bytes 10:34:30.693636 Process 93 bytes request 10:34:30.693735 Got request: GET /verifiedserver HTTP/1.1 10:34:30.693826 Are-we-friendly question received 10:34:30.694169 Wrote request (93 bytes) input to log/4/server.input 10:34:30.695788 Identifying ourselves as friends 10:34:30.700852 Response sent (56 bytes) and written to log/4/server.response 10:34:30.701060 special request received, no persistency 10:34:30.701162 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 45818 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 3019 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind3019 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3019 test 3026...[curl_global_init thread-safety] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3026 ./libtest/libtests lib3026 - > log/5/stdout3026 2> log/5/stderr3026 libtests returned 1, when expecting 0 3026: exit FAILED == Contents of files in the log/5/ dir after test 3026 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3026 ./libtest/libtests lib3026 - > log/5/stdout3026 2> log/5/stderr3026 === End of file commands.log === Start of file server.cmd Testnum 3026 === End of file server.cmd === Start of file valgrind3026 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platformCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3025 ./libtest/libtests lib3025 http://127.0.0.1:36007/3025 > log/8/stdout3025 2> log/8/stderr3025 -tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3026 test 3020...[HTTP with invalid --connect-to syntax] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3020 ../src/curl -q --output log/2/curl3020.out --include --trace-ascii log/2/trace3020 --trace-time --connect-to ::example.com:example.com http://example.com:43789/3020 > log/2/stdout3020 2> log/2/stderr3020 curl returned 1, when expecting 49 3020: exit FAILED == Contents of files in the log/2/ dir after test 3020 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3020 ../src/curl -q --output log/2/curl3020.out --include --trace-ascii log/2/trace3020 --trace-time --connect-to ::example.com:example.com http://example.com:43789/3020 > log/2/stdout3020 2> log/2/stderr3020 === End of file commands.log === Start of file http_server.log 10:34:29.932536 ====> Client connect 10:34:29.933823 accept_connection 3 returned 4 10:34:29.934076 accept_connection 3 returned 0 10:34:29.934203 Read 93 bytes 10:34:29.934297 Process 93 bytes request 10:34:29.934389 Got request: GET /verifiedserver HTTP/1.1 10:34:29.934465 Are-we-friendly question received 10:34:29.934697 Wrote request (93 bytes) input to log/2/server.input 10:34:29.934884 Identifying ourselves as friends 10:34:29.935595 Response sent (56 bytes) and written to log/2/server.response 10:34:29.935745 special request received, no persistency 10:34:29.935817 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 40216 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 3020 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind3020 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3020 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3027 ./libtest/libtests lib3027 ftp://127.0.0.1:38253/3027 > log/7/stdout3027 2> log/7/stderr3027 test 3025...[CURLOPT_HTTP200ALIASES] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3025 ./libtest/libtests lib3025 http://127.0.0.1:36007/3025 > log/8/stdout3025 2> log/8/stderr3025 3025: data FAILED: --- log/8/check-expected 2025-09-11 10:34:31.059459580 +0000 +++ log/8/check-generated 2025-09-11 10:34:31.059459580 +0000 @@ -1,4 +0,0 @@ -ICY 200 OK[LF] -Content-Length: 7[LF] -[LF] -MooMoo[LF] == Contents of files in the log/8/ dir after test 3025 === Start of file check-expected ICY 200 OK[LF] Content-Length: 7[LF] [LF] MooMoo[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3025 ./libtest/libtests lib3025 http://127.0.0.1:36007/3025 > log/8/stdout3025 2> log/8/stderr3025 === End of file commands.log === Start of file http_server.log 10:34:30.066819 ====> Client connect 10:34:30.067320 accept_connection 3 returned 4 10:34:30.067551 accept_connection 3 returned 0 10:34:30.067709 Read 93 bytes 10:34:30.067802 Process 93 bytes request 10:34:30.067892 Got request: GET /verifiedserver HTTP/1.1 10:34:30.067964 Are-we-friendly question received 10:34:30.068201 Wrote request (93 bytes) input to log/8/server.input 10:34:30.068467 Identifying ourselves as friends 10:34:30.069354 Response sent (56 bytes) and written to log/8/server.response 10:34:30.069543 special request received, no persistency 10:34:30.069636 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 56726 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 3025 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind3025 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3025 test 3027...[Get a file via FTP but 550 after MDTM command] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3027 ./libtest/libtests lib3027 ftp://127.0.0.1:38253/3027 > log/7/stdout3027 2> log/7/stderr3027 3027: protocol FAILED! There was no content at all in the file log/7/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/7/ dir after test 3027 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3027 ./libtest/libtests lib3027 ftp://127.0.0.1:38253/3027 > log/7/stdout3027 2> log/7/stderr3027 === End of file commands.log === Start of file ftp_server.log 10:34:30.539899 ====> Client connect 10:34:30.541420 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:30.547563 < "USER anonymous" 10:34:30.548153 > "331 We are happy you popped in![CR][LF]" 10:34:30.550593 < "PASS ftp@example.com" 10:34:30.551088 > "230 Welcome you silly person[CR][LF]" 10:34:30.558289 < "PWD" 10:34:30.558765 > "257 "/" is current directory[CR][LF]" 10:34:30.560928 < "EPSV" 10:34:30.561384 ====> Passive DATA channel requested by client 10:34:30.561775 DATA sockfilt for passive data channel starting... 10:34:30.579063 DATA sockfilt for passive data channel started (pid 168339) 10:34:30.586038 DATA sockfilt for passive data channel listens on port 40989 10:34:30.586696 > "229 Entering Passive Mode (|||40989|)[LF]" 10:34:30.587023 Client has been notified that DATA conn will be accepted on port 40989 10:34:30.594650 Client connects to port 40989 10:34:30.595246 ====> Client established passive DATA connection on port 40989 10:34:30.596273 < "TYPE I" 10:34:30.596840 > "200 I modify TYPE as you wanted[CR][LF]" 10:34:30.598865 < "SIZE verifiedserver" 10:34:30.599485 > "213 17[CR][LF]" 10:34:30.605245 < "RETR verifiedserver" 10:34:30.606021 > "150 Binary junk (17 bytes).[CR][LF]" 10:34:30.607140 =====> Closing passive DATA connection... 10:34:30.607553 Server disconnects passive DATA connection 10:34:30.609272 Server disconnected passive DATA connection 10:34:30.609984 DATA sockfilt for passive data channel quits (pid 168339) 10:34:30.612357 DATA sockfilt for passive data channel quit (pid 168339) 10:34:30.612844 =====> Closed passive DATA connection 10:34:30.613567 > "226 File transfer complete[CR][LF]" 10:34:30.655039 < "QUIT" 10:34:30.655602 > "221 bye bye baby[CR][LF]" 10:34:30.656817 MAIN sockfilt said DISC 10:34:30.657296 ====> Client disconnected 10:34:30.658753 Awaiting input === End of file ftp_server.log === Start of file ftp_sockctrl.log 10:34:31.206135 ====> Client connect 10:34:31.208994 Received DATA (on stdin) 10:34:31.209206 > 160 bytes data, server => client 10:34:31.209316 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:31.209405 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:31.209475 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:31.211384 < 16 bytes data, client => server 10:34:31.211602 'USER anonymous\r\n' 10:34:31.215016 Received DATA (on stdin) 10:34:31.215246 > 33 bytes data, server => client 10:34:31.215346 '331 We are happy you popped in!\r\n' 10:34:31.216555 < 22 bytes data, client => server 10:34:31.216765 'PASS ftp@example.com\r\n' 10:34:31.217956 Received DATA (on stdin) 10:34:31.218133 > 30 bytes data, server => client 10:34:31.218218 '230 Welcome you silly person\r\n' 10:34:31.218906 < 5 bytes data, client => server 10:34:31.219126 'PWD\r\n' 10:34:31.225667 Received DATA (on stdin) 10:34:31.225843 > 30 bytes data, server => client 10:34:31.225946 '257 "/" is current directory\r\n' 10:34:31.226940 < 6 bytes data, client => server 10:34:31.227165 'EPSV\r\n' 10:34:31.254148 Received DATA (on stdin) 10:34:31.254368 > 38 bytes data, server => client 10:34:31.254474 '229 Entering Passive Mode (|||40989|)\n' 10:34CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3028 ../src/curl -q --output log/6/curl3028.out --include --trace-ascii log/6/trace3028 --trace-time --haproxy-protocol http://127.0.0.1:39357/page --proxytunnel -x 127.0.0.1:33453 > log/6/stdout3028 2> log/6/stderr3028 :31.260524 < 8 bytes data, client => server 10:34:31.260768 'TYPE I\r\n' 10:34:31.263764 Received DATA (on stdin) 10:34:31.263960 > 33 bytes data, server => client 10:34:31.264071 '200 I modify TYPE as you wanted\r\n' 10:34:31.264952 < 21 bytes data, client => server 10:34:31.265243 'SIZE verifiedserver\r\n' 10:34:31.266416 Received DATA (on stdin) 10:34:31.266649 > 8 bytes data, server => client 10:34:31.266765 '213 17\r\n' 10:34:31.271257 < 21 bytes data, client => server 10:34:31.271542 'RETR verifiedserver\r\n' 10:34:31.274730 Received DATA (on stdin) 10:34:31.274955 > 29 bytes data, server => client 10:34:31.275036 '150 Binary junk (17 bytes).\r\n' 10:34:31.280757 Received DATA (on stdin) 10:34:31.280992 > 28 bytes data, server => client 10:34:31.281133 '226 File transfer complete\r\n' 10:34:31.320535 < 6 bytes data, client => server 10:34:31.320734 'QUIT\r\n' 10:34:31.322487 Received DATA (on stdin) 10:34:31.322697 > 18 bytes data, server => client 10:34:31.322784 '221 bye bye baby\r\n' 10:34:31.323363 ====> Client disconnect 10:34:31.324204 Received ACKD (on stdin) === End of file ftp_sockctrl.log === Start of file ftp_sockdata.log 10:34:30.239623 Running IPv4 version 10:34:30.240290 Listening on port 40989 10:34:30.241005 Wrote pid 168339 to log/7/server/ftp_sockdata.pid 10:34:30.245368 Received PING (on stdin) 10:34:30.246542 Received PORT (on stdin) 10:34:30.257420 ====> Client connect 10:34:30.274897 Received DATA (on stdin) 10:34:30.275030 > 17 bytes data, server => client 10:34:30.275125 'WE ROOLZ: 79543\r\n' 10:34:30.275398 Received DISC (on stdin) 10:34:30.275624 ====> Client forcibly disconnected 10:34:30.277442 Received QUIT (on stdin) 10:34:30.277682 quits 10:34:30.278167 ============> sockfilt quits === End of file ftp_sockdata.log === Start of file server.cmd REPLY MDTM 550 Permission denied Testnum 3027 === End of file server.cmd === Start of file valgrind3027 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3027 test 3028...[HTTP GET when PROXY Protocol enabled behind a proxy] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3028 ../src/curl -q --output log/6/curl3028.out --include --trace-ascii log/6/trace3028 --trace-time --haproxy-protocol http://127.0.0.1:39357/page --proxytunnel -x 127.0.0.1:33453 > log/6/stdout3028 2> log/6/stderr3028 3028: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 3028 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3028 ../src/curl -q --output log/6/curl3028.out --include --trace-ascii log/6/trace3028 --trace-time --haproxy-protocol http://127.0.0.1:39357/page --proxytunnel -x 127.0.0.1:33453 > log/6/stdout3028 2> log/6/stderr3028 === End of file commands.log === Start of file http2_server.log 10:34:31.392621 ====> Client connect 10:34:31.392947 accept_connection 3 returned 4 10:34:31.393110 accept_connection 3 returned 0 10:34:31.393219 Read 93 bytes 10:34:31.393303 Process 93 bytes request 10:34:31.393391 Got request: GET /verifiedserver HTTP/1.1 10:34:31.393454 Are-we-friendly question received 10:34:31.393661 Wrote request (93 bytes) input to log/6/proxy.input 10:34:31.393798 Identifying ourselves as friends 10:34:31.394355 Response sent (56 bytes) and written to log/6/proxy.response 10:34:31.394479 special request received, no persistency 10:34:31.394541 ====> Client disconnect 0 === End of file http2_server.log === Start of file http2_verify.log * Trying 127.0.0.1:33453... * Established connection to 127.0.0.1 (127.0.0.1 port 33453) from 127.0.0.1 port 38050 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:33453 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:33453 left intact === End of file http2_verify.log === Start of file http2_verify.out WE ROOLZ: 90171 === End of file http2_verify.out === Start of file http_server.log 10:34:30.258989 ====> Client connect 10:34:30.259385 accept_connection 3 returned 4 10:34:30.259650 accept_connection 3 returned 0 10:34:30.259832 Read 93 bytes 10:34:30.259965 Process 93 bytes request 10:34:30.260083 Got request: GET /verifiedserver HTTP/1.1 10:34:30.260174 Are-we-friendly question received 10:34:30.260621 Wrote request (93 bytes) input to log/6/server.input 10:34:30.260884 Identifying ourselves as friends 10:34:30.261885 Response sent (57 bytes) and written to log/6/server.response 10:34:30.262025 special request received, no persistency 10:34:30.262115 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 44300 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file proxy.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 90171 === End of file proxy.response === Start of file server.cmd Testnum 3028 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind3028 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this plCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3029 ../src/curl -q --output log/4/curl3029.out --include --trace-ascii log/4/trace3029 --trace-time -D log/4/heads3029 http://127.0.0.1:36757/3029 http://127.0.0.1:36757/3029 --next -D log/4/heads3029 http://127.0.0.1:36757/3029 > log/4/stdout3029 2> log/4/stderr3029 atform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3028 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3030 ../src/curl -q --output log/5/curl3030.out --include --trace-ascii log/5/trace3030 --trace-time -D log/5/heads3030 http://127.0.0.1:41733/3030 http://127.0.0.1:41733/3030 > log/5/stdout3030 2> log/5/stderr3030 test 3029...[HTTP with multiple -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3029 ../src/curl -q --output log/4/curl3029.out --include --trace-ascii log/4/trace3029 --trace-time -D log/4/heads3029 http://127.0.0.1:36757/3029 http://127.0.0.1:36757/3029 --next -D log/4/heads3029 http://127.0.0.1:36757/3029 > log/4/stdout3029 2> log/4/stderr3029 3029: data FAILED: --- log/4/check-expected 2025-09-11 10:34:31.591470170 +0000 +++ log/4/check-generated 2025-09-11 10:34:31.591470170 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 6[LF] -[LF] --foo-[LF] == Contents of files in the log/4/ dir after test 3029 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 6[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3029 ../src/curl -q --output log/4/curl3029.out --include --trace-ascii log/4/trace3029 --trace-time -D log/4/heads3029 http://127.0.0.1:36757/3029 http://127.0.0.1:36757/3029 --next -D log/4/heads3029 http://127.0.0.1:36757/3029 > log/4/stdout3029 2> log/4/stderr3029 === End of file commands.log === Start of file http_server.log 10:34:31.523398 ====> Client connect 10:34:31.523707 accept_connection 3 returned 4 10:34:31.523889 accept_connection 3 returned 0 10:34:31.524006 Read 93 bytes 10:34:31.524080 Process 93 bytes request 10:34:31.524159 Got request: GET /verifiedserver HTTP/1.1 10:34:31.524223 Are-we-friendly question received 10:34:31.524563 Wrote request (93 bytes) input to log/4/server.input 10:34:31.524765 Identifying ourselves as friends 10:34:31.525444 Response sent (56 bytes) and written to log/4/server.response 10:34:31.525578 special request received, no persistency 10:34:31.525641 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36757... * Established connection to 127.0.0.1 (127.0.0.1 port 36757) from 127.0.0.1 port 35298 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36757 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36757 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73520 === End of file http_verify.out === Start of file server.cmd Testnum 3029 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73520 === End of file server.response === Start of file valgrind3029 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3029 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3031 ../src/curl -q --output log/2/curl3031.out --include --trace-ascii log/2/trace3031 --trace-time http://127.0.0.1:43789/this/is/the/3031 --dump-header /build/curl/src/build-curl/tests/log/2/tmp/out.txt --create-dirs > log/2/stdout3031 2> log/2/stderr3031 test 3030...[HTTP with multiple transfers in one -D] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3030 ../src/curl -q --output log/5/curl3030.out --include --trace-ascii log/5/trace3030 --trace-time -D log/5/heads3030 http://127.0.0.1:41733/3030 http://127.0.0.1:41733/3030 > log/5/stdout3030 2> log/5/stderr3030 3030: data FAILED: --- log/5/check-expected 2025-09-11 10:34:31.751473355 +0000 +++ log/5/check-generated 2025-09-11 10:34:31.751473355 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK[LF] -Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] -Content-Length: 6[LF] -[LF] --foo-[LF] == Contents of files in the log/5/ dir after test 3030 === Start of file check-expected HTTP/1.1 200 OK[LF] Date: Tue, 09 Nov 2010 14:49:00 GMT[LF] Content-Length: 6[LF] [LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3030 ../src/curl -q --output log/5/curl3030.out --include --trace-ascii log/5/trace3030 --trace-time -D log/5/heads3030 http://127.0.0.1:41733/3030 http://127.0.0.1:41733/3030 > log/5/stdout3030 2> log/5/stderr3030 === End of file commands.log === Start of file http_server.log 10:34:31.739948 ====> Client connect 10:34:31.740317 accept_connection 3 returned 4 10:34:31.740686 accept_connection 3 returned 0 10:34:31.740917 Read 93 bytes 10:34:31.741053 Process 93 bytes request 10:34:31.741168 Got request: GET /verifiedserver HTTP/1.1 10:34:31.741266 Are-we-friendly question received 10:34:31.741562 Wrote request (93 bytes) input to log/5/server.input 10:34:31.741836 Identifying ourselves as friends 10:34:31.742654 Response sent (56 bytes) and written to log/5/server.response 10:34:31.742815 special request received, no persistency 10:34:31.742895 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 47278 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 3030 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind3030 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3030 test 3031...[--output-dir with --create-dirs] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3031 ../src/curl -q --output log/2/curl3031.out --include --trace-ascii log/2/trace3031 --trace-time http://127.0.0.1:43789/this/is/the/3031 --dump-header /build/curl/src/build-curl/tests/log/2/tmp/out.txt --create-dirs > log/2/stdout3031 2> log/2/stderr3031 3031: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 3031 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3031 ../src/curl -q --output log/2/curl3031.out --include --trace-ascii log/2/trace3031 --trace-time http://127.0.0.1:43789/this/is/the/3031 --dump-header /build/curl/src/build-curl/tests/log/2/tmp/out.txt --create-dirs > log/2/stdout3031 2> log/2/stderr3031 === End of file commands.log === Start of file http_server.log 10:34:30.754688 ====> Client connect 10:34:30.755136 accept_connection 3 returned 4 10:34:30.755307 accept_connection 3 returned 0 10:34:30.755437 Read 93 bytes 10:34:30.755514 Process 93 bytes request 10:34:30.755599 Got request: GET /verifiedserver HTTP/1.1 10:34:30.755667 Are-we-friendly question received 10:34:30.755870 Wrote request (93 bytes) input to log/2/server.input 10:34:30.756037 Identifying ourselves as friends 10:34:30.757049 Response sent (56 bytes) and written to log/2/server.response 10:34:30.757183 special request received, no persistency 10:34:30.757256 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 40226 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 3031 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind3031 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3032 ../src/curl -q --output log/8/curl3032.out --include --trace-ascii log/8/trace3032 --trace-time --location http://127.0.0.1:36007/3032 > log/8/stdout3032 2> log/8/stderr3032 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3033 ./libtest/libtests lib3033 http://127.0.0.1:40129/3033 > log/7/stdout3033 2> log/7/stderr3033 ). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3031 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http2-server.pl --port 32849 --port2 41263 --nghttpx "nghttpx" --pidfile "log/1/server/http_v2_server.pid" --logfile "log/1/http_v2_server.log" --logdir "log/1" --connect 127.0.0.1:42781 startnew: child process has died, server might start up RUN: failed to start the HTTP/2 server test 3032...[HTTP redirect loop 3x swsbounce test] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3032 ../src/curl -q --output log/8/curl3032.out --include --trace-ascii log/8/trace3032 --trace-time --location http://127.0.0.1:36007/3032 > log/8/stdout3032 2> log/8/stderr3032 3032: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 3032 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3032 ../src/curl -q --output log/8/curl3032.out --include --trace-ascii log/8/trace3032 --trace-time --location http://127.0.0.1:36007/3032 > log/8/stdout3032 2> log/8/stderr3032 === End of file commands.log === Start of file http_server.log 10:34:30.904064 ====> Client connect 10:34:30.904461 accept_connection 3 returned 4 10:34:30.904645 accept_connection 3 returned 0 10:34:30.904773 Read 93 bytes 10:34:30.904862 Process 93 bytes request 10:34:30.904942 Got request: GET /verifiedserver HTTP/1.1 10:34:30.905006 Are-we-friendly question received 10:34:30.905219 Wrote request (93 bytes) input to log/8/server.input 10:34:30.905419 Identifying ourselves as friends 10:34:30.906037 Response sent (56 bytes) and written to log/8/server.response 10:34:30.906178 special request received, no persistency 10:34:30.906240 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:36007... * Established connection to 127.0.0.1 (127.0.0.1 port 36007) from 127.0.0.1 port 56736 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:36007 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:36007 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73516 === End of file http_verify.out === Start of file server.cmd Testnum 3032 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73516 === End of file server.response === Start of file valgrind3032 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3032 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3034 ./libtest/libtests lib3034 http://127.0.0.1:39357/3034 > log/6/stdout3034 2> log/6/stderr3034 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3100 ./libtest/libtests lib3100 rtsp://127.0.0.1:42113/3100 > log/4/stdout3100 2> log/4/stderr3100 test 3033...[CURLOPT_FRESH_CONNECT=2] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3033 ./libtest/libtests lib3033 http://127.0.0.1:40129/3033 > log/7/stdout3033 2> log/7/stderr3033 3033: data FAILED: --- log/7/check-expected 2025-09-11 10:34:32.219482671 +0000 +++ log/7/check-generated 2025-09-11 10:34:32.219482671 +0000 @@ -1,6 +0,0 @@ -[0] no network change[LF] --foo-[LF] -[1] signal network change[LF] --foo-[LF] -[2] no network change[LF] --foo-[LF] == Contents of files in the log/7/ dir after test 3033 === Start of file check-expected [0] no network change[LF] -foo-[LF] [1] signal network change[LF] -foo-[LF] [2] no network change[LF] -foo-[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3033 ./libtest/libtests lib3033 http://127.0.0.1:40129/3033 > log/7/stdout3033 2> log/7/stderr3033 === End of file commands.log === Start of file http_server.log 10:34:31.133725 ====> Client connect 10:34:31.134300 accept_connection 3 returned 4 10:34:31.134650 accept_connection 3 returned 0 10:34:31.135858 Read 93 bytes 10:34:31.136118 Process 93 bytes request 10:34:31.136303 Got request: GET /verifiedserver HTTP/1.1 10:34:31.136524 Are-we-friendly question received 10:34:31.136856 Wrote request (93 bytes) input to log/7/server.input 10:34:31.137216 Identifying ourselves as friends 10:34:31.138176 Response sent (56 bytes) and written to log/7/server.response 10:34:31.138379 special request received, no persistency 10:34:31.138506 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:40129... * Established connection to 127.0.0.1 (127.0.0.1 port 40129) from 127.0.0.1 port 51794 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:40129 > User-Agent: curl/8.16.0 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:40129 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73517 === End of file http_verify.out === Start of file server.cmd Testnum 3033 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73517 === End of file server.response === Start of file valgrind3033 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3033 test 3034...[Test reset resolves rewind failure] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3034 ./libtest/libtests lib3034 http://127.0.0.1:39357/3034 > log/6/stdout3034 2> log/6/stderr3034 libtests returned 1, when expecting 0 3034: exit FAILED == Contents of files in the log/6/ dir after test 3034 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3034 ./libtest/libtests lib3034 http://127.0.0.1:39357/3034 > log/6/stdout3034 2> log/6/stderr3034 === End of file commands.log === Start of file http_server.log 10:34:31.295810 ====> Client connect 10:34:31.296098 accept_connection 3 returned 4 10:34:31.296270 accept_connection 3 returned 0 10:34:31.296479 Read 93 bytes 10:34:31.296565 Process 93 bytes request 10:34:31.296661 Got request: GET /verifiedserver HTTP/1.1 10:34:31.296727 Are-we-friendly question received 10:34:31.296919 Wrote request (93 bytes) input to log/6/server.input 10:34:31.297056 Identifying ourselves as friends 10:34:31.297595 Response sent (57 bytes) and written to log/6/server.response 10:34:31.297707 special request received, no persistency 10:34:31.297767 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 44314 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [1 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 3034 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind3034 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3034 startnew: /usr/bin/perl -I. -I/build/curl/src/curl/tests /build/curl/src/curl/tests/http3-server.pl --port 35123 --nghttpx "nghttpx" --pidfile "log/3/server/http_v3_server.pid" --logfile "log/3/http_v3_server.log" --logdir "log/3" --connect 127.0.0.1:36933 startnew: child process has died, server might start up RUN: failed to start the HTTP/3 server test 2502 SKIPPED: failed starting HTTP/3 server test 3100...[RTSP Authentication check] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/buCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3104 ./libtest/libtests lib3104 http://127.0.0.1:43789/3104 > log/2/stdout3104 2> log/2/stderr3104 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3103 ./libtest/libtests lib3103 http://127.0.0.1:42781/3103 > log/1/stdout3103 2> log/1/stderr3103 ild/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3100 ./libtest/libtests lib3100 rtsp://127.0.0.1:42113/3100 > log/4/stdout3100 2> log/4/stderr3100 3100: protocol FAILED! There was no content at all in the file log/4/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/4/ dir after test 3100 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3100 ./libtest/libtests lib3100 rtsp://127.0.0.1:42113/3100 > log/4/stdout3100 2> log/4/stderr3100 === End of file commands.log === Start of file rtsp_server.log 10:34:32.441436 ====> Client connect 10:34:32.441811 Read 93 bytes 10:34:32.442003 rtspd_ProcessRequest() called with testno -7 and line [GET /verifiedserver HTTP/1.1 Host: 127.0.0.1:42113 User-Agent: curl/8.16.0 Accept: */* ] 10:34:32.442124 Got request: GET /verifiedserver HTTP/1.1 10:34:32.442220 Are-we-friendly question received 10:34:32.442508 Wrote request (93 bytes) input to log/4/server.input 10:34:32.442798 Send response number -2 part 0 10:34:32.442995 Identifying ourselves as friends 10:34:32.443675 Sent off 69 bytes 10:34:32.444058 Response sent (69 bytes) and written to log/4/server.response 10:34:32.444188 special request received, no persistency 10:34:32.444257 ====> Client disconnect === End of file rtsp_server.log === Start of file rtsp_verify.log * Trying 127.0.0.1:42113... * Established connection to 127.0.0.1 (127.0.0.1 port 42113) from 127.0.0.1 port 56492 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42113 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 30 < { [30 bytes data] * Connection #0 to host 127.0.0.1:42113 left intact === End of file rtsp_verify.log === Start of file rtsp_verify.out RTSP_SERVER WE ROOLZ: 104961 === End of file rtsp_verify.out === Start of file server.cmd Testnum 3100 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 30 RTSP_SERVER WE ROOLZ: 104961 === End of file server.response === Start of file valgrind3100 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3100 test 3104...[CURLOPT_COOKIELIST with Netscape format] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3104 ./libtest/libtests lib3104 http://127.0.0.1:43789/3104 > log/2/stdout3104 2> log/2/stderr3104 3104: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 3104 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3104 ./libtest/libtests lib3104 http://127.0.0.1:43789/3104 > log/2/stdout3104 2> log/2/stderr3104 === End of file commands.log === Start of file http_server.log 10:34:31.659382 ====> Client connect 10:34:31.659712 accept_connection 3 returned 4 10:34:31.659905 accept_connection 3 returned 0 10:34:31.660039 Read 93 bytes 10:34:31.660129 Process 93 bytes request 10:34:31.660219 Got request: GET /verifiedserver HTTP/1.1 10:34:31.660286 Are-we-friendly question received 10:34:31.661220 Wrote request (93 bytes) input to log/2/server.input 10:34:31.661427 Identifying ourselves as friends 10:34:31.662166 Response sent (56 bytes) and written to log/2/server.response 10:34:31.662321 special request received, no persistency 10:34:31.662394 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 40240 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 3104 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind3104 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3104 test 3103...[CURLOPT_COOKIELIST without expiry] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3103 ./libtest/libtests lib3103 http://127.0.0.1:42781/3103 > log/1/stdout3103 2> log/1/stderr3103 3103: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 3103 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3103 ./libtest/libtests lib3103 htCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3105 ./libtest/libtests lib3105 - > log/8/stdout3105 2> log/8/stderr3105 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3101 ./libtest/libtests lib3101 http://127.0.0.1:41733/3101 > log/5/stdout3101 2> log/5/stderr3101 tp://127.0.0.1:42781/3103 > log/1/stdout3103 2> log/1/stderr3103 === End of file commands.log === Start of file http_server.log 10:34:31.648840 ====> Client connect 10:34:31.649160 accept_connection 3 returned 4 10:34:31.649316 accept_connection 3 returned 0 10:34:31.649450 Read 93 bytes 10:34:31.649539 Process 93 bytes request 10:34:31.649645 Got request: GET /verifiedserver HTTP/1.1 10:34:31.649717 Are-we-friendly question received 10:34:31.649923 Wrote request (93 bytes) input to log/1/server.input 10:34:31.650088 Identifying ourselves as friends 10:34:31.650838 Response sent (57 bytes) and written to log/1/server.response 10:34:31.651053 special request received, no persistency 10:34:31.651141 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:42781... * Established connection to 127.0.0.1 (127.0.0.1 port 42781) from 127.0.0.1 port 47840 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:42781 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:42781 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 152547 === End of file http_verify.out === Start of file server.cmd Testnum 3103 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 152547 === End of file server.response === Start of file valgrind3103 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3103 test 3105...[curl_multi_remove_handle twice] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3105 ./libtest/libtests lib3105 - > log/8/stdout3105 2> log/8/stderr3105 libtests returned 1, when expecting 0 3105: exit FAILED == Contents of files in the log/8/ dir after test 3105 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3105 ./libtest/libtests lib3105 - > log/8/stdout3105 2> log/8/stderr3105 === End of file commands.log === Start of file server.cmd Testnum 3105 === End of file server.cmd === Start of file valgrind3105 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3105 test 3101...[HTTP auth without redirection protocols] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3101 ./libtest/libtests lib3101 http://127.0.0.1:41733/3101 > log/5/stdout3101 2> log/5/stderr3101 3101: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 3101 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3101 ./libtest/libtests lib3101 http://127.0.0.1:41733/3101 > log/5/stdout3101 2> log/5/stderr3101 === End of file commands.log === Start of file http_server.log 10:34:32.602508 ====> Client connect 10:34:32.602921 accept_connection 3 returned 4 10:34:32.603176 accept_connection 3 returned 0 10:34:32.603329 Read 93 bytes 10:34:32.603430 Process 93 bytes request 10:34:32.603539 Got request: GET /verifiedserver HTTP/1.1 10:34:32.603648 Are-we-friendly question received 10:34:32.603973 Wrote request (93 bytes) input to log/5/server.input 10:34:32.604225 Identifying ourselves as friends 10:34:32.605356 Response sent (56 bytes) and written to log/5/server.response 10:34:32.605509 special request received, no persistency 10:34:32.605588 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:41733... * Established connection to 127.0.0.1 (127.0.0.1 port 41733) from 127.0.0.1 port 47282 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:41733 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [1 bytes data] * Connection #0 to host 127.0.0.1:41733 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73519 === End of file http_verify.out === Start of file server.cmd Testnum 3101 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73519 === End of file server.response === Start of file valgrind3101 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux disCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3200 ./unit/units unit3200 log/7/curl_get_line3200 > log/7/stdout3200 2> log/7/stderr3200 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3203 ../src/curl -q --trace-ascii log/4/trace3203 --trace-time file://localhost/build/curl/src/build-curl/tests/log/4/test3203.dir/ > log/4/stdout3203 2> log/4/stderr3203 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3201 ../src/curl -q --output log/6/curl3201.out --include --trace-ascii log/6/trace3201 --trace-time http://127.0.0.1:39357/3201 --haproxy-clientip "192.168.1.1" -H "Testno: 3201" > log/6/stdout3201 2> log/6/stderr3201 tribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3101 test 3200...[curl_get_line unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3200 ./unit/units unit3200 log/7/curl_get_line3200 > log/7/stdout3200 2> log/7/stderr3200 units returned 1, when expecting 0 3200: exit FAILED == Contents of files in the log/7/ dir after test 3200 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3200 ./unit/units unit3200 log/7/curl_get_line3200 > log/7/stdout3200 2> log/7/stderr3200 === End of file commands.log === Start of file server.cmd Testnum 3200 === End of file server.cmd === Start of file valgrind3200 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3200 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind3202 ../src/curl -q --output log/3/curl3202.out --include --trace-ascii log/3/trace3202 --trace-time -g "http://[::1]:35121/3202" --haproxy-clientip "2001:db8::" > log/3/stdout3202 2> log/3/stderr3202 test 3203...[GET a directory using file://] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3203 ../src/curl -q --trace-ascii log/4/trace3203 --trace-time file://localhost/build/curl/src/build-curl/tests/log/4/test3203.dir/ > log/4/stdout3203 2> log/4/stderr3203 3203: stdout FAILED: --- log/4/check-expected 2025-09-11 10:34:33.299504170 +0000 +++ log/4/check-generated 2025-09-11 10:34:33.299504170 +0000 @@ -1 +0,0 @@ -dir-listing-test.txt[LF] == Contents of files in the log/4/ dir after test 3203 === Start of file check-expected dir-listing-test.txt[LF] === End of file check-expected === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3203 ../src/curl -q --trace-ascii log/4/trace3203 --trace-time file://localhost/build/curl/src/build-curl/tests/log/4/test3203.dir/ > log/4/stdout3203 2> log/4/stderr3203 === End of file commands.log === Start of file server.cmd Testnum 3203 === End of file server.cmd === Start of file valgrind3203 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3203 test 3202...[HTTP-IPv6 GET with PROXY protocol with spoofed client IP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind3202 ../src/curl -q --output log/3/curl3202.out --include --trace-ascii log/3/trace3202 --trace-time -g "http://[::1]:35121/3202" --haproxy-clientip "2001:db8::" > log/3/stdout3202 2> log/3/stderr3202 3202: protocol FAILED! There was no content at all in the file log/3/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/3/ dir after test 3202 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind3202 ../src/curl -q --output log/3/curl3202.out --include --trace-ascii log/3/trace3202 --trace-time -g "http://[::1]:35121/3202" --haproxy-clientip "2001:db8::" > log/3/stdout3202 2> log/3/stderr3202 === End of file commands.log === Start of file http_ipv6_server.log 10:34:32.197506 ====> Client connect 10:34:32.197918 accept_connection 3 returned 4 10:34:32.198143 accept_connection 3 returned 0 10:34:32.204974 Read 89 bytes 10:34:32.205157 Process 89 bytes request 10:34:32.205273 Got request: GET /verifiedserver HTTP/1.1 10:34:32.205367 Are-we-friendly question received 10:34:32.205671 Wrote request (89 bytes) input to log/3/server.input 10:34:32.205920 Identifying ourselves as friends 10:34:32.206792 Response sent (56 bytes) and written to log/3/server.response 10:34:32.206946 special request received, no persistency 10:34:32.207022 ====> Client disconnect 0 === End of file http_ipv6_server.log === Start of file http_ipv6_verify.log * Trying [::1]:35121... * Established connection to ::1 (::1 port 35121) from ::1 port 41262 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: [::1]:35121 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host ::1:35121 left intact === End of file http_ipv6_verify.log === Start of file http_ipv6_verify.out WE ROOLZ: 88084 === End of file http_ipv6_verify.out === Start of file server.cmd Testnum 3202 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 88084 === End of file server.response === Start of file valgrind3202 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3202 test 3201...[HTTP GET when PROXY Protocol enabled and spoofed client IP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3201 ../src/curl -q --output log/6/curl3201.out --include --trace-ascii log/6/trace3201 --trace-time http://127.0.0.1:39357/3201 --haproxy-clientip "192.168.1.1" -H "Testno: 3201" > log/6/stdout3201 2> log/6/stderr3201 3201: protocol FAILED! There was no content at all in the file log/6/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/6/ dir after test 3201 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3201 ../src/curl -q --output log/6/curl3201.out --include --trace-ascii log/6/trace3201 --trace-time http://127.0.0.1:39357/3201 --haproxy-clientip "192.168.1.1" -H "Testno: 3201" > log/6/stdout3201 2> log/6/stderr3201 === End of file commands.log === Start of file http_server.log 10:34:32.117664 ====> Client connect 10:34:32.118053 accept_connection 3 returned 4 10:34:32.118284 accept_connection 3 returned 0 10:34:32.118453 Read 93 bytes 10:34:32.118565 Process 93 bytes request 10:34:32.118690 Got request: GET /verifiedserver HTTP/1.1 10:34:32.118792 Are-we-friendly question received 10:34:32.119065 Wrote request (93 bytes) input to log/6/server.input 10:34:32.119281 Identifying ourselvesCMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3205 ./unit/units unit3205 - > log/1/stdout3205 2> log/1/stderr3205 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3211 ./unit/units unit3211 - > log/7/stdout3211 2> log/7/stderr3211 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3204 ../src/curl -q --output log/2/curl3204.out --include --trace-ascii log/2/trace3204 --trace-time http://127.0.0.1:43789/3204 --etag-compare log/2/etag3204 --etag-save log/2/etag3204 > log/2/stdout3204 2> log/2/stderr3204 as friends 10:34:32.120228 Response sent (57 bytes) and written to log/6/server.response 10:34:32.124697 special request received, no persistency 10:34:32.124840 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:39357... * Established connection to 127.0.0.1 (127.0.0.1 port 39357) from 127.0.0.1 port 44322 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:39357 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 18 < { [18 bytes data] * Connection #0 to host 127.0.0.1:39357 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 155301 === End of file http_verify.out === Start of file server.cmd Testnum 3201 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 18 WE ROOLZ: 155301 === End of file server.response === Start of file valgrind3201 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3201 test 3205...[cipher suite name lookup] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3205 ./unit/units unit3205 - > log/1/stdout3205 2> log/1/stderr3205 units returned 1, when expecting 0 3205: exit FAILED == Contents of files in the log/1/ dir after test 3205 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3205 ./unit/units unit3205 - > log/1/stdout3205 2> log/1/stderr3205 === End of file commands.log === Start of file server.cmd Testnum 3205 === End of file server.cmd === Start of file valgrind3205 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3205 test 3211...[uint_bset unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3211 ./unit/units unit3211 - > log/7/stdout3211 2> log/7/stderr3211 units returned 1, when expecting 0 3211: exit FAILED == Contents of files in the log/7/ dir after test 3211 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/7/valgrind3211 ./unit/units unit3211 - > log/7/stdout3211 2> log/7/stderr3211 === End of file commands.log === Start of file server.cmd Testnum 3211 === End of file server.cmd === Start of file valgrind3211 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3211 test 3204...[Use --etag-compare and --etag-save on an existing file] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3204 ../src/curl -q --output log/2/curl3204.out --include --trace-ascii log/2/trace3204 --trace-time http://127.0.0.1:43789/3204 --etag-compare log/2/etag3204 --etag-save log/2/etag3204 > log/2/stdout3204 2> log/2/stderr3204 3204: protocol FAILED! There was no content at all in the file log/2/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/2/ dir after test 3204 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/2/valgrind3204 ../src/curl -q --output log/2/curl3204.out --include --trace-ascii log/2/trace3204 --trace-time http://127.0.0.1:43789/3204 --etag-compare log/2/etag3204 --etag-save log/2/etag3204 > log/2/stdout3204 2> log/2/stderr3204 === End of file commands.log === Start of file etag3204 "21025-dc7-39462498" === End of file etag3204 === Start of file http_server.log 10:34:32.568786 ====> Client connect 10:34:32.569151 accept_connection 3 returned 4 10:34:32.56CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3209 ../src/curl -q --output log/8/curl3209.out --include --trace-ascii log/8/trace3209 --trace-time imap://127.0.0.1:44267/3209 -T log/8/upload3209 -u user:secret --upload-flags answered,deleted,draft,flagged,seen > log/8/stdout3209 2> log/8/stderr3209 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3210 ../src/curl -q --output log/5/curl3210.out --include --trace-ascii log/5/trace3210 --trace-time imap://127.0.0.1:44021/3210 -T log/5/upload3210 -u user:secret --upload-flags -seen > log/5/stdout3210 2> log/5/stderr3210 9417 accept_connection 3 returned 0 10:34:32.569585 Read 93 bytes 10:34:32.569685 Process 93 bytes request 10:34:32.569779 Got request: GET /verifiedserver HTTP/1.1 10:34:32.569857 Are-we-friendly question received 10:34:32.570134 Wrote request (93 bytes) input to log/2/server.input 10:34:32.570382 Identifying ourselves as friends 10:34:32.571222 Response sent (56 bytes) and written to log/2/server.response 10:34:32.571404 special request received, no persistency 10:34:32.571482 ====> Client disconnect 0 === End of file http_server.log === Start of file http_verify.log * Trying 127.0.0.1:43789... * Established connection to 127.0.0.1 (127.0.0.1 port 43789) from 127.0.0.1 port 40256 * using HTTP/1.x > GET /verifiedserver HTTP/1.1 > Host: 127.0.0.1:43789 > User-Agent: curl/8.16.0 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Content-Length: 17 < { [17 bytes data] * Connection #0 to host 127.0.0.1:43789 left intact === End of file http_verify.log === Start of file http_verify.out WE ROOLZ: 73522 === End of file http_verify.out === Start of file server.cmd Testnum 3204 === End of file server.cmd === Start of file server.response HTTP/1.1 200 OK Content-Length: 17 WE ROOLZ: 73522 === End of file server.response === Start of file valgrind3204 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3204 test 3209...[Upload message via IMAP with upload flags] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3209 ../src/curl -q --output log/8/curl3209.out --include --trace-ascii log/8/trace3209 --trace-time imap://127.0.0.1:44267/3209 -T log/8/upload3209 -u user:secret --upload-flags answered,deleted,draft,flagged,seen > log/8/stdout3209 2> log/8/stderr3209 3209: protocol FAILED! There was no content at all in the file log/8/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/8/ dir after test 3209 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/8/valgrind3209 ../src/curl -q --output log/8/curl3209.out --include --trace-ascii log/8/trace3209 --trace-time imap://127.0.0.1:44267/3209 -T log/8/upload3209 -u user:secret --upload-flags answered,deleted,draft,flagged,seen > log/8/stdout3209 2> log/8/stderr3209 === End of file commands.log === Start of file imap_server.log 10:34:33.006939 ====> Client connect 10:34:33.008244 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:34:33.013896 < "A001 CAPABILITY" 10:34:33.014348 > "A001 BAD Command[CR][LF]" 10:34:33.021208 < "A002 LIST "verifiedserver" *" 10:34:33.021656 LIST_imap got "verifiedserver" * 10:34:33.022047 > "* LIST () "/" "WE ROOLZ: 114695"[CR][LF]" 10:34:33.022376 > "A002 OK LIST Completed[CR][LF]" 10:34:33.022580 return proof we are we 10:34:33.073403 < "A003 LOGOUT" 10:34:33.074076 > "* BYE curl IMAP server signing off[CR][LF]" 10:34:33.074514 > "A003 OK LOGOUT completed[CR][LF]" 10:34:33.082652 MAIN sockfilt said DISC 10:34:33.083152 ====> Client disconnected 10:34:33.083777 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:34:32.672628 ====> Client connect 10:34:32.675419 Received DATA (on stdin) 10:34:32.675620 > 178 bytes data, server => client 10:34:32.675732 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:34:32.675824 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:34:32.675911 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:34:32.675994 'rve\r\n' 10:34:32.677679 < 17 bytes data, client => server 10:34:32.677996 'A001 CAPABILITY\r\n' 10:34:32.682041 Received DATA (on stdin) 10:34:32.682346 > 18 bytes data, server => client 10:34:32.682457 'A001 BAD Command\r\n' 10:34:32.687266 < 30 bytes data, client => server 10:34:32.687528 'A002 LIST "verifiedserver" *\r\n' 10:34:32.689584 Received DATA (on stdin) 10:34:32.689791 > 34 bytes data, server => client 10:34:32.689895 '* LIST () "/" "WE ROOLZ: 114695"\r\n' 10:34:32.690225 Received DATA (on stdin) 10:34:32.690365 > 24 bytes data, server => client 10:34:32.690450 'A002 OK LIST Completed\r\n' 10:34:32.736781 < 13 bytes data, client => server 10:34:32.736946 'A003 LOGOUT\r\n' 10:34:32.744482 Received DATA (on stdin) 10:34:32.744750 > 36 bytes data, server => client 10:34:32.744886 '* BYE curl IMAP server signing off\r\n' 10:34:32.745259 Received DATA (on stdin) 10:34:32.745425 > 26 bytes data, server => client 10:34:32.745521 'A003 OK LOGOUT completed\r\n' 10:34:32.745887 ====> Client disconnect 10:34:32.750068 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 3209 === End of file server.cmd === Start of file upload3209 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Hello Joe, do you think we can meet at 3:30 tomorrow? === End of file upload3209 === Start of file valgrind3209 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3212 ./unit/units unit3212 - > log/4/stdout3212 2> log/4/stderr3212 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3213 ./unit/units unit3213 - > log/6/stdout3213 2> log/6/stderr3213 Cannot continue -- exiting now. Sorry. === End of file valgrind3209 test 3210...[Upload message unread via IMAP] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3210 ../src/curl -q --output log/5/curl3210.out --include --trace-ascii log/5/trace3210 --trace-time imap://127.0.0.1:44021/3210 -T log/5/upload3210 -u user:secret --upload-flags -seen > log/5/stdout3210 2> log/5/stderr3210 3210: protocol FAILED! There was no content at all in the file log/5/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/5/ dir after test 3210 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/5/valgrind3210 ../src/curl -q --output log/5/curl3210.out --include --trace-ascii log/5/trace3210 --trace-time imap://127.0.0.1:44021/3210 -T log/5/upload3210 -u user:secret --upload-flags -seen > log/5/stdout3210 2> log/5/stderr3210 === End of file commands.log === Start of file imap_server.log 10:34:33.005692 ====> Client connect 10:34:33.007716 > " _ _ ____ _ [CR][LF] ___| | | | _ \| | [CR][LF] / __| | | | |_) | | [CR][LF] | (__| |_| | _ {| |___ [CR][LF] \___|\___/|_| \_\_____|[CR][LF]* OK curl IMAP server ready to serve[CR][LF]" 10:34:33.013761 < "A001 CAPABILITY" 10:34:33.014366 > "A001 BAD Command[CR][LF]" 10:34:33.018641 < "A002 LIST "verifiedserver" *" 10:34:33.019078 LIST_imap got "verifiedserver" * 10:34:33.020767 > "* LIST () "/" "WE ROOLZ: 114397"[CR][LF]" 10:34:33.021195 > "A002 OK LIST Completed[CR][LF]" 10:34:33.021585 return proof we are we 10:34:33.065529 < "A003 LOGOUT" 10:34:33.066754 > "* BYE curl IMAP server signing off[CR][LF]" 10:34:33.067277 > "A003 OK LOGOUT completed[CR][LF]" 10:34:33.071206 MAIN sockfilt said DISC 10:34:33.072281 ====> Client disconnected 10:34:33.073092 Awaiting input === End of file imap_server.log === Start of file imap_sockfilt.log 10:34:33.668088 ====> Client connect 10:34:33.675220 Received DATA (on stdin) 10:34:33.675435 > 178 bytes data, server => client 10:34:33.675556 ' _ _ ____ _ \r\n ___| | | | _ \| | \r\n ' 10:34:33.675646 ' / __| | | | |_) | | \r\n | (__| |_| | _ {| |___ \r\n ' 10:34:33.675722 ' \___|\___/|_| \_\_____|\r\n* OK curl IMAP server ready to se' 10:34:33.675789 'rve\r\n' 10:34:33.681808 < 17 bytes data, client => server 10:34:33.682081 'A001 CAPABILITY\r\n' 10:34:33.682263 Received DATA (on stdin) 10:34:33.682374 > 18 bytes data, server => client 10:34:33.682455 'A001 BAD Command\r\n' 10:34:33.684020 < 30 bytes data, client => server 10:34:33.684270 'A002 LIST "verifiedserver" *\r\n' 10:34:33.686486 Received DATA (on stdin) 10:34:33.686694 > 34 bytes data, server => client 10:34:33.686989 '* LIST () "/" "WE ROOLZ: 114397"\r\n' 10:34:33.688891 Received DATA (on stdin) 10:34:33.689086 > 24 bytes data, server => client 10:34:33.689190 'A002 OK LIST Completed\r\n' 10:34:33.731019 < 13 bytes data, client => server 10:34:33.731249 'A003 LOGOUT\r\n' 10:34:33.732989 Received DATA (on stdin) 10:34:33.733215 > 36 bytes data, server => client 10:34:33.734568 '* BYE curl IMAP server signing off\r\n' 10:34:33.735081 Received DATA (on stdin) 10:34:33.735336 > 26 bytes data, server => client 10:34:33.735466 'A003 OK LOGOUT completed\r\n' 10:34:33.736586 ====> Client disconnect 10:34:33.738674 Received ACKD (on stdin) === End of file imap_sockfilt.log === Start of file server.cmd Testnum 3210 === End of file server.cmd === Start of file upload3210 Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) From: Fred Foobar Subject: afternoon meeting To: joe@example.com Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. === End of file upload3210 === Start of file valgrind3210 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3210 test 3212...[uint_bset unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3212 ./unit/units unit3212 - > log/4/stdout3212 2> log/4/stderr3212 units returned 1, when expecting 0 3212: exit FAILED == Contents of files in the log/4/ dir after test 3212 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/4/valgrind3212 ./unit/units unit3212 - > log/4/stdout3212 2> log/4/stderr3212 === End of file commands.log === Start of file server.cmd Testnum 3212 === End of file server.cmd === Start of file valgrind3212 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3212 test 3213...[uint_spbset unit tests] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3213 ./unit/units unit3213 - > log/6/stdout3213 2> log/6/stderr3213 units returned 1, when expecting 0 3213: exit FAILED == Contents of files CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind3214 ./unit/units unit3214 - > log/3/stdout3214 2> log/3/stderr3214 CMD (256): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3215 ../src/curl -q --output log/1/curl3215.out --include --trace-ascii log/1/trace3215 --trace-time smtp://127.0.0.1:42637/3215 --mail-rcpt " NOTIFY=SUCCESS,FAILURE" --mail-from " RET=HDRS" -T - log/1/stdout3215 2> log/1/stderr3215 in the log/6/ dir after test 3213 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/6/valgrind3213 ./unit/units unit3213 - > log/6/stdout3213 2> log/6/stderr3213 === End of file commands.log === Start of file server.cmd Testnum 3213 === End of file server.cmd === Start of file valgrind3213 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3213 test 3214...[struct size checks] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind3214 ./unit/units unit3214 - > log/3/stdout3214 2> log/3/stderr3214 units returned 1, when expecting 0 3214: exit FAILED == Contents of files in the log/3/ dir after test 3214 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/3/valgrind3214 ./unit/units unit3214 - > log/3/stdout3214 2> log/3/stderr3214 === End of file commands.log === Start of file server.cmd Testnum 3214 === End of file server.cmd === Start of file valgrind3214 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3214 test 3215...[SMTP DSN] ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3215 ../src/curl -q --output log/1/curl3215.out --include --trace-ascii log/1/trace3215 --trace-time smtp://127.0.0.1:42637/3215 --mail-rcpt " NOTIFY=SUCCESS,FAILURE" --mail-from " RET=HDRS" -T - log/1/stdout3215 2> log/1/stderr3215 3215: protocol FAILED! There was no content at all in the file log/1/server.input. Server glitch? Total curl failure? Returned: 1 == Contents of files in the log/1/ dir after test 3215 === Start of file commands.log ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=/build/curl/src/curl/tests/valgrind.supp --num-callers=16 --log-file=log/1/valgrind3215 ../src/curl -q --output log/1/curl3215.out --include --trace-ascii log/1/trace3215 --trace-time smtp://127.0.0.1:42637/3215 --mail-rcpt " NOTIFY=SUCCESS,FAILURE" --mail-from " RET=HDRS" -T - log/1/stdout3215 2> log/1/stderr3215 === End of file commands.log === Start of file server.cmd REPLY MAIL 250 Ok REPLY RCPT 250 Ok Testnum 3215 === End of file server.cmd === Start of file smtp_server.log 10:34:33.618231 ====> Client connect 10:34:33.619872 > "220- _ _ ____ _ [CR][LF]220- ___| | | | _ \| | [CR][LF]220- / __| | | | |_) | | [CR][LF]220- | (__| |_| | _ {| |___ [CR][LF]220 \___|\___/|_| \_\_____|[CR][LF]" 10:34:33.622458 < "EHLO verifiedserver" 10:34:33.623029 > "250 ESMTP pingpong test server Hello verifiedserver[CR][LF]" 10:34:33.626515 < "HELP" 10:34:33.627092 > "214 WE ROOLZ: 107206[CR][LF]" 10:34:33.627386 return proof we are we 10:34:33.629698 < "QUIT" 10:34:33.630452 > "221 curl ESMTP server signing off[CR][LF]" 10:34:33.636793 MAIN sockfilt said DISC 10:34:33.637328 ====> Client disconnected 10:34:33.638231 Awaiting input === End of file smtp_server.log === Start of file smtp_sockfilt.log 10:34:33.284151 ====> Client connect 10:34:33.286682 Received DATA (on stdin) 10:34:33.286973 > 160 bytes data, server => client 10:34:33.287111 '220- _ _ ____ _ \r\n220- ___| | | | _ \| | ' 10:34:33.287209 ' \r\n220- / __| | | | |_) | | \r\n220- | (__| |_| | ' 10:34:33.287283 '_ {| |___ \r\n220 \___|\___/|_| \_\_____|\r\n' 10:34:33.288007 < 21 bytes data, client => server 10:34:33.288255 'EHLO verifiedserver\r\n' 10:34:33.289863 Received DATA (on stdin) 10:34:33.290049 > 53 bytes data, server => client 10:34:33.290155 '250 ESMTP pingpong test server Hello verifiedserver\r\n' 10:34:33.292217 < 6 bytes data, client => server 10:34:33.292538 'HELP\r\n' 10:34:33.293950 Received DATA (on stdin) 10:34:33.294172 > 22 bytes data, server => client 10:34:33.294283 '214 WE ROOLZ: 107206\r\n' 10:34:33.295533 < 6 bytes data, client => server 10:34:33.295786 'QUIT\r\n' 10:34:33.298455 Received DATA (on stdin) 10:34:33.298724 > 35 bytes data, server => client 10:34:33.298826 '221 curl ESMTP server signing off\r\n' 10:34:33.299426 ====> Client disconnect 10:34:33.304191 Received ACKD (on stdin) === End of file smtp_sockfilt.log === Start of file stdin-for-3215 From: different To: another body === End of file stdin-for-3215 === Start of file valgrind3215 valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strcmp valgrind: in an object with soname matching: ld-linux-riscv64-lp64d.so.1 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-riscv64-lp64d.so.1 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packag* kill pid for ftp-ctrl => 79599 * kill pid for ftp-ctrl => 79598 * kill pid for ftp-ctrl => 79587 * kill pid for ftp-ctrl => 79603 * kill pid for ftp-ctrl => 157589 * kill pid for ftp-ctrl => 79579 * kill pid for ftp-ctrl => 86775 * kill pid for ftp-ctrl => 131753 * kill pid for ftp-ipv6-ctrl => 88959 * kill pid for ftp-ipv6-ctrl => 88958 * kill pid for ftp-ipv6-ctrl => 88890 * kill pid for imap-filt => 114755 * kill pid for imap-filt => 114674 * kill pid for ftp-ipv6-ctrl => 88922 * kill pid for imap-filt => 107874 * kill pid for imap-filt => 107148 * kill pid for imap-filt => 114738 * kill pid for pop3-filt => 99997 * kill pid for pop3-filt => 117580 * kill pid for imap-filt => 114846 * kill pid for smtp-filt => 107314 * kill pid for imap-filt => 114615 * kill pid for pop3-filt => 117684 * kill pid for pop3-filt => 117620 * kill pid for smtp-filt => 120446 RUN: Process with pid 78259 signalled to die RUN: Process with pid 79585 signalled to die RUN: Process with pid 88026 signalled to die RUN: Process with pid 99758 signalled to die RUN: Process with pid 105110 signalled to die RUN: Process with pid 107206 signalled to die RUN: Process with pid 110218 signalled to die RUN: Process with pid 114681 signalled to die RUN: Process with pid 126060 signalled to die RUN: Process with pid 136424 signalled to die RUN: Process with pid 152547 signalled to die * kill pid for imap-filt => 114788 * kill pid for pop3-filt => 117538 * kill pid for smtp-filt => 120569 * kill pid for pop3-filt => 117569 * kill pid for smtp-filt => 120450 * kill pid for smtp-filt => 120540 RUN: Process with pid 73519 signalled to die * kill pid for pop3-filt => 117544 * kill pid for smtp-filt => 120568 RUN: Process with pid 88744 signalled to die RUN: Process with pid 90750 signalled to die RUN: Process with pid 110219 signalled to die RUN: Process with pid 112645 signalled to die RUN: Process with pid 114397 signalled to die RUN: Process with pid 117445 signalled to die RUN: Process with pid 120432 signalled to die RUN: Process with pid 131615 signalled to die RUN: Process with pid 136446 signalled to die RUN: Process with pid 136898 signalled to die RUN: Process with pid 140697 signalled to die RUN: Process with pid 150231 signalled to die * kill pid for pop3-filt => 117579 RUN: Process with pid 73521 signalled to die RUN: Process with pid 73520 signalled to die RUN: Process with pid 78298 signalled to die RUN: Process with pid 79555 signalled to die RUN: Process with pid 88084 signalled to die RUN: Process with pid 88798 signalled to die RUN: Process with pid 105083 signalled to die RUN: Process with pid 109982 signalled to die RUN: Process with pid 114678 signalled to die RUN: Process with pid 117587 signalled to die RUN: Process with pid 79516 signalled to die RUN: Process with pid 88016 signalled to die RUN: Process with pid 88766 signalled to die RUN: Process with pid 89930 signalled to die RUN: Process with pid 104961 signalled to die RUN: Process with pid 120346 signalled to die RUN: Process with pid 107654 signalled to die RUN: Process with pid 136436 signalled to die RUN: Process with pid 109939 signalled to die RUN: Process with pid 150376 signalled to die RUN: Process with pid 117584 signalled to die RUN: Process with pid 120358 signalled to die RUN: Process with pid 136552 signalled to die RUN: Process with pid 137093 signalled to die RUN: Process with pid 143578 signalled to die RUN: Process with pid 151882 signalled to die RUN: Process with pid 79480 signalled to die RUN: Process with pid 90171 signalled to die RUN: Process with pid 92471 signalled to die RUN: Process with pid 104917 signalled to die RUN: Process with pid 107147 signalled to die RUN: Process with pid 110254 signalled to die RUN: Process with pid 117430 signalled to die RUN: Process with pid 120427 signalled to die RUN: Process with pid 136621 signalled to die RUN: Process with pid 143657 signalled to die RUN: Process with pid 155301 signalled to die RUN: Process with pid 79585 gracefully died * kill pid for smtp-filt => 107522 * kill pid for smtp-filt => 107145 RUN: Process with pid 73522 signalled to die RUN: Process with pid 90694 signalled to die RUN: Process with pid 105033 signalled to die RUN: Process with pid 107342 signalled to die RUN: Process with pid 109934 signalled to die RUN: Process with pid 110927 signalled to die RUN: Process with pid 114358 signalled to die RUN: Process with pid 117443 signalled to die RUN: Process with pid 136907 signalled to die RUN: Process with pid 151321 signalled to die RUN: Process with pid 157322 signalled to die RUN: Process with pid 161539 signalled to die RUN: Process with pid 73517 signalled to die RUN: Process with pid 79543 signalled to die RUN: Process with pid 88795 signalled to die RUN: Process with pid 109944 signalled to die RUN: Process with pid 110953 signalled to die RUN: Process with pid 114683 signalled to die RUN: Process with pid 117426 signalled to die RUN: Process with pid 120422 signalled to die RUN: Process with pid 129185 signalled to die RUN: Process with pid 131552 signalled to die RUN: Process with pid 136619 signalled to die RUN: Process with pid 151867 signalled to die RUN: Process with pid 73516 signalled to die RUN: Process with pid 86552 signalled to die RUN: Process with pid 90794 signalled to die RUN: Process with pid 101334 signalled to die RUN: Process with pid 105113 signalled to die RUN: Process with pid 107099 signalled to die RUN: Process with pid 110252 signalled to die RUN: Process with pid 114695 signalled to die RUN: Process with pid 117427 signalled to die RUN: Process with pid 128457 signalled to die RUN: Process with pid 136454 signalled to die RUN: Process with pid 136928 signalled to die RUN: Process with pid 88744 gracefully died RUN: Process with pid 79555 gracefully died RUN: Process with pid 79516 gracefully died RUN: Process with pid 79480 gracefully died RUN: Process with pid 78259 gracefully died RUN: Process with pid 114358 gracefully died RUN: Process with pid 79543 gracefully died RUN: Process with pid 86552 gracefully died RUN: Process with pid 73519 gracefully died RUN: Process with pid 73521 gracefully died RUN: Process with pid 88766 gracefully died RUN: Process with pid 90171 gracefully died RUN: Process with pid 88026 gracefully died RUN: Process with pid 73522 gracefully died RUN: Process with pid 73517 gracefully died RUN: Process with pid 73516 gracefully died RUN: Process with pid 110219 gracefully died RUN: Process with pid 78298 gracefully died RUN: Process with pid 73520 gracefully died RUN: Process with pid 107147 gracefully died RUN: Process with pid 99758 gracefully died RUN: Process with pid 107342 gracefully died RUN: Process with pid 88795 gracefully died RUN: Process with pid 101334 gracefully died RUN: Process with pid 112645 gracefully died RUN: Process with pid 88084 gracefully died RUN: Process with pid 88016 gracefully died RUN: Process with pid 110254 gracefully died RUN: Process with pid 107206 gracefully died RUN: Process with pid 109934 gracefully died RUN: Process with pid 109944 gracefully died RUN: Process with pid 107099 gracefully died RUN: Process with pid 114397 gracefully died RUN: Process with pid 88798 gracefully died RUN: Process with pid 107654 gracefully died RUN: Process with pid 117430 gracefully died RUN: Process with pid 110218 gracefully died RUN: Process with pid 110927 gracefully died RUN: Process with pid 110953 gracefully died RUN: Process with pid 110252 gracefully died RUN: Process with pid 117445 gracefully died RUN: Process with pid 109982 gracefully died RUN: Process with pid 109939 gracefully died RUN: Process with pid 120427 gracefully died RUN: Process with pid 114681 gracefully died RUN: Process with pid 117443 gracefully died RUN: Process with pid 114683 gracefully died RUN: Process with pid 114695 gracefully died RUN: Process with pid 120432 gracefully died RUN: Process with pid 114678 gracefully died RUN: Process with pid 117584 gracefully died RUN: Process with pid 136621 gracefully died RUN: Process with pid 136424 gracefully died RUN: Process with pid 136907 gracefully died RUN: Process with pid 117426 gracefully died RUN: Process with pid 117427 gracefully died RUN: Process with pid 131615 gracefully died RUN: Process with pid 117587 gracefully died RUN: Process with pid 120358 gracefully died RUN: Process with pid 143657 gracefully died RUN: Process with pid 152547 gracefully died RUN: Process with pid 151321 gracefully died RUN: Process with pid 120422 gracefully died RUN: Process with pid 128457 gracefully died RUN: Process with pid 136446 gracefully died RUN: Process with pid 120346 gracefully died RUN: Process with pid 136552 gracefully died RUN: Process with pid 155301 gracefully died RUN: Process with pid 157322 gracefully died RUN: Process with pid 129185 gracefully died RUN: Process with pid 136454 gracefully died RUN: Process with pid 136898 gracefully died RUN: Process with pid 136436 gracefully died RUN: Process with pid 137093 gracefully died RUN: Process with pid 161539 gracefully died RUN: Process with pid 136619 gracefully died RUN: Process with pid 136928 gracefully died RUN: Process with pid 140697 gracefully died RUN: Process with pid 150376 gracefully died RUN: Process with pid 143578 gracefully died RUN: Process with pid 151867 gracefully died RUN: Process with pid 150231 gracefully died RUN: Process with pid 151882 gracefully died RUN: Process with pid 105110 forced to die with SIGKILL RUN: Process with pid 126060 forced to die with SIGKILL RUN: Process with pid 90750 forced to die with SIGKILL RUN: Process with pid 105083 forced to die with SIGKILL RUN: Process with pid 89930 forced to die with SIGKILL RUN: Process with pid 104961 forced to die with SIGKILL RUN: Process with pid 92471 forced to die with SIGKILL RUN: Process with pid 104917 forced to die with SIGKILL RUN: Process with pid 90694 forced to die with SIGKILL RUN: Process with pid 105033 forced to die with SIGKILL RUN: Process with pid 131552 forced to die with SIGKILL RUN: Process with pid 90794 forced to die with SIGKILL RUN: Process with pid 105113 forced to die with SIGKILL Runner 73510 exiting Runner 73514 exiting Runner 73508 exiting Runner 73515 exiting Runner 73512 exiting Runner 73511 exiting Runner 73513 exiting Runner 73509 exiting ers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. === End of file valgrind3215 * kill pid for ftp-ipv6 => 88798 * kill pid for http => 73521 * kill pid for socks => 109982 * kill pid for http-ipv6 => 88084 * kill pid for http-proxy => 78298 * kill pid for pop3 => 117587 * kill pid for smtp => 120346 * kill pid for mqtt => 136436 * kill pid for rtsp => 105083 * kill pid for imap => 114678 * kill pid for http-unix => 150376 * kill pid for ftp => 79555 * kill pid for http-ipv6 => 129185 * kill pid for http-proxy => 110953 * kill pid for tftp => 131552 * kill pid for ftp-ipv6 => 88795 * kill pid for http => 73517 * kill pid for socks => 109944 * kill pid for ftp => 79543 * kill pid for socks5unix => 151867 * kill pid for pop3 => 117426 * kill pid for smtp => 120422 * kill pid for imap => 114683 * kill pid for mqtt => 136619 * kill pid for imap => 114681 * kill pid for mqtt => 136424 * kill pid for rtsp => 105110 * kill pid for smtp => 107206 * kill pid for pop3 => 99758 * kill pid for ftp => 79585 * kill pid for socks => 110218 * kill pid for http => 152547 * kill pid for tftp => 126060 * kill pid for http-proxy => 78259 * kill pid for http-ipv6 => 88026 * kill pid for ftp => 86552 * kill pid for pop3 => 117427 * kill pid for rtsp => 105113 * kill pid for mqtt => 136454 * kill pid for imap => 114695 * kill pid for smtp => 107099 * kill pid for http-ipv6 => 128457 * kill pid for http-proxy => 101334 * kill pid for tftp => 90794 * kill pid for http => 73516 * kill pid for gopher => 136928 * kill pid for socks => 110252 * kill pid for ftp => 79516 * kill pid for socks5unix => 151882 * kill pid for pop3 => 117584 * kill pid for smtp => 120358 * kill pid for mqtt => 136552 * kill pid for imap => 107654 * kill pid for rtsp => 104961 * kill pid for http-ipv6 => 88016 * kill pid for http-proxy => 143578 * kill pid for tftp => 89930 * kill pid for ftp-ipv6 => 88766 * kill pid for http => 73520 * kill pid for socks => 109939 * kill pid for gopher-ipv6 => 137093 * kill pid for tftp => 90750 * kill pid for ftp-ipv6 => 88744 * kill pid for http => 73519 * kill pid for gopher => 136898 * kill pid for socks => 110219 * kill pid for http-ipv6 => 140697 * kill pid for http-proxy => 112645 * kill pid for pop3 => 117445 * kill pid for smtp => 120432 * kill pid for mqtt => 136446 * kill pid for imap => 114397 * kill pid for http-unix => 150231 * kill pid for ftp => 131615 * kill pid for pop3 => 117430 * kill pid for imap => 107147 * kill pid for mqtt => 136621 * kill pid for rtsp => 104917 * kill pid for smtp => 120427 * kill pid for tftp => 92471 * kill pid for http => 155301 * kill pid for socks => 110254 * kill pid for ftp => 79480 * kill pid for http-ipv6 => 143657 * kill pid for http-proxy => 90171 * kill pid for tftp => 90694 * kill pid for gopher => 136907 * kill pid for socks => 109934 * kill pid for http => 73522 * kill pid for http-proxy => 110927 * kill pid for http-ipv6 => 151321 * kill pid for rtsp => 105033 * kill pid for mqtt => 161539 * kill pid for imap => 114358 * kill pid for smtp => 107342 * kill pid for pop3 => 117443 * kill pid for ftp => 157322 TESTDONE: 1870 tests were considered during 238 seconds. TESTINFO: 273 tests were skipped due to these restraints: TESTINFO: "curl lacks Debug support" 98 times (159, 356, 358, 359, 363, 412, 413, 437, 438 and 89 more) TESTINFO: "no stunnel" 59 times (300, 301, 302, 303, 304, 305, 306, 307, 308 and 50 more) TESTINFO: "failed starting SSH server" 52 times (582, 583, 600, 601, 602, 603, 604, 605, 606 and 43 more) TESTINFO: "configured as DISABLED" 15 times (323, 433, 594, 836, 882, 938, 1182, 1184, 1209 and 6 more) TESTINFO: "curl lacks manual support" 7 times (1026, 1179, 1461, 1707, 1708, 1709, 1710) TESTINFO: "failed starting HTTP/2 server" 7 times (1700, 1701, 1702, 2402, 2403, 2404, 2405) TESTINFO: "curl lacks Schannel support" 6 times (2033, 2070, 2079, 2087, 3023, 3024) TESTINFO: "no gnutls-serv (with SRP support)" 4 times (320, 321, 322, 324) TESTINFO: "curl has IDN support" 3 times (959, 960, 961) TESTINFO: "curl lacks override-dns support" 3 times (2102, 2103, 2104) TESTINFO: "curl lacks TrackMemory support" 3 times (96, 558, 1330) TESTINFO: "curl lacks ECH support" 2 times (4000, 4001) TESTINFO: "curl lacks ldap support" 2 times (445, 1560) TESTINFO: "curl lacks nghttpx-h3 support" 2 times (2500, 2503) TESTINFO: "Resolving IPv6 'ip6-localhost' didn't work" 2 times (241, 1083) TESTINFO: "curl has IPv6 support" 1 time (1454) TESTINFO: "curl has proxy support" 1 time (375) TESTINFO: "curl has threaded-resolver support" 1 time (506) TESTINFO: "curl lacks Unicode support" 1 time (1703) TESTINFO: "failed starting DICT server" 1 time (1450) TESTINFO: "failed starting HTTP/3 server" 1 time (2502) TESTINFO: "failed starting neg TELNET server" 1 time (1452) TESTINFO: "failed starting SMB server" 1 time (1451) FAIL-IGNORED 573: 'verify connect time with multi interface' HTTP, multi, flaky FAIL-IGNORED 587: 'HTTP multi-part formpost with aborted read callback' HTTP, HTTP POST, FORM, flaky FAIL-IGNORED 1086: 'FTP download with strict timeout and slow data transfer' FTP, EPSV, RETR, timeout, FAILURE, SLOWDOWNDATA, flaky, timing-dependent FAIL-IGNORED 1113: 'FTP wildcard download - changed fnmatch, 2x perform (DOS LIST response)' FTP, RETR, LIST, wildcardmatch, ftplistparser, flaky FAIL-IGNORED 1162: 'FTP wildcard with crazy pattern' FTP, RETR, LIST, wildcardmatch, ftplistparser, flaky FAIL-IGNORED 1163: 'FTP wildcard with pattern ending with an open-bracket' FTP, RETR, LIST, wildcardmatch, ftplistparser, flaky FAIL-IGNORED 1208: 'FTP PORT download, no data conn and no transient negative reply' FTP, PORT, RETR, NODATACONN150, timeout, FAILURE, flaky, timing-dependent FAIL-IGNORED 1510: 'HTTP GET connection cache limit (CURLOPT_MAXCONNECTS)' HTTP, verbose logs, flaky FAIL-IGNORED 1592: 'HTTP request, remove handle while resolving, don't block' HTTP, multi, resolve, speedcheck, flaky, timing-dependent FAIL-IGNORED 2032: 'NTLM connection mapping' HTTP, HTTP GET, HTTP Basic auth, HTTP NTLM auth, NTLM, flaky, timing-dependent IGNORED: failed tests: 573 587 1086 1113 1162 1163 1208 1510 1592 2032 TESTDONE: 26 tests out of 1597 reported OK: 1% FAIL 1: 'HTTP GET' HTTP, HTTP GET FAIL 2: 'HTTP GET with user and password' HTTP, HTTP GET, HTTP Basic auth FAIL 3: 'HTTP POST with auth and contents but with content-length set to 0' HTTP, HTTP POST, HTTP Basic auth FAIL 4: 'Replaced internal and added custom HTTP headers' HTTP, HTTP GET, HTTP added headers, HTTP replaced headers FAIL 5: 'HTTP over proxy' HTTP, HTTP GET, HTTP proxy FAIL 6: 'HTTP with simple cookie send' HTTP, HTTP GET, HTTP set cookie, cookies FAIL 7: 'HTTP with cookie parser and header recording' HTTP, HTTP GET, cookies, header dump FAIL 8: 'HTTP with cookie parsing from header file' HTTP, HTTP GET, cookies FAIL 9: 'HTTP RFC1867-type formposting' HTTP, HTTP FORMPOST, HTTP file upload FAIL 10: 'simple HTTP PUT from file' HTTP, HTTP PUT FAIL 11: 'simple HTTP Location: following' HTTP, HTTP GET, followlocation FAIL 12: 'HTTP range support' HTTP, HTTP GET, Content-Range FAIL 13: 'HTTP custom request 'DELETE'' HTTP, HTTP custom request FAIL 14: 'HTTP HEAD with Connection: close' HTTP, HTTP HEAD FAIL 15: '--write-out test' HTTP, HTTP GET, --write-out FAIL 16: 'HTTP with proxy authorization' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth FAIL 17: 'HTTP with config file on stdin' HTTP, HTTP custom request, config file FAIL 18: 'multiple requests using {} in URL' HTTP, HTTP GET, globbing, {} list FAIL 19: 'attempt connect to non-listening socket' HTTP, connect to non-listen, FAILURE FAIL 20: 'attempt connect to non-existing host name' HTTP, FAILURE, non-existing host FAIL 21: 'use curl with multiple request methods' FAILURE, multiple HTTP requests FAIL 22: 'get HTTP with URL > 10000 bytes' HTTP, long URL FAIL 23: 'unsupported protocol:// URL' unsupported scheme, FAILURE FAIL 24: 'HTTP GET fail silently on HTTP error return' HTTP, HTTP GET, --fail FAIL 25: 'looping HTTP Location: following with --max-redirs' HTTP, HTTP GET, followlocation, --max-redirs FAIL 26: 'specify more -o than URLs' HTTP, HTTP GET FAIL 27: 'Get same cookie page several times' HTTP, HTTP GET, cookies FAIL 28: 'HTTP Location: following with extra spaces in header' HTTP, HTTP GET FAIL 29: 'HTTP with 2 secs timeout' HTTP, HTTP GET, timeout, FAILURE FAIL 30: 'HTTP with no data in server reply' HTTP, HTTP GET, FAILURE FAIL 31: 'HTTP with weirdly formatted cookies and cookiejar storage' HTTP, HTTP GET, cookies, cookiejar FAIL 32: 'HTTP with -d and -G' HTTP, HTTP GET, -G FAIL 33: 'HTTP PUT with resume' HTTP, HTTP PUT, Resume, Content-Range FAIL 34: 'HTTP GET with chunked Transfer-Encoding' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 35: 'HTTP POST binary data with embedded NUL' HTTP, HTTP POST, --data-binary FAIL 36: 'HTTP GET with bad chunked Transfer-Encoding' HTTP, HTTP GET, chunked Transfer-Encoding, FAILURE FAIL 37: 'HTTP GET with nothing returned from server' HTTP, HTTP GET, FAILURE FAIL 38: 'HTTP resume request without server supporting it' HTTP, HTTP GET, Resume, FAILURE FAIL 39: 'HTTP RFC1867-type formposting with filename= and type=' HTTP, HTTP FORMPOST FAIL 40: 'HTTP redirect with whitespace after ? (and conversion)' HTTP, HTTP GET, followlocation FAIL 41: 'HTTP formpost with missing file' HTTP, HTTP FORMPOST, FAILURE FAIL 42: 'HTTP redirect with whitespace in path (and conversion)' HTTP, HTTP GET, followlocation FAIL 43: 'HTTP Location: following over HTTP proxy' HTTP, HTTP GET, followlocation, HTTP proxy FAIL 44: 'HTTP RFC1867-type formposting without Expect: header' HTTP, HTTP FORMPOST, HTTP replaced headers FAIL 45: 'simple HTTP Location: without protocol in initial URL' HTTP, HTTP GET, followlocation FAIL 46: 'HTTP with bad domain name, get cookies and store in cookie jar' HTTP, HTTP GET, cookies, cookiejar, --resolve FAIL 47: 'simple HTTP 1.0 GET' HTTP, HTTP GET, HTTP/1.0 FAIL 48: 'HTTP with -d and -G and -I' HTTP, HTTP HEAD, -G FAIL 49: 'HTTP follow redirect with ../' HTTP, HTTP GET, followlocation FAIL 50: 'HTTP follow redirect with ../../' HTTP, HTTP GET, followlocation FAIL 51: 'HTTP follow redirect with excessive ../' HTTP, HTTP GET, followlocation FAIL 52: 'HTTP follow redirect with ./-prefix' HTTP, HTTP GET, followlocation FAIL 53: 'HTTP, junk session cookies' HTTP, HTTP GET, cookies FAIL 54: 'HTTP with blank Location:' HTTP, HTTP GET, followlocation FAIL 55: 'HTTP follow redirect with single slash in path' HTTP, HTTP GET, followlocation FAIL 56: 'HTTP POST with *HUGE* request and chunked transfer-encoding' HTTP, HTTP POST, chunked Transfer-Encoding, config file, -A FAIL 57: 'HTTP content-type with spaces in' HTTP, HTTP GET, --write-out FAIL 58: 'HTTP PUT from file with weird letters' HTTP, HTTP PUT FAIL 59: 'HTTP URL with slash but with "parameter"' HTTP, HTTP GET FAIL 60: 'HTTP PUT from stdin with wrong content-length' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 61: 'HTTP with various cookies and custom Host:' HTTP, HTTP GET, cookies, cookiejar, HTTP replaced headers, httponly FAIL 62: 'HTTP, send cookies when using custom Host:' HTTP, HTTP GET, HTTP replaced headers, cookies, httponly FAIL 63: 'HTTP with proxy authorization set in environment' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth, http_proxy FAIL 64: 'HTTP with Digest authorization' HTTP, HTTP GET, HTTP Digest auth FAIL 65: 'HTTP with Digest authorization with bad password' HTTP, HTTP GET, HTTP Digest auth FAIL 66: 'HTTP GET without headers in the response' HTTP, HTTP GET, HTTP/0.9 FAIL 67: 'HTTP with NTLM authorization' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 68: 'HTTP with NTLM authorization and wrong password' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 69: 'HTTP with NTLM, Basic or Wild-and-crazy authorization' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 70: 'HTTP with Digest *OR* NTLM authorization' HTTP, HTTP GET, HTTP Digest auth, --anyauth FAIL 71: 'HTTP and -F upload in config file' HTTP, HTTP FORMPOST, config file FAIL 72: 'HTTP with Digest *OR* Basic authorization' HTTP, HTTP GET, HTTP Digest auth FAIL 73: 'HTTP, receive cookies when using custom Host:, domain using only two dots' HTTP, HTTP GET, cookies, cookiejar FAIL 74: 'HTTP, urlglob {}-retrieval and -o #[num] usage' HTTP, HTTP GET, globbing, {} list FAIL 75: 'HTTP, urlglob retrieval with bad range' HTTP, HTTP GET, globbing, FAILURE FAIL 76: 'HTTP with comma-separated WWW-Authenticate header' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 77: 'HTTP with -z "older date"' HTTP, HTTP GET, If-Modified-Since, -z FAIL 78: 'HTTP with -z "newer date"' HTTP, HTTP GET, If-Modified-Since, -z FAIL 79: 'FTP over HTTP proxy' FTP, HTTP, HTTP GET, HTTP proxy FAIL 80: 'HTTP 1.0 CONNECT with proxytunnel and proxy+host Basic authentication' HTTP, HTTP GET, HTTP CONNECT, HTTP Basic auth, HTTP proxy, HTTP proxy Basic auth, proxytunnel FAIL 81: 'HTTP with proxy using NTLM authorization' HTTP, HTTP GET, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 82: 'HTTP with proxy requiring NTLM, but we send Basic' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth, HTTP proxy NTLM auth FAIL 83: 'HTTP over proxy-tunnel with site authentication' HTTP, HTTP GET, HTTP CONNECT, HTTP Basic auth, proxytunnel FAIL 84: 'HTTP over proxy with site authentication' HTTP, HTTP GET, HTTP Basic auth, HTTP proxy FAIL 85: 'HTTP over proxy with site and proxy authentication' HTTP, HTTP GET, HTTP Basic auth, HTTP proxy, HTTP proxy Basic auth FAIL 86: 'HTTP, urlglob []-retrieval and -o #[num] usage' HTTP, HTTP GET, globbing, [] range FAIL 87: 'urlglob with out of range -o #[num] usage' HTTP, HTTP GET, globbing, [] range, FAILURE FAIL 88: 'HTTP PUT with Digest authorization' HTTP, HTTP PUT, HTTP Digest auth FAIL 89: 'HTTP with NTLM and follow-location' HTTP, HTTP GET, HTTP NTLM auth, followlocation, NTLM FAIL 90: 'HTTP with NTLM via --anyauth, and then follow-location with NTLM again' HTTP, HTTP GET, HTTP NTLM auth, --anyauth, followlocation, NTLM FAIL 91: 'HTTP with NTLM/Negotiate/Basic, anyauth and user with domain, with size 0' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 92: 'HTTP resume transfer with the whole file already downloaded' HTTP, HTTP GET, Content-Range, Resume FAIL 93: 'HTTP GET with failed proxy auth' HTTP, HTTP GET, HTTP proxy FAIL 94: 'HTTPS GET with failed proxy auth (CONNECT 1.0)' HTTPS, HTTP GET, HTTP CONNECT, HTTP proxy, FAILURE FAIL 95: 'HTTP over proxytunnel using POST' HTTP, HTTP POST, HTTP CONNECT, proxytunnel FAIL 97: 'HTTP POST with custom content-type' HTTP, HTTP POST, HTTP replaced headers FAIL 98: 'HTTP PUT from stdin with set size, disabling chunked transfer-encoding' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 99: 'HTTP GET with large-file resume point and failed resume' HTTP, HTTP GET, Resume, Largefile, FAILURE FAIL 100: 'FTP dir list PASV' FTP, PASV, LIST FAIL 101: 'FTP dir list, PORT with specified IP' FTP, PORT, LIST FAIL 102: 'FTP RETR PASV' FTP, PASV, RETR FAIL 103: 'FTP RETR PORT with CWD' FTP, PORT, RETR FAIL 104: 'FTP --head to get file size only' FTP, NOBODY FAIL 105: 'FTP user+password in URL and ASCII transfer' FTP, PASV, TYPE A, RETR FAIL 106: 'FTP GET with type=A style ASCII URL using %20 codes' FTP, EPSV, TYPE A, RETR, type= FAIL 107: 'FTP PASV upload file' FTP, EPSV, STOR FAIL 108: 'FTP PORT upload with CWD' FTP, PORT, STOR FAIL 109: 'FTP PASV upload append' FTP, EPSV, APPE FAIL 110: 'FTP download resume with set limit' FTP, PASV, RETR, Resume FAIL 111: 'FTP download resume beyond file size' FTP, EPSV, Resume, FAILURE FAIL 112: 'FTP PASV upload resume' FTP, EPSV, APPE, Resume FAIL 113: 'FTP download, failed login: USER not valid' FTP, FAILURE FAIL 114: 'FTP download, failed login: PASS not valid' FTP, FAILURE FAIL 115: 'FTP download, failed PASV' FTP, PASV, FAILURE FAIL 116: 'FTP download, failed PORT' FTP, EPRT, PORT, FAILURE, EPRT refused FAIL 117: 'FTP download, failed TYPE' FTP, FAILURE FAIL 118: 'FTP download, failed RETR' FTP, PASV, RETR, FAILURE FAIL 119: 'FTP download, failed RETR with PORT' FTP, PORT, RETR, FAILURE FAIL 120: 'ftp download with post-quote delete operation' FTP, PASV, RETR, post-quote FAIL 121: 'ftp download with post- and pre-transfer delete operations' FTP, EPSV, RETR, post-quote, pre-quote FAIL 122: 'FTP download resume with whole file already downloaded' FTP, PASV, Resume FAIL 123: 'FTP upload resume with whole file already downloaded' FTP, EPSV, Resume FAIL 124: 'FTP download, failed PWD' FTP, PASV, RETR FAIL 125: 'FTP download, failed CWD' FTP, FAILURE FAIL 126: 'FTP download with multiple replies at once in RETR' FTP, EPSV, RETR, RETRWEIRDO FAIL 127: 'FTP --disable-epsv' FTP, PASV, RETR, --disable-epsv FAIL 128: 'FTP upload with --crlf' FTP, EPSV, STOR, --crlf FAIL 129: 'HTTP/1.2 is rejected' HTTP, HTTP GET FAIL 130: 'FTP (optional .netrc; no user/pass) dir list PASV' FTP, EPSV, LIST, netrc FAIL 131: 'FTP (optional .netrc; user/no pass) dir list PASV' FTP, EPSV, LIST, netrc FAIL 132: 'FTP (optional .netrc; user/passwd supplied) dir list PASV' FTP, EPSV, LIST, netrc FAIL 133: 'FTP compulsory .netrc; ignore passwd in URL' FTP, EPSV, LIST, netrc FAIL 134: 'FTP (optional .netrc; programmatic user/passwd) dir list PASV' FTP, EPSV, LIST, netrc FAIL 135: 'FTP retrieve a byte-range' FTP, EPSV, RETR, Range FAIL 136: 'FTP with user and no password' FTP, EPSV, RETR FAIL 137: 'FTP download without size in RETR string' FTP, RETR, --data-binary FAIL 138: 'FTP download without size in RETR string and no SIZE command' FTP, RETR FAIL 139: 'FTP download a newer file with -z' FTP, RETR, -z FAIL 140: 'FTP download file with -z, expected to not transfer' FTP, -z, --data-binary FAIL 141: 'FTP download info with -I' FTP, NOBODY FAIL 142: 'FTP URL with 150 dir levels' FTP FAIL 143: 'FTP URL with type=a' FTP, RETR, type= FAIL 144: 'FTP NLST dir list without contents, using PORT' FTP, PORT, NLST, --data-binary FAIL 145: 'FTP NLST dir list with weird reply code, using PORT' FTP, NLST, PORT FAIL 146: 'persistent FTP with different paths' FTP, RETR, persistent connection FAIL 147: 'FTP with --ftp-create-dirs (failing CWD)' FTP FAIL 148: 'FTP with --ftp-create-dirs (failing MKD)' FTP FAIL 149: 'FTP with multiple uploads' FTP FAIL 150: 'HTTP with NTLM authorization and --fail' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 151: 'HTTP GET with an error code that might trick authentication' HTTP, HTTP GET FAIL 152: 'HTTP GET with an error code that might trick authentication and --fail' HTTP, HTTP GET, --fail FAIL 153: 'HTTP with Digest authorization with stale=true' HTTP, HTTP GET, HTTP Digest auth FAIL 154: 'HTTP PUT with --anyauth authorization (picking Digest)' HTTP, HTTP PUT, HTTP Digest auth, --anyauth FAIL 155: 'HTTP PUT with --anyauth authorization (picking NTLM)' HTTP, HTTP PUT, HTTP NTLM auth, NTLM FAIL 156: 'HTTP PUT with --anyauth (when the server requires none)' HTTP, HTTP PUT, --anyauth FAIL 157: 'HTTP GET with --anyauth (when the server requires none)' HTTP, HTTP GET, --anyauth FAIL 158: 'HTTP multipart formpost with only a 100 reply' HTTP, HTTP POST FAIL 160: 'HTTP with delayed close, conn reuse, connection reset and retry' HTTP, HTTP GET, DELAY FAIL 161: 'FTP RETR PASV' FTP, CURLE_PARTIAL_FILE, RETR, PASV FAIL 162: 'HTTP GET asking for --proxy-ntlm when some other authentication is required' HTTP, HTTP GET, HTTP proxy, HTTP proxy NTLM auth, FAILURE FAIL 163: 'HTTP multipart formpost with contents from a file' HTTP, HTTP POST FAIL 164: 'HTTP range with multiple ranges' HTTP, HTTP GET FAIL 165: 'HTTP over proxy with IDN host name' HTTP, HTTP GET, HTTP proxy, IDN FAIL 166: 'HTTP formpost a file with spaces in name' HTTP, HTTP POST FAIL 167: 'HTTP with proxy-requiring-Basic to site-requiring-Digest' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth, HTTP Digest auth FAIL 168: 'HTTP with proxy-requiring-Digest to site-requiring-Digest' HTTP, HTTP GET, HTTP proxy, HTTP proxy Digest auth, HTTP Digest auth FAIL 169: 'HTTP with proxy-requiring-NTLM to site-requiring-Digest' HTTP, HTTP GET, HTTP proxy, HTTP proxy NTLM auth, HTTP Digest auth, NTLM FAIL 170: 'HTTP POST with --proxy-ntlm and no SSL with no response' HTTP, HTTP POST, HTTP proxy, HTTP proxy NTLM auth FAIL 171: 'HTTP, get cookie with dot prefixed full domain' HTTP, HTTP GET, HTTP proxy, cookies FAIL 172: 'HTTP with cookies file and custom added cookie' HTTP, HTTP GET, cookies FAIL 173: 'HTTP RFC1867-formpost a file from stdin with "faked" filename' HTTP, HTTP POST FAIL 174: 'HTTP POST --anyauth to server not requiring any auth at all' HTTP, HTTP POST FAIL 175: 'HTTP POST --digest to server not requiring any auth at all' HTTP, HTTP POST, HTTP Digest auth FAIL 176: 'HTTP POST --ntlm to server not requiring any auth at all' HTTP, HTTP POST, HTTP NTLM auth FAIL 177: 'HTTP POST --digest to server doing a 302-location response' HTTP, HTTP POST, HTTP Digest auth, followlocation FAIL 178: 'HTTP response with negative Content-Length' HTTP, HTTP GET FAIL 179: 'HTTP using proxy and cookies with path checks' HTTP, HTTP GET, HTTP proxy, cookies FAIL 180: 'HTTP 1.0 PUT' HTTP, HTTP PUT, HTTP/1.0 FAIL 181: 'HTTP 1.0 POST' HTTP, HTTP POST, HTTP/1.0 FAIL 182: 'FTP download an empty file' FTP FAIL 183: 'HTTP GET two URLs over a single proxy with persistent connection' HTTP, HTTP GET, HTTP proxy, persistent connection FAIL 184: 'HTTP replace Host: when following Location: to new host' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 185: 'HTTP replace Host: when following Location: on the same host' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 186: 'HTTP RFC1867-type formposting with types on text fields' HTTP, HTTP POST FAIL 187: 'HTTP redirect with bad host name separation and slash in parameters' HTTP, HTTP GET, followlocation FAIL 188: 'HTTP GET with resume and redirect' HTTP, HTTP GET, Content-Range, Resume, followlocation FAIL 189: 'HTTP GET with resume and redirect (to a page that doesn't resume)' HTTP, HTTP GET FAIL 190: 'FTP download with strict timeout and slow CWD' FTP, timeout, FAILURE, DELAY FAIL 191: 'FTP URL with ?-letters in username and password' FTP FAIL 192: 'HTTP GET -w num_connects with one simple connect' HTTP, HTTP GET FAIL 193: 'HTTP GET -w num_connects with redirected fetch (2 connects)' HTTP, HTTP GET, followlocation, --write-out FAIL 194: 'HTTP resume transfer with the whole file already downloaded and --fail' HTTP, HTTP GET, Content-Range, Resume FAIL 195: 'FTP response 530 after PASS, temporarily not allowed access' FTP FAIL 196: 'FTP transient error, retry request once' FTP, retry FAIL 197: 'HTTP GET --retry on 503 error with output to stdout' HTTP, HTTP GET, retry FAIL 198: 'HTTP GET --retry on 503 error with output to file' HTTP, HTTP GET, retry FAIL 199: 'HTTP with -d, -G and {}' HTTP, HTTP GET, globbing FAIL 200: 'basic file:// file' FILE FAIL 201: 'missing file:// file' FILE, FAILURE FAIL 202: 'two file:// URLs to stdout' FILE FAIL 203: 'file:/path URL with a single slash' FILE FAIL 204: '"upload" with file://' FILE FAIL 205: '"upload" nonexisting with file://' FILE, FAILURE FAIL 206: 'HTTP proxy CONNECT auth Digest' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, HTTP proxy Digest auth FAIL 207: 'HTTP GET with chunked Transfer-Encoding closed prematurely' HTTP, HTTP GET, CURLE_PARTIAL_FILE, FAILURE, chunked Transfer-Encoding FAIL 208: 'HTTP PUT to an FTP URL with username+password - over HTTP proxy' FTP, HTTP, HTTP PUT, HTTP proxy FAIL 209: 'HTTP proxy CONNECT auth NTLM' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 210: 'Get two FTP files from the same remote dir: no second CWD' FTP FAIL 211: 'Get two FTP files with no remote EPSV support' FTP FAIL 212: 'Get two FTP files with no remote EPRT support' FTP, EPRT FAIL 213: 'HTTP 1.0 proxy CONNECT auth NTLM and then POST' HTTP, HTTP POST, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 214: 'HTTP URL with escaped { and }' HTTP, HTTP GET FAIL 215: 'Get two FTP dir listings from the same remote dir: no second CWD' FTP FAIL 216: 'FTP upload two files to the same dir' FTP FAIL 217: 'HTTP proxy CONNECT to proxy returning 405' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, followlocation, --write-out FAIL 218: 'HTTP PUT from a file but enforce chunked transfer-encoding' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 219: 'try using proxy with unsupported scheme' proxy, unsupported scheme FAIL 220: 'HTTP GET gzip compressed content' HTTP, HTTP GET, compressed FAIL 221: 'HTTP GET gzip compressed content with broken gzip header' HTTP, HTTP GET, compressed, FAILURE FAIL 222: 'HTTP GET deflate compressed content' HTTP, HTTP GET, compressed FAIL 223: 'HTTP GET deflate compressed content with broken deflate header' HTTP, HTTP GET, compressed, FAILURE FAIL 224: 'HTTP GET gzip compressed content with huge comment and extra field' HTTP, HTTP GET, compressed FAIL 225: 'FTP %0a-code in URL's name part' FTP, FAILURE FAIL 226: 'FTP %0d-code in URL's CWD part' FTP, FAILURE FAIL 227: 'FTP with quote ops' FTP, post-quote, pre-quote FAIL 228: 'FTP RETR with ACCT' FTP, ACCT FAIL 229: 'FTP RETR with bad ACCT' FTP, ACCT, FAILURE FAIL 230: 'HTTP GET multiply compressed content' HTTP, HTTP GET, compressed FAIL 231: 'file:// with resume' FILE FAIL 232: 'HTTP GET deflate raw-compressed content' HTTP, HTTP GET, compressed FAIL 233: 'HTTP, proxy, site+proxy auth and Location: to new host' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation FAIL 234: 'HTTP, proxy, site+proxy auth and Location: to new host location-trusted' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth, followlocation, --location-trusted FAIL 235: 'FTP resumed upload but no file present remotely' FTP, STOR FAIL 236: 'FTP resume upload but denied access to remote file' FTP FAIL 237: 'FTP getting bad host in 227-response to PASV' FTP FAIL 238: 'FTP getting bad port in response to EPSV' FTP FAIL 239: 'HTTP proxy-auth NTLM and then POST' HTTP, HTTP POST, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 240: 'HTTP-IPv6 GET' HTTP, HTTP GET, IPv6 FAIL 242: 'HTTP-IPv6 GET with username+password in URL' HTTP, HTTP GET, IPv6, HTTP Basic auth FAIL 243: 'HTTP POST with --proxy-anyauth, picking NTLM' HTTP, HTTP GET, HTTP proxy, HTTP proxy NTLM auth, --proxy-anyauth, NTLM FAIL 244: 'FTP dir listing with nocwd and URL encoded path' FTP, PASV, CWD, --ftp-method, nocwd FAIL 245: 'HTTP POST --digest' HTTP, HTTP POST, HTTP Digest auth FAIL 246: 'HTTP POST --digest with server doing a 100 before 401 response' HTTP, HTTP POST, HTTP Digest auth FAIL 247: 'FTP upload time condition evaluates TRUE => skip upload' FTP, MDTM FAIL 248: 'FTP upload time condition evaluates FALSE => upload anyway' FTP, STOR, MDTM FAIL 249: 'HTTP 304 response with "illegal" Content-Length: header' HTTP, HTTP GET, -z FAIL 250: 'FTP dir list PASV with slow response' FTP, SLOWDOWN FAIL 251: 'FTP dir list, PORT with specified IP and slow response' FTP, SLOWDOWN FAIL 252: 'FTP IPv6 dir list PASV' FTP, FTP-ipv6, IPv6, EPSV FAIL 253: 'FTP IPv6 dir list with EPRT' FTP, FTP-ipv6, IPv6, EPRT FAIL 254: 'FTP IPv6 dir list PASV and --disable-epsv' FTP, FTP-ipv6, IPv6, EPSV, --disable-epsv FAIL 255: 'FTP IPv6 dir list with EPRT and --disable-eprt' FTP, FTP-ipv6, IPv6, EPRT, --disable-eprt FAIL 256: 'HTTP resume request over proxy with auth without server supporting it' HTTP, HTTP GET, HTTP proxy, Resume, FAILURE FAIL 257: 'HTTP Location: following with --netrc-optional' HTTP, HTTP GET, HTTP proxy, HTTP Basic auth, followlocation, netrc FAIL 258: 'HTTP POST multipart without Expect: header using proxy anyauth (Digest)' HTTP, HTTP FORMPOST, HTTP replaced headers, HTTP proxy, HTTP proxy Digest auth, --proxy-anyauth FAIL 259: 'HTTP POST multipart with Expect: header using proxy anyauth (Digest)' HTTP, HTTP FORMPOST, HTTP proxy, HTTP proxy Digest auth, --proxy-anyauth FAIL 260: 'HTTP GET URL without slash but with question mark' HTTP, HTTP GET FAIL 261: 'FTP RETR with 226 response code to TYPE' FTP, EPSV, RETR FAIL 262: 'Reject HTTP response with binary zero in header' HTTP, HTTP GET FAIL 263: 'HTTP-IPv6 GET with proxy specified using IPv6-numerical address' HTTP, HTTP GET, IPv6, HTTP proxy FAIL 264: 'HTTP with proxy string including http:// and user+password' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth FAIL 265: 'HTTP proxy CONNECT auth NTLM and then POST, response-body in the 407' HTTP, HTTP POST, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 266: 'HTTP GET with chunked Transfer-Encoding and chunked trailer' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 267: 'HTTP POST with NTLM authorization and added custom headers' HTTP, HTTP POST, HTTP NTLM auth, NTLM FAIL 268: 'JSON encoding of Unicode string' HTTP, variables FAIL 269: 'HTTP --ignore-content-length' HTTP, HTTP GET FAIL 270: 'FTP RETR PASV --ftp-skip-pasv-ip' FTP, PASV, RETR FAIL 271: 'TFTP retrieve' TFTP, TFTP RRQ FAIL 272: 'FTP timed conditioned get file with identical time stamp' FTP, PASV, RETR FAIL 273: 'HTTP with two Digest authorization headers' HTTP, HTTP GET, HTTP Digest auth FAIL 274: 'HTTP Location: following with --max-redirs 0' HTTP, HTTP GET, followlocation, --max-redirs FAIL 275: 'HTTP CONNECT with proxytunnel getting two URLs from the same host' HTTP, HTTP GET, HTTP CONNECT, HTTP Basic auth, HTTP proxy, HTTP proxy Basic auth, proxytunnel FAIL 276: 'HTTP Location: following with multiple question marks in URLs' HTTP, HTTP GET, followlocation FAIL 277: 'HTTP RFC1867-type formposting with custom Content-Type' HTTP, HTTP FORMPOST FAIL 278: 'HTTP with proxy string including http:// and user+empty password' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth FAIL 279: 'HTTP with proxy string including http:// and user only' HTTP, HTTP GET, HTTP proxy, HTTP proxy Basic auth FAIL 280: 'FTP --ftp-alternative-to-user on USER failure' FTP, PASV, LIST, --ftp-alternative-to-user FAIL 281: 'HTTP PUT from file with 100 + 401 responses and -f without auth given' HTTP, HTTP PUT FAIL 282: 'HTTP GET with no response body or headers' HTTP, HTTP GET FAIL 283: 'TFTP retrieve on invalid file' TFTP, TFTP RRQ, FAILURE FAIL 284: 'TFTP retrieve of boundary case 512 byte file' TFTP, TFTP RRQ FAIL 285: 'TFTP send' TFTP, TFTP WRQ FAIL 286: 'TFTP send of boundary case 512 byte file' TFTP, TFTP WRQ FAIL 287: 'HTTP proxy CONNECT with custom User-Agent header' HTTP, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 288: 'file:// with (unsupported) proxy, authentication and range' FILE FAIL 289: 'FTP resume upload but denied access to local file' FTP, STOR, Resume, FAILURE FAIL 290: 'FTP download maximum filesize exceeded' FTP, --max-filesize FAIL 291: 'FTP download maximum filesize not exceeded' FTP, RETR, --max-filesize FAIL 292: 'HTTP GET with maximum filesize not exceeded' HTTP, HTTP GET, --max-filesize FAIL 293: 'HTTP GET with maximum filesize exceeded' HTTP, HTTP GET, --max-filesize, FAILURE FAIL 294: 'FTP --ftp-account on ACCT request' FTP, PASV, LIST, ACCT, --ftp-account FAIL 295: 'FTP ACCT request without --ftp-account' FTP, PASV, LIST, ACCT, FAILURE FAIL 296: 'FTP CWD with --ftp-method multicwd' FTP, PASV, CWD, --ftp-method, multicwd FAIL 297: 'FTP CWD with --ftp-method singlecwd' FTP, PASV, CWD, --ftp-method, singlecwd FAIL 298: 'FTP CWD with --ftp-method nocwd' FTP, PASV, CWD, --ftp-method, nocwd FAIL 299: 'FTP over HTTP proxy with user:pass not in url' FTP, HTTP, CURLOPT_USERPWD, HTTP proxy FAIL 314: 'HTTP GET brotli compressed content' HTTP, HTTP GET, compressed FAIL 315: 'HTTP GET brotli compressed content with broken header' HTTP, HTTP GET, compressed, FAILURE FAIL 316: 'HTTP GET brotli compressed content of size more than CURL_MAX_WRITE_SIZE' HTTP, HTTP GET, compressed FAIL 317: 'HTTP with custom Authorization: and redirect to new host' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation FAIL 318: 'HTTP with custom Authorization: and redirect to new host' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation FAIL 319: 'HTTP GET gobbledigook transfer-encoded data in raw mode' HTTP, HTTP GET, Transfer-Encoding, --raw FAIL 326: 'HTTP GET chunked data in raw mode' HTTP, HTTP GET FAIL 327: 'HTTP with cookiejar without cookies left' HTTP, HTTP GET, cookies, header dump FAIL 328: 'HTTP with "Content-Encoding: none' HTTP, HTTP GET, Content-Encoding FAIL 329: 'HTTP cookie with Max-Age=0' HTTP, HTTP GET, cookies FAIL 330: 'HTTP with custom Cookie: and redirect to new host' HTTP, HTTP proxy, followlocation, cookies FAIL 331: 'HTTP with cookie using host name 'moo'' HTTP, HTTP GET, HTTP proxy, cookies FAIL 332: 'TFTP retrieve with blksize 400' TFTP, TFTP RRQ, FAILURE FAIL 333: 'Try a non-boolean command line option with --no-' cmdline FAIL 334: 'HTTP 204 No content with chunked header' HTTP, 204 FAIL 335: 'HTTP with proxy Digest and site Digest with creds in URLs' HTTP, HTTP GET, HTTP proxy, HTTP proxy Digest auth, HTTP Digest auth, HTTP auth in URL FAIL 336: 'FTP range download when SIZE doesn't work' FTP, PASV, TYPE A, RETR FAIL 337: 'FTP range download with SIZE returning extra crap' FTP, PASV, TYPE A, RETR FAIL 338: 'ANYAUTH connection reuse of non-authed connection' HTTP, HTTP GET FAIL 339: 'Check if --etag-save saved correct etag to a file' HTTP, HTTP GET FAIL 340: 'FTP using %00 in path with singlecwd' FTP, PASV, CWD, --ftp-method, singlecwd FAIL 341: 'A non existing file with --etag-compare is just a blank' HTTP, HTTP GET FAIL 342: 'Check if --etag-compare set correct etag in header' HTTP, HTTP GET FAIL 343: 'Both --etag-compare and --etag-save to save new Etag' HTTP, HTTP GET FAIL 344: 'Both --etag-compare and -save store new Etag using non-existing file' HTTP, HTTP GET FAIL 345: 'Both --etag-compare and -save store new Etag using one pre-existing file' HTTP, HTTP GET FAIL 346: 'HTTP GET over proxy with credentials using blank passwords' HTTP, proxy FAIL 347: '--etag-save with blank incoming header' HTTP, HTTP GET FAIL 348: 'FTP upload file with 552 disk full response' FTP, EPSV, STOR FAIL 349: 'HTTP GET --fail-with-body on HTTP error return' HTTP, HTTP GET, --fail-with-body FAIL 350: 'FTP root dir list multicwd' FTP, PASV, LIST FAIL 351: 'FTP root dir list nocwd' FTP, PASV, LIST FAIL 352: 'FTP root dir list singlecwd' FTP, PASV, LIST FAIL 353: 'FTP home dir list singlecwd' FTP, PASV, LIST FAIL 354: 'FTP without password' FTP, PASV, RETR FAIL 355: 'load Alt-Svc from file and use' HTTP, Alt-Svc FAIL 357: 'HTTP PUT with Expect: 100-continue and 417 response' HTTP, HTTP PUT, Expect: 100-continue FAIL 360: 'Error on both --fail-with-body and --fail' --fail, --fail-with-body FAIL 361: 'HTTP GET --fail-with-body on HTTP error return - twice' HTTP, HTTP GET, --fail-with-body FAIL 362: 'FTP resume upload file with nothing to start from' FTP, EPSV, STOR FAIL 365: 'HTTP/1.1 with chunked AND Content-Length headers' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 366: 'HTTP --retry-max-time with too long Retry-After' HTTP, HTTP GET, retry FAIL 367: 'Empty user name provided in URL' HTTP, HTTP GET, HTTP Basic auth FAIL 368: 'Append dash if -r range specified without one' HTTP, HTTP GET, Range FAIL 369: '--etag-save with bad path then working transfer' HTTP, HTTP GET, etag FAIL 370: '--etag-save with bad path - no transfer' HTTP, HTTP GET, etag FAIL 371: 'using more -o than URLs in the command line' HTTP, HTTP GET FAIL 372: 'Binary zero in data element.' HTTP, HTTP GET FAIL 373: 'Chunked transfer encoding - Multiple valid chunks with binary zeros.' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 374: 'Valid gif with two frames. No new line in data section.' HTTP, HTTP GET, gif data FAIL 376: '--remove-on-error' HTTP, HTTP GET FAIL 378: 'Reject using -T and -d at once' HTTP PUT, HTTP POST FAIL 379: '--remove-on-error with --no-clobber and an added number' HTTP, HTTP GET FAIL 380: 'pick netrc password based on user name in URL' FTP, EPSV, LIST, netrc FAIL 381: 'netrc-optional lets URL creds override netrc' FTP, EPSV, LIST, netrc FAIL 383: 'HTTP with --json' HTTP, HTTP POST, --json FAIL 384: 'HTTP with --json from stdin' HTTP, HTTP POST, --json FAIL 385: 'HTTP with --json x 2' HTTP, HTTP POST, --json FAIL 386: 'HTTP with --json + --next' HTTP, HTTP POST, --json FAIL 387: 'Response with overly long compression chain' HTTP, gzip FAIL 388: 'HTTP with Digest and multiple qop values with leading space' HTTP, HTTP GET, HTTP Digest auth FAIL 389: '*.localhost is a local host' HTTP, .localhost FAIL 390: 'curl HTTP, FILE and FTP in parallel' HTTP, FTP, parallel FAIL 391: '--path-as-is with redirect, keeping dotdots' HTTP, HTTP GET, --path-as-is FAIL 392: 'HTTP secure cookies over localhost' HTTP, HTTP GET, cookies, secure FAIL 393: 'HTTP max-filesize and out-of-range Content-Length' HTTP, HTTP GET, --max-filesize, FAILURE FAIL 394: 'HTTP with rubbish in Content-Length' HTTP, HTTP GET, FAILURE FAIL 395: 'HTTP and out-of-range Content-Length' HTTP, HTTP GET FAIL 396: 'HTTP GET zstd compressed content' HTTP, HTTP GET, compressed FAIL 397: 'HTTP GET zstd compressed content of size more than CURL_MAX_WRITE_SIZE' HTTP, HTTP GET, compressed FAIL 398: 'Reject HTTP/1.1 response with colon-less header' HTTP, HTTP GET FAIL 399: '65536 bytes long host name in URL' URL FAIL 402: 'FTP SSL required on non-SSL server' FTP, FTPS, FAILURE FAIL 405: 'FTPS operation to FTP port' FTP, FTPS, FAILURE FAIL 411: '-K with missing file causes error' -K FAIL 415: 'HTTP response with control code then negative Content-Length' HTTP, HTTP GET FAIL 416: 'FTP growing file support' FTP, EPSV, RETR, Range FAIL 418: 'Response with multiple Transfer-Encoding headers' HTTP, gzip FAIL 419: '--dump-header to file that cannot be created' --dump-header, FAILURE FAIL 420: 'Setting cookies set with expired dates that were loaded from jar' HTTP, HTTP GET, cookies FAIL 421: 'HTTP GET multiple headers and %{header_json}' header_json FAIL 422: 'use --next with missing URL before it' cmdline, --next FAIL 423: '-w with url.* variables' -w, --write-out FAIL 424: '-w with urle.* variables' -w, --write-out FAIL 425: 'HTTP PUT with path ending with slash + query' HTTP, HTTP PUT FAIL 426: 'try --data with --continue-at' Resume, error detection FAIL 427: 'Keep Cookie: header within 8190 bytes' HTTP, HTTP GET, cookies FAIL 428: 'Expand environment variables within config file' HTTP, variables, --config FAIL 429: 'Expand environment variable in config file - too long name' HTTP, HTTP POST, variables FAIL 430: 'Three -K uses with --next and --data in each' --next, --config, POST FAIL 431: 'Two -K uses with --next and then one on cmdline' --next, --config, POST FAIL 432: 'Use -K with --next and --config from within' --next, --config, POST FAIL 434: '-K with a single line without newline' HTTP, --config FAIL 435: 'verify -w local/remote port+ip after connection reuse' HTTP, HTTP GET FAIL 436: 'Find .curlrc in .config/curlrc via CURL_HOME' --config FAIL 440: 'HSTS with trailing-dot host name in URL but none in hsts file' HTTP, HTTP proxy, HSTS, trailing-dot FAIL 441: 'HSTS with no t-dot host name in URL but t-dot in file' HTTP, HTTP proxy, HSTS, trailing-dot FAIL 442: 'Send capped huge number of matching cookies' HTTP, cookies, --resolve FAIL 443: 'Cookie header in request no longer than 8K' HTTP, cookies, --resolve FAIL 444: 'Many Set-Cookie response headers' HTTP, cookies, --resolve FAIL 448: 'Environment variables within config file, unbalanced braces' HTTP, variables, --config FAIL 449: 'Environment variables in config file w/o [expand]' HTTP, variables, --config FAIL 450: 'Variable from file that is trimmed and URL encoded' HTTP, variables FAIL 451: 'Variable from file that is JSON and URL encoded (with null byte)' HTTP, variables FAIL 452: 'Variable using illegal function in expansion' variables FAIL 453: 'Variable output containing null byte' HTTP, variables FAIL 454: 'Variable using illegal function separator' variables FAIL 455: 'Variable using base64' variables FAIL 456: 'Variable output starting with null byte' HTTP, variables FAIL 457: 'chunked Transfer-Encoding with --max-filesize' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 458: 'variable expand the file name with --expand-output' HTTP, variables FAIL 459: 'config file with argument using whitespace missing quotes' HTTP, --config FAIL 460: 'try --expand without an argument' variables, expand FAIL 461: 'disable Host: when specified as lower case' HTTP, HTTP GET, --header FAIL 462: 'Missing environment variables in config file' variables, --config FAIL 463: 'HTTP with -d @file with file containing CR, LF and null byte' HTTP, HTTP POST, -d FAIL 467: 'use a bad short option letter that does not exist (after one does exist)' cmdline FAIL 468: 'set -w in config, then reset -w to blank on cmdline' HTTP, --write-out, --config FAIL 469: 'warn about Unicode quote character' HTTP FAIL 470: 'warn about Unicode quote character read from config file' HTTP FAIL 471: 'Reject HTTP/1.1 to HTTP/2 switch on the same connection' HTTP, HTTP GET, globbing, {} list FAIL 473: 'Check if --etag-save saved correct etag to a file on 301' HTTP, HTTP GET FAIL 475: 'FTP PASV upload ASCII file' FTP, EPSV, STOR, TYPE A FAIL 476: 'FTP PASV upload ASCII file already using CRLF' FTP, EPSV, STOR, TYPE A FAIL 477: 'HTTP GET with maximum filesize with a redirect sending data' HTTP, HTTP GET, --max-filesize FAIL 478: '.netrc with multiple accounts for same host' netrc, HTTP FAIL 479: '.netrc with redirect and default without password' netrc, HTTP FAIL 480: 'Reject .netrc with credentials using CRLF for POP3' netrc, POP3 FAIL 481: '--no-clobber with --continue-at' HTTP, HTTP GET, --no-clobber, --continue-at FAIL 482: '--remove-on-error with --continue-at' HTTP, --remove-on-error, --continue-at FAIL 483: 'HTTP cookies with long expire dates' HTTP, HTTP GET, cookies FAIL 484: 'Use --etag-compare and -save with more than one URL' HTTP, etag FAIL 485: 'Use --etag-compare and -save with more than one URL, URLs specified first' HTTP, etag FAIL 486: '.netrc with redirect and "default" with no password or login' netrc, HTTP FAIL 487: 'Variable using 64dec with bad base64' variables FAIL 488: 'Download two URLs provided on stdin' HTTP, HTTP GET, --url FAIL 489: 'Download two URLs provided in a file' HTTP, HTTP GET, --url FAIL 490: 'Two globbed HTTP PUTs' HTTP, HTTP PUT FAIL 491: 'Two globbed HTTP PUTs, the second upload file is missing' HTTP, HTTP PUT FAIL 492: 'Two globbed HTTP PUTs to two globbed URLs' HTTP, HTTP PUT FAIL 493: 'HSTS and %{url_effective} after upgrade' HTTP, HTTP proxy, HSTS, url_effective FAIL 494: 'skip 'macdef' when parsing netrc' FTP, EPSV, netrc, macdef FAIL 495: 'user+password in URL with optional netrc' HTTP, netrc FAIL 496: 'parallel upload missing file' curl tool, cmdline, parallel FAIL 497: 'Reject too large accumulated HTTP response headers' HTTP, HTTP GET FAIL 498: 'Reject too large HTTP response headers on endless redirects' HTTP, HTTP GET FAIL 499: 'HTTP HEAD to server still sending a body' HTTP, HTTP GET FAIL 500: 'simple libcurl HTTP GET tool' HTTP, HTTP GET FAIL 501: 'simple libcurl attempt operation without URL set' missing URL FAIL 502: 'simple multi file:// get' FILE FAIL 503: 'simple multi http:// through proxytunnel with authentication info' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, HTTP proxy Basic auth, proxytunnel, multi FAIL 504: 'simple multi through local proxy without listener' HTTP, HTTP GET, HTTP proxy, multi, FAILURE, connect to non-listen FAIL 505: 'FTP upload with rename after transfer' FTP, STOR FAIL 507: 'multi interface get with non-existing host name' HTTP, multi, FAILURE, non-existing host FAIL 508: 'send HTTP POST using read callback' HTTP, POST, POST callback FAIL 509: 'initialization with memory callbacks and actual usage' memory callbacks FAIL 510: 'send HTTP POST using read callback, using chunked transfer-encoding' HTTP, HTTP POST, chunked Transfer-Encoding FAIL 511: 'FTP with FILETIME and NOBODY but missing file' FTP FAIL 512: 'simple curl_easy_duplicate() test' HTTP, HTTP GET FAIL 513: 'send HTTP POST using read callback that returns CURL_READFUNC_ABORT' HTTP, HTTP POST FAIL 514: 'First set options to POST and then to make HEAD' HTTP, HTTP HEAD FAIL 515: 'make a POSTFIELDS set to NULL with POSTFIELDSIZE set to zero' HTTP, HTTP POST FAIL 516: 'make an HTTPPOST set to NULL' HTTP, HTTP POST, FORM FAIL 517: 'curl_getdate() testing' getdate, unittest FAIL 519: 'GET same URL twice with different users' HTTP, HTTP GET FAIL 520: 'FTP RETR with FILETIME' FTP FAIL 521: 'FTP dir list PASV with CURLOPT_PORT' FTP, PASV, CURLOPT_PORT FAIL 522: 'HTTP GET with CURLOPT_PORT' HTTP, HTTP GET, CURLOPT_PORT FAIL 523: 'HTTP GET with proxy and CURLOPT_PORT' HTTP, HTTP GET, HTTP proxy, CURLOPT_PORT, CURLOPT_PROXY FAIL 524: 'FTP upload with target URL ending with slash' FTP, UPLOAD FAIL 525: 'FTP PORT upload using multi interface' FTP, PORT, STOR, multi FAIL 526: 'FTP RETR same file using different handles but same connection' FTP, PASV, RETR, multi FAIL 527: 'FTP RETR same file using different handles but same connection' FTP, PASV, RETR, multi FAIL 528: 'HTTP GET same file using different handles but same connection' HTTP, HTTP GET, multi FAIL 529: 'FTP PORT upload using multi interface (weird cleanup function sequence)' FTP, PORT, STOR, multi FAIL 530: 'multi_socket interface transfer with callbacks returning error' multi, HTTP FAIL 531: 'FTP PORT upload using multi interface and get 425 response' FTP, PORT, STOR, multi FAIL 532: 'FTP RETR same file using reset handles between each transfer' FTP, PASV, RETR, multi FAIL 533: 'FTP RETR a non-existing file twice using the multi interface' FTP, PASV, RETR, multi FAIL 534: 'FTP RETR twice using multi: non-existing host and non-existing file' FTP, PASV, RETR, multi, non-existing host FAIL 535: 'HTTP GET multi two files with FAILONERROR' HTTP, HTTP GET, multi FAIL 536: 'CURLINFO_USED_PROXY' HTTP, HTTP GET, HTTP proxy, CURLOPT_PROXY, CURLOPT_NOBODY, CURLINFO_USED_PROXY FAIL 537: 'HTTP GET with a HUGE number of file descriptors open' HTTP, HTTP GET FAIL 538: 'FTP multi-interface download, failed login: PASS not valid' FTP, FAILURE, multi FAIL 539: 'Two FTP fetches using different CURLOPT_FTP_FILEMETHOD' FTP FAIL 540: 'HTTP proxy auth Digest multi API reusing connection' HTTP, HTTP GET, HTTP proxy, HTTP proxy Digest auth, multi FAIL 541: 'FTP upload and upload same file again without rewind' FTP, STOR FAIL 542: 'FTP a file with NOBODY yes and HEADER no' FTP, PASV, RETR FAIL 543: 'curl_easy_escape' curl_easy_escape FAIL 544: 'HTTP POST text data using CURLOPT_COPYPOSTFIELDS' HTTP, HTTP POST FAIL 545: 'HTTP POST binary with embedded zero and no trailing zero' HTTP, HTTP POST FAIL 546: 'FTP RETR a non-existing file then a found one using the multi interface' FTP, PASV, RETR, multi FAIL 547: 'HTTP proxy auth NTLM with POST data from read callback' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 548: 'HTTP proxy auth NTLM with POST data from CURLOPT_POSTFIELDS' HTTP, HTTP POST, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 549: 'FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE' FTP, CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_PROXY, HTTP proxy FAIL 550: 'FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE and ASCII transfer' FTP, HTTP proxy, CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_PROXY FAIL 551: 'HTTP proxy auth Digest with POST data from read callback' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy Digest auth FAIL 552: 'HTTP proxy auth Digest with 70K POST data from read callback' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy Digest auth FAIL 553: 'HTTP post with huge request headers and post data from callback' HTTP, HTTP POST, POST callback, huge request header FAIL 554: 'HTTP multi-part formpost using read callback for the file part' HTTP, HTTP POST, FORM FAIL 555: 'HTTP proxy auth NTLM with POST data from read callback multi-if' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy NTLM auth, multi, NTLM FAIL 556: 'send and recv HTTP' HTTP, HTTP GET FAIL 557: 'curl_mprintf() testing' printf, unittest FAIL 559: 'use tiny CURLOPT_BUFFERSIZE' CURLOPT_BUFFERSIZE, HTTP FAIL 561: 'FTP RETR with CURLOPT_PROXY_TRANSFER_MODE, ASCII transfer and type=i' FTP, HTTP proxy, CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_PROXY, type= FAIL 562: 'FTP a type=A URL and CURLOPT_PORT set' FTP, PASV, RETR FAIL 563: 'FTP type=A URL and CURLOPT_PORT set and proxy' FTP, CURLOPT_PORT, HTTP proxy FAIL 564: 'FTP RETR a file over a SOCKS proxy using the multi interface' FTP, PASV, RETR, multi, SOCKS4 FAIL 565: 'send HTTP POST using read callback, chunked transfer-encoding and Digest' HTTP, HTTP POST, HTTP Digest auth, chunked Transfer-Encoding FAIL 566: 'HTTP GET with CURLINFO_CONTENT_LENGTH_DOWNLOAD and 0 bytes transfer' HTTP, HTTP GET FAIL 567: 'simple RTSP OPTIONS command' RTSP, OPTIONS FAIL 568: 'RTSP Announce (PUT and POST style) test' RTSP, ANNOUNCE FAIL 569: 'RTSP Session ID parsing' RTSP, SESSION_ID FAIL 570: 'RTSP CSeq and Session Mismatch checks' RTSP, Mismatch checking FAIL 571: 'RTSP RTP Interleaving Test' RTSP, RTP FAIL 572: 'RTSP GET_PARAMETER (Put/Heartbeat/Post)' RTSP, GET_PARAMETER FAIL 574: 'FTP wildcard download - changed fnmatch, 2x perform (Unix LIST response)' FTP, LIST, RETR, wildcardmatch, ftplistparser FAIL 575: 'FTP wildcard download - dup_handle and multi interface' FTP, RETR, multi, wildcardmatch, ftplistparser FAIL 576: 'FTP wildcard - skip/parser_correctness/CURLOPT_FNMATCH_FUNCTION (Unix)' FTP, wildcardmatch, ftplistparser FAIL 577: 'Funny RTSP version in response' RTSP, OPTIONS FAIL 578: 'HTTP POST lower than MAX_INITIAL_POST_SIZE with progress callback' HTTP, HTTP POST FAIL 579: 'small chunked HTTP POSTs with digest auth. and progress callback' HTTP, HTTP POST, HTTP Digest auth FAIL 580: 'multi interface, multiple Location: headers' HTTP, HTTP GET, multi, Duplicate-header FAIL 581: 'multi interface, multiple Content-Type: headers' HTTP, HTTP GET, multi, Duplicate-header FAIL 584: 'CURLOPT_MIMEPOST first set then set to NULL' HTTP, HTTP POST, HTTP MIME FAIL 585: 'socket open/close callbacks' HTTP, HTTP GET, multi, CURLOPT_OPENSOCKETFUNCTION, CURLOPT_CLOSESOCKETFUNCTION FAIL 586: 'FTP and open/close socket callbacks' FTP, PASV, CURLOPT_PORT FAIL 588: 'FTP PORT upload using multi interface, EPRT doesn't work' FTP, PORT, STOR, multi, EPRT refused FAIL 589: 'make an HTTP MIME POST set to NULL' HTTP, HTTP POST, HTTP MIME FAIL 590: 'HTTP proxy offers Negotiate+NTLM, use only NTLM' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 591: 'FTP multi PORT and 425 on upload' FTP, PORT, STOR, multi, EPRT refused, NODATACONN425 FAIL 592: 'FTP multi PORT and 421 on upload' FTP, PORT, STOR, multi, EPRT refused, NODATACONN421 FAIL 593: 'FTP multi PORT upload, no data conn and no transient neg. reply' FTP, PORT, STOR, multi, EPRT refused, NODATACONN150 FAIL 595: 'verify close callbacks with passive FTP' FTP FAIL 596: 'verify close callbacks with active FTP' FTP FAIL 597: 'FTP connect only option' FTP, CONNECT_ONLY FAIL 598: 'curl_easy_reset with referer and other strings set' HTTP, HTTP GET, HTTP set cookie, cookies, CURLOPT_REFERER, curl_easy_reset FAIL 599: 'HTTP GET with progress callback and redirects changing content sizes' HTTP, HTTP POST, chunked Transfer-Encoding FAIL 632: 'SFTP syntactically invalid host key' SFTP, FAILURE, server key check FAIL 643: 'HTTP multi-part mimepost using read callback for the file part' HTTP, HTTP POST, HTTP MIME POST FAIL 645: 'HTTP multi-part chunked mimepost using read callback for the file part' HTTP, HTTP POST, HTTP MIME POST FAIL 646: 'SMTP multipart using mime API' SMTP, MULTIPART FAIL 647: 'IMAP APPEND multipart using mime API' IMAP, APPEND, UPLOAD, MULTIPART FAIL 648: 'SMTP multipart with transfer content encoders' SMTP, MULTIPART FAIL 649: 'SMTP multipart with 7bit encoder error' SMTP, MULTIPART FAIL 650: 'HTTP formpost using form API - with redirect and re-POST' HTTP, HTTP POST, FORM FAIL 651: 'curl_formadd with huge COPYCONTENTS' HTTP, HTTP POST, FORM FAIL 652: 'SMTP with encoded huge mime data contents' SMTP, MIME FAIL 653: 'Reuse of handle after altering mime data' HTTP, HTTP POST, MIME FAIL 654: 'HTTP duplicate easy handle with mime data' HTTP, HTTP POST, HTTP MIME POST FAIL 655: 'resolver start callback' HTTP FAIL 658: 'Pass URL to libcurl with CURLOPT_CURLU' HTTP, HTTP GET, CURLOPT_CURLU FAIL 659: 'CURLOPT_CURLU without the path set - over proxy' HTTP, HTTP GET, CURLOPT_CURLU, proxy FAIL 660: 'IMAP CONNECT_ONLY option' IMAP, CONNECT_ONLY FAIL 661: 'Avoid redundant CWDs' FTP FAIL 662: 'HTTP redirect with whitespace in absolute Location: URL' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 663: 'HTTP redirect with dotdots and whitespaces in absolute Location: URL' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 666: 'HTTP mime post with binary-encoded huge data contents' HTTP, HTTP POST, HTTP MIME POST, MIME FAIL 667: 'HTTP chunked mimepost using single-byte read callback with encoder' HTTP, HTTP POST, HTTP MIME POST FAIL 668: 'HTTP mimepost early end of data detection' HTTP, HTTP POST, HTTP MIME POST FAIL 669: 'HTTP custom Content-Type with parameter' HTTP, HTTP POST, HTTP MIME POST, HTTP FORMPOST FAIL 670: 'Request pause from mime read callback: multi' HTTP, HTTP POST, MIME FAIL 671: 'Request pause from mime read callback: easy' HTTP, HTTP POST, MIME FAIL 672: 'Request pause from form read callback: multi' HTTP, HTTP POST, FORM FAIL 673: 'Request pause from form read callback: easy' HTTP, HTTP POST, FORM FAIL 674: 'Set CURLOPT_CURLU and dupe the handle' HTTP, HTTP GET, CURLOPT_CURLU, curl_easy_duphandle FAIL 675: 'HTTP connection reuse and different credentials' HTTP, HTTP GET, HTTP Basic auth FAIL 676: 'verify setting CURLOPT_COOKIEFILE to NULL again' HTTP, HTTP GET, HTTP set cookie, cookies, CURLOPT_REFERER, curl_easy_reset FAIL 677: 'IMAP with CONNECT_ONLY, custom command then exit' IMAP, CONNECT_ONLY FAIL 679: 'netrc with quoted password' HTTP, netrc FAIL 680: 'netrc with quoted password but missing end quote' HTTP, netrc FAIL 681: '--remote-name-all with --no-remote-name' HTTP, HTTP GET FAIL 682: 'netrc with multiple logins - pick first' HTTP, netrc FAIL 683: 'netrc with multiple logins - pick second' HTTP, netrc FAIL 684: 'netrc with no login' HTTP, netrc FAIL 685: 'netrc with no login - provided user' HTTP, netrc FAIL 686: 'verify return code for missing URL after --next' errorcode FAIL 689: 'fuzzing crash issue #12701' RTSP, OPTIONS FAIL 690: '-O with URL without path using trailing slash' HTTP, HTTP GET FAIL 691: '-O with URL with path using trailing slash' HTTP, HTTP GET FAIL 692: '-JO with URL without path using trailing slash' HTTP, HTTP GET FAIL 693: '--etag-save with --create-dirs' HTTP, HTTP GET, etag FAIL 694: 'HTTP with NTLM twice, verify CURLINFO_HTTPAUTH_USED' HTTP, HTTP POST, POST callback, HTTP proxy, HTTP proxy NTLM auth, NTLM FAIL 695: 'MIME parts reuse as a child part' MIME FAIL 696: 'CONNECT_ONLY and doing a second curl_easy_perform' HTTP, HTTP GET FAIL 697: 'netrc with missing netrc file' HTTP, netrc FAIL 698: 'FTP with ACCT and connection reuse' FTP, ACCT FAIL 699: '--config with single-letter options plus one that is cleared' HTTP, --config FAIL 700: 'HTTP GET via SOCKS4 proxy' HTTP, HTTP GET, SOCKS4 FAIL 701: 'HTTP GET via SOCKS5 proxy' HTTP, HTTP GET, SOCKS5 FAIL 702: 'Attempt connect to non-listening HTTP server via SOCKS4 proxy' HTTP, SOCKS4, connect to non-listen, FAILURE FAIL 703: 'Attempt connect to non-listening HTTP server via SOCKS5 proxy' HTTP, SOCKS5, connect to non-listen, FAILURE FAIL 704: 'Attempt connect to non-listening SOCKS4 proxy' HTTP, SOCKS4, connect to non-listen, FAILURE FAIL 705: 'Attempt connect to non-listening SOCKS5 proxy' HTTP, SOCKS5, connect to non-listen, FAILURE FAIL 706: 'FTP dir list PASV via SOCKS4' FTP, PASV, LIST, SOCKS4 FAIL 707: 'FTP dir list PASV via SOCKS5' FTP, PASV, LIST, SOCKS5 FAIL 708: 'HTTP GET via SOCKS4 proxy' HTTP, HTTP GET, SOCKS4 FAIL 709: 'HTTP GET via SOCKS5 set in http_proxy environment variable' HTTP, HTTP GET, SOCKS5, http_proxy FAIL 710: 'HTTP GET via SOCKS5 set with --proxy' HTTP, HTTP GET, SOCKS5 FAIL 711: 'FTP fetch with all_proxy set to socks5' FTP, PASV, RETR, SOCKS5, all_proxy FAIL 712: 'FTP fetch with --proxy set to socks5://' FTP, PASV, RETR, SOCKS5 FAIL 713: 'FTP fetch with --proxy set to socks5:// and with --connect-to' FTP, PASV, RETR, SOCKS5, CURLOPT_CONNECT_TO FAIL 714: 'FTP fetch with --proxy set to http:// and with --connect-to' FTP, PASV, RETR, HTTP, HTTP CONNECT, proxytunnel, CURLOPT_CONNECT_TO FAIL 715: 'FTP fetch with --preproxy, --proxy and --connect-to' FTP, PASV, RETR, HTTP, HTTP CONNECT, proxytunnel, SOCKS5, CURLOPT_CONNECT_TO FAIL 716: 'SOCKS5 proxy with too long user name' HTTP, SOCKS5, all_proxy FAIL 717: 'SOCKS5 proxy auth' HTTP, SOCKS5, all_proxy FAIL 718: 'HTTP proxy CONNECT (no auth) with proxy returning 407 and closing' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, HTTP proxy Digest auth FAIL 719: 'HTTP GET with IPv6 numerical via SOCKS5h' HTTP, HTTP GET, SOCKS5, SOCKS5h FAIL 720: 'HTTP GET with IPv4 numerical via SOCKS5h' HTTP, HTTP GET, SOCKS5, SOCKS5h FAIL 721: 'HTTP GET with host name using SOCKS5h' HTTP, HTTP GET, SOCKS5, SOCKS5h FAIL 722: 'IPFS' IPFS FAIL 723: 'IPFS with malformed gateway URL (bad function argument error)' IPFS FAIL 724: 'IPFS with gateway URL from gateway file' IPFS FAIL 725: 'IPFS with malformed gateway URL from gateway file' IPFS FAIL 726: 'IPFS with no gateway URL (no environment or home file either)' IPFS FAIL 727: 'IPNS' IPNS FAIL 728: 'SOCKS5h with HTTP redirect to hostname too long' HTTP, HTTP GET, SOCKS5, SOCKS5h, followlocation FAIL 729: 'SOCKS4 with very long proxy user name' HTTP, HTTP GET, SOCKS4 FAIL 730: 'IPFS arg gateway with path' IPFS FAIL 731: 'IPFS with gateway URL and path from gateway file' IPFS FAIL 732: 'IPFS with path' IPFS FAIL 733: 'IPFS with path and query args' IPFS FAIL 734: 'IPFS with path, query args and gateway with path' IPFS FAIL 735: 'IPNS with path, query args and gateway with path' IPFS FAIL 736: 'IPFS with IPFS_PATH set, no trailing slash' IPFS FAIL 737: 'IPFS with IPFS_PATH set, with trailing slash' IPFS FAIL 738: 'IPFS with IPFS_PATH, no gateway file' IPFS FAIL 739: 'IPNS path and query args for gateway and IPFS url (malformed gateway url)' IPFS FAIL 740: 'IPFS with gateway URL from multiline gateway file' IPFS FAIL 741: 'IPFS malformed gw URL from multiline gateway file, first line no url' IPFS FAIL 742: 'SOCKS5-hostname with max length credentials and max host name length' HTTP, SOCKS5, all_proxy FAIL 743: '--config with a 127 byte line' HTTP, --config FAIL 744: '--netrc-file with a 127 byte line' HTTP, --netrc-file, netrc FAIL 746: 'too large numerical value passed to -m' cmdline FAIL 747: 'Reject too many HTTP response headers' HTTP, HTTP GET FAIL 748: 'A --config file that uses -h and no URL' --config FAIL 749: 'HTTP CONNECT with proxy returning 400 and closing' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 750: 'HTTP CONNECT with proxy returning just HTML and closing' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 751: 'multi - add many easy handles' MULTI FAIL 752: '--retry and -f on a HTTP 404 response' HTTP, HTTP GET, -f, --retry FAIL 754: 'FTP list with quote ops' FTP, list, post-quote, pre-quote FAIL 755: 'netrc with NETRC pointing out the file' HTTP, netrc FAIL 756: 'mix --output and --out-null' HTTP FAIL 757: 'MIME parts reused as a child part, using data_cb' MIME FAIL 759: 'glob '{,'' globbing FAIL 760: 'more cmdline options than URLs and --next' globbing FAIL 761: 'too many {} globs' globbing FAIL 762: 'HTTP GET with --remote-time with file date from 1940' HTTP, HTTP GET, --remote-time FAIL 763: 'Unicode hostname ending up in a blank name' IDN FAIL 784: '--variable with a file byte range' HTTP, --variable FAIL 785: '--variable with a file byte range without end' HTTP, --variable FAIL 786: '--variable with a file byte range, reading from stdin' HTTP, --variable FAIL 787: '--variable with a file byte range, bad range' HTTP, --variable FAIL 788: '--variable with a file and single-byte byte range' HTTP, --variable FAIL 789: '--variable with a file and byte range out of file' HTTP, --variable FAIL 790: '--variable with a byte range using plain assign' HTTP, --variable FAIL 791: '--variable with a byte range using plain assign, out of range' HTTP, --variable FAIL 792: '.netrc with embedded NULL byte' netrc, FTP FAIL 793: '.netrc with embedded NULL byte, with quoted token' netrc, FTP FAIL 794: '--follow + --location with custom POST method, 302 => GET' --follow, --location FAIL 796: '--follow with custom POST method, 302 => GET' --follow, --location FAIL 797: '--follow with custom POST method, 308 => custom' --follow, --location FAIL 799: 'IMAP with --login-options 'AUTH=+LOGIN'' IMAP, Clear Text, SASL AUTH +LOGIN FAIL 800: 'IMAP FETCH message' IMAP, Clear Text, FETCH FAIL 801: 'IMAP FETCH message by MAILINDEX and SECTION' IMAP, Clear Text, FETCH FAIL 802: 'IMAP SELECT UIDVALIDITY Success' IMAP, Clear Text, SELECT, UIDVALIDITY FAIL 803: 'IMAP SELECT UIDVALIDITY Failure' IMAP, Clear Text, SELECT, UIDVALIDITY, FAILURE FAIL 804: 'IMAP doesn't perform SELECT if reusing the same mailbox' IMAP, Clear Text, SELECT FAIL 805: 'IMAP APPEND message' IMAP, Clear Text, APPEND, UPLOAD FAIL 806: 'IMAP LIST mailbox' IMAP, Clear Text, LIST FAIL 807: 'IMAP LSUB mailbox' IMAP, Clear Text, LSUB, CUSTOMREQUEST FAIL 808: 'IMAP EXAMINE mailbox (CUSTOMREQUEST)' IMAP, Clear Text, EXAMINE, CUSTOMREQUEST FAIL 809: 'IMAP mailbox STATUS (CUSTOMREQUEST)' IMAP, Clear Text, STATUS, CUSTOMREQUEST FAIL 810: 'IMAP SEARCH for NEW messages' IMAP, Clear Text, SEARCH FAIL 811: 'IMAP CREATE mailbox (CUSTOMREQUEST)' IMAP, Clear Text, CREATE, CUSTOMREQUEST FAIL 812: 'IMAP DELETE mailbox (CUSTOMREQUEST)' IMAP, Clear Text, DELETE, CUSTOMREQUEST FAIL 813: 'IMAP RENAME mailbox (CUSTOMREQUEST)' IMAP, Clear Text, RENAME, CUSTOMREQUEST FAIL 814: 'IMAP CHECK mailbox (CUSTOMREQUEST)' IMAP, Clear Text, CHECK, CUSTOMREQUEST FAIL 815: 'IMAP STORE - delete message (CUSTOMREQUEST)' IMAP, Clear Text, STORE, CLOSE, CUSTOMREQUEST FAIL 816: 'IMAP STORE - delete message with confirmation (CUSTOMREQUEST)' IMAP, Clear Text, STORE, EXPUNGE, CUSTOMREQUEST FAIL 817: 'IMAP COPY message to mailbox (CUSTOMREQUEST)' IMAP, Clear Text, COPY, CUSTOMREQUEST FAIL 818: 'IMAP NOOP (CUSTOMREQUEST)' IMAP, Clear Text, NOOP, CUSTOMREQUEST FAIL 819: 'IMAP plain authentication' IMAP, SASL, SASL AUTH PLAIN, RFC4616 FAIL 820: 'IMAP login authentication' IMAP, SASL, SASL AUTH LOGIN FAIL 821: 'IMAP CRAM-MD5 authentication' IMAP, SASL, SASL AUTH CRAM-MD5, RFC2195 FAIL 822: 'IMAP NTLM authentication' IMAP, SASL, SASL AUTH NTLM, NTLM FAIL 824: 'IMAP OAuth 2.0 (XOAUTH2) authentication' IMAP, SASL, SASL AUTH OAUTH2, RFC6749 FAIL 825: 'IMAP plain authentication with initial response' IMAP, SASL, SASL AUTH PLAIN, SASL-IR, RFC4616 FAIL 826: 'IMAP login authentication with initial response' IMAP, SASL, SASL AUTH LOGIN, SASL-IR FAIL 827: 'IMAP NTLM authentication with initial response' IMAP, SASL, SASL AUTH NTLM, SASL-IR, NTLM FAIL 828: 'IMAP OAuth 2.0 (XOAUTH2) authentication with initial response' IMAP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC6749 FAIL 829: 'IMAP with URL-encoded CR LF in the URL' IMAP, CRLF-in-URL FAIL 830: 'IMAP CRAM-MD5 graceful cancellation' IMAP, SASL, SASL AUTH CRAM-MD5, SASL CANCELLATION, RFC2195 FAIL 831: 'IMAP NTLM graceful cancellation' IMAP, SASL, SASL AUTH NTLM, SASL CANCELLATION FAIL 833: 'IMAP CRAM-MD5 authentication with SASL downgrade' IMAP, SASL, SASL AUTH CRAM-MD5, SASL AUTH PLAIN, SASL DOWNGRADE, RFC2195 FAIL 834: 'IMAP NTLM authentication with SASL downgrade' IMAP, SASL, SASL AUTH NTLM, SASL AUTH PLAIN, SASL DOWNGRADE FAIL 837: 'IMAP external authentication' IMAP, SASL, SASL AUTH EXTERNAL, RFC4422 FAIL 838: 'IMAP external authentication without credentials' IMAP, SASL, SASL AUTH EXTERNAL, RFC4422 FAIL 839: 'IMAP external authentication with initial response' IMAP, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC4422 FAIL 840: 'IMAP external authentication with initial response without credentials' IMAP, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC4422 FAIL 841: 'IMAP custom request doesn't check continuation data' IMAP, Clear Text, FETCH, CUSTOMREQUEST FAIL 842: 'IMAP OAuth 2.0 (OAUTHBEARER) authentication' IMAP, SASL, SASL AUTH OAUTH2, RFC6749, RFC7628 FAIL 843: 'IMAP OAuth 2.0 (OAUTHBEARER) authentication with initial response' IMAP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC6749, RFC7628 FAIL 844: 'IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation' IMAP, SASL, SASL AUTH OAUTH2, RFC6749, RFC7628 FAIL 845: 'IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response' IMAP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC6749, RFC7628 FAIL 846: 'IMAP PREAUTH response' IMAP FAIL 847: 'IMAP FETCH message' IMAP, Clear Text, FETCH FAIL 848: 'IMAP plain authentication with alternative authorization identity' IMAP, SASL, SASL AUTH PLAIN, RFC4616 FAIL 849: 'IMAP plain auth with alt authorization identity (Not authorized)' IMAP, SASL, SASL AUTH PLAIN, RFC4616 FAIL 850: 'POP3 RETR message' POP3, Clear Text, RETR FAIL 851: 'POP3 LIST one message' POP3, Clear Text, LIST FAIL 852: 'POP3 LIST invalid message' POP3, Clear Text, LIST, FAILURE FAIL 853: 'POP3 LIST messages from *SLOW* server' POP3, Clear Text, LIST, SLOWDOWN FAIL 854: 'POP3 LIST no messages available' POP3, Clear Text, LIST FAIL 855: 'POP3 RETR invalid message' POP3, Clear Text, RETR, FAILURE FAIL 856: 'POP3 invalid login' POP3, Clear Text, FAILURE FAIL 857: 'POP3 RETR message with dot-prefixed line' POP3, Clear Text, RETR FAIL 858: 'POP3 DELE message (CUSTOMREQUEST)' POP3, Clear Text, DELE, CUSTOMREQUEST FAIL 859: 'POP3 STAT (CUSTOMREQUEST)' POP3, Clear Text, STAT, CUSTOMREQUEST FAIL 860: 'POP3 NOOP (CUSTOMREQUEST)' POP3, Clear Text, NOOP, CUSTOMREQUEST FAIL 861: 'POP3 UIDL (CUSTOMREQUEST)' POP3, Clear Text, UIDL, CUSTOMREQUEST, RFC2449 FAIL 862: 'POP3 retrieve message header (CUSTOMREQUEST)' POP3, Clear Text, TOP, CUSTOMREQUEST, RFC2449 FAIL 863: 'POP3 RSET (CUSTOMREQUEST)' POP3, Clear Text, RSET, CUSTOMREQUEST FAIL 864: 'POP3 APOP authentication' POP3, APOP FAIL 865: 'POP3 plain authentication' POP3, SASL, SASL AUTH PLAIN, RFC1734, RFC4616, RFC5034 FAIL 866: 'POP3 login authentication' POP3, SASL, SASL AUTH LOGIN, RFC1734, RFC5034 FAIL 867: 'POP3 CRAM-MD5 authentication' POP3, SASL, SASL AUTH CRAM-MD5, RFC1734, RFC2195, RFC5034 FAIL 868: 'POP3 NTLM authentication' POP3, SASL, SASL AUTH NTLM, RFC1734, RFC5034, NTLM FAIL 870: 'POP3 OAuth 2.0 (XOAUTH2) authentication' POP3, SASL, SASL AUTH OAUTH2, RFC1734, RFC5034, RFC6749 FAIL 871: 'POP3 plain authentication with initial response' POP3, SASL, SASL AUTH PLAIN, SASL-IR, RFC1734, RFC4616, RFC5034 FAIL 872: 'POP3 login authentication with initial response' POP3, SASL, SASL AUTH LOGIN, SASL-IR, RFC1734, RFC5034 FAIL 873: 'POP3 NTLM authentication with initial response' POP3, SASL, SASL AUTH NTLM, SASL-IR, RFC1734, RFC5034, NTLM FAIL 874: 'POP3 OAuth 2.0 (XOAUTH2) authentication with initial response' POP3, SASL, SASL AUTH OAUTH2, SASL-IR, RFC1734, RFC5034, RFC6749 FAIL 875: 'POP3 with URL-encoded CR LF in the URL' POP3, CRLF-in-URL FAIL 876: 'POP3 CRAM-MD5 graceful cancellation' POP3, SASL, SASL AUTH CRAM-MD5, SASL CANCELLATION, RFC1734, RFC2195, RFC5034 FAIL 877: 'POP3 NTLM graceful cancellation' POP3, SASL, SASL AUTH NTLM, SASL CANCELLATION, RFC1734, RFC5034 FAIL 879: 'POP3 CRAM-MD5 authentication with SASL downgrade' POP3, SASL, SASL AUTH CRAM-MD5, SASL AUTH PLAIN, SASL DOWNGRADE, RFC1734, RFC2195, RFC5034 FAIL 880: 'POP3 NTLM authentication with SASL downgrade' POP3, SASL, SASL AUTH NTLM, SASL AUTH PLAIN, SASL DOWNGRADE, RFC1734, RFC5034 FAIL 883: 'POP3 external authentication' POP3, SASL, SASL AUTH EXTERNAL, RFC1734, RFC4422, RFC5034 FAIL 884: 'POP3 external authentication without credentials' POP3, SASL, SASL AUTH EXTERNAL, RFC1734, RFC4422, RFC5034 FAIL 885: 'POP3 external authentication with initial response' POP3, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC1734, RFC4422, RFC5034 FAIL 886: 'POP3 external authentication with initial response without credentials' POP3, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC1734, RFC4422, RFC5034 FAIL 887: 'POP3 OAuth 2.0 (OAUTHBEARER) authentication' POP3, SASL, SASL AUTH OAUTH2, RFC1734, RFC5034, RFC6749, RFC7628 FAIL 888: 'POP3 OAuth 2.0 (OAUTHBEARER) authentication with initial response' POP3, SASL, SASL AUTH OAUTH2, SASL-IR, RFC1734, RFC5034, RFC6749, RFC7628 FAIL 889: 'POP3 OAuth 2.0 (OAUTHBEARER) failure as continuation' POP3, SASL, SASL AUTH OAUTH2, RFC1734, RFC5034, RFC6749, RFC7628 FAIL 890: 'POP3 OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response' POP3, SASL, SASL AUTH OAUTH2, SASL-IR, RFC1734, RFC5034, RFC6749, RFC7628 FAIL 891: 'POP3 with short authentication response' POP3 FAIL 892: 'POP3 plain authentication with alternative authorization identity' POP3, SASL, SASL AUTH PLAIN, RFC1734, RFC4616, RFC5034 FAIL 893: 'POP3 plain auth with alt authorization identity (Not authorized)' POP3, SASL, SASL AUTH PLAIN, RFC1734, RFC4616, RFC5034 FAIL 894: 'POP3 with CR in username' POP3, Clear Text, RETR FAIL 895: 'IMAP with --login-options 'AUTH=*'' IMAP, Clear Text, FETCH, --login-options FAIL 896: 'IMAP with --login-options 'AUTH=dummy' (failing)' IMAP, Clear Text, FETCH, --login-options FAIL 897: 'IMAP and envelope meta data after body transfer' IMAP, Clear Text, FETCH FAIL 898: 'HTTP with custom auth and cookies redirected to HTTP on a diff port' HTTP, HTTP proxy, --location, Authorization, cookies FAIL 899: 'URL with credentials redirects to URL with different credentials' HTTP, HTTP GET, HTTP Basic auth FAIL 900: 'SMTP' SMTP FAIL 901: 'SMTP with CRLF-dot-CRLF in data' SMTP FAIL 902: 'RFC821-only SMTP server (EHLO not supported)' SMTP, SMTP HELO, RFC821 FAIL 903: 'SMTP plain authentication' SMTP, SASL, SASL AUTH PLAIN, RFC4616, RFC4954 FAIL 904: 'SMTP login authentication' SMTP, SASL, SASL AUTH LOGIN, RFC4954 FAIL 905: 'SMTP CRAM-MD5 authentication' SMTP, SASL, SASL AUTH CRAM-MD5, RFC2195, RFC4954 FAIL 906: 'SMTP NTLM authentication' SMTP, SASL, SASL AUTH NTLM, RFC4954, NTLM FAIL 908: 'SMTP OAuth 2.0 (XOAUTH2) authentication' SMTP, SASL, SASL AUTH OAUTH2, RFC4954, RFC6749 FAIL 909: 'SMTP without SIZE support' SMTP FAIL 910: 'SMTP without terminating CRLF' SMTP FAIL 911: 'SMTP with no mail data' SMTP FAIL 912: 'SMTP with SIZE support' SMTP, SIZE FAIL 913: 'SMTP with large message SIZE' SMTP, SIZE FAIL 914: 'SMTP invalid --mail-from' SMTP FAIL 915: 'SMTP without --mail-from' SMTP FAIL 916: 'SMTP with invalid --mail-rcpt' SMTP FAIL 917: 'SMTP with multiple --mail-rcpt' SMTP FAIL 918: 'SMTP with multiple and invalid --mail-rcpt' SMTP FAIL 919: 'SMTP plain authentication with initial response' SMTP, SASL, SASL AUTH PLAIN, SASL-IR, RFC4616, RFC4954 FAIL 920: 'SMTP login authentication with initial response' SMTP, SASL, SASL AUTH LOGIN, SASL-IR, RFC4954 FAIL 921: 'SMTP NTLM authentication with initial response' SMTP, SASL, SASL AUTH NTLM, SASL-IR, RFC4954, NTLM FAIL 922: 'SMTP OAuth 2.0 (XOAUTH2) authentication with initial response' SMTP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC4954, RFC6749 FAIL 923: 'SMTP VRFY' SMTP, VRFY FAIL 924: 'SMTP ambiguous VRFY' SMTP, VRFY FAIL 925: 'SMTP external VRFY' SMTP, VRFY FAIL 926: 'SMTP unknown user VRFY' SMTP, VRFY FAIL 927: 'SMTP mailing list EXPN (CUSTOMREQUEST)' SMTP, EXPN, CUSTOMREQUEST FAIL 928: 'SMTP HELP' SMTP, HELP FAIL 929: 'SMTP NOOP (CUSTOMREQUEST)' SMTP, NOOP, CUSTOMREQUEST FAIL 930: 'SMTP RSET (CUSTOMREQUEST)' SMTP, RSET, CUSTOMREQUEST FAIL 931: 'SMTP with URL-encoded CR LF in the URL' SMTP, CRLF-in-URL FAIL 932: 'SMTP CRAM-MD5 graceful cancellation' SMTP, SASL, SASL AUTH CRAM-MD5, SASL CANCELLATION, RFC2195, RFC4954 FAIL 933: 'SMTP NTLM graceful cancellation' SMTP, SASL, SASL AUTH NTLM, SASL CANCELLATION, RFC4954 FAIL 935: 'SMTP CRAM-MD5 authentication with SASL downgrade' SMTP, SASL, SASL AUTH CRAM-MD5, SASL AUTH PLAIN, SASL DOWNGRADE, RFC2195, RFC4954 FAIL 936: 'SMTP NTLM authentication with SASL downgrade' SMTP, SASL, SASL AUTH NTLM, SASL AUTH PLAIN, SASL DOWNGRADE, RFC4954 FAIL 939: 'RFC821-only SMTP with username and password' SMTP, RFC821 FAIL 940: 'SMTP with username and password but no AUTH capability' SMTP FAIL 941: 'SMTP with --crlf' SMTP, --crlf FAIL 942: 'SMTP external authentication' SMTP, SASL, SASL AUTH EXTERNAL, RFC4422, RFC4954 FAIL 943: 'SMTP external authentication without credentials' SMTP, SASL, SASL AUTH EXTERNAL, RFC4422, RFC4954 FAIL 944: 'SMTP external authentication with initial response' SMTP, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC4422, RFC4954 FAIL 945: 'SMTP external authentication with initial response without credentials' SMTP, SASL, SASL AUTH EXTERNAL, SASL-IR, RFC4422, RFC4954 FAIL 946: 'SMTP OAuth 2.0 (OAUTHBEARER) authentication' SMTP, SASL, SASL AUTH OAUTH2, RFC4954, RFC6749, RFC7628 FAIL 947: 'SMTP OAuth 2.0 (OAUTHBEARER) authentication with initial response' SMTP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC4954, RFC6749, RFC7628 FAIL 948: 'SMTP OAuth 2.0 (OAUTHBEARER) failure as continuation' SMTP, SASL, SASL AUTH OAUTH2, RFC4954, RFC6749, RFC7628 FAIL 949: 'SMTP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response' SMTP, SASL, SASL AUTH OAUTH2, SASL-IR, RFC4954, RFC6749, RFC7628 FAIL 950: 'SMTP VRFY with custom request' SMTP, VRFY, --request FAIL 951: 'SMTP data with dot as first character' SMTP FAIL 952: 'SMTP data with single dot-only line' SMTP FAIL 953: 'SMTP plain authentication with alternative authorization identity' SMTP, SASL, SASL AUTH PLAIN, RFC4616, RFC4954 FAIL 954: 'SMTP plain auth with alt authorization identity (Not authorized)' SMTP, SASL, SASL AUTH PLAIN, RFC4616, RFC4954 FAIL 955: 'SMTP without SMTPUTF8 support - UTF-8 based sender (local part only)' SMTP FAIL 956: 'SMTP without SMTPUTF8 support - UTF-8 based recipient (local part only)' SMTP FAIL 957: 'SMTP VRFY without SMTPUTF8 support - UTF-8 recipient (local part only)' SMTP, VRFY FAIL 958: 'SMTP external VRFY without SMTPUTF8 - UTF-8 recipient (local part only)' SMTP, VRFY FAIL 962: 'SMTP without SMTPUTF8 support - UTF-8 based sender (host part only)' SMTP, IDN FAIL 963: 'SMTP without SMTPUTF8 support (IDN) - UTF-8 recipient (host part only)' SMTP, IDN FAIL 964: 'SMTP external VRFY without SMTPUTF8 (IDN) - UTF-8 recipient (host part)' SMTP, VRFY, IDN FAIL 965: 'SMTP with SMTPUTF8 support - UTF-8 based sender' SMTP, IDN FAIL 966: 'SMTP with SMTPUTF8 support - UTF-8 based recipient' SMTP, IDN FAIL 967: 'SMTP external VRFY with SMTPUTF8 support' SMTP, VRFY, IDN FAIL 968: 'SMTP VRFY with SMTPUTF8 support' SMTP, VRFY, IDN FAIL 969: 'SMTP mailing list EXPN (CUSTOMREQUEST) with SMTPUTF8 support' SMTP, EXPN, CUSTOMREQUEST, IDN FAIL 973: 'HTTP with auth redirected to FTP w/o auth' HTTP, FTP, --location FAIL 974: 'HTTP with auth redirected to HTTP on a diff port w/o auth' HTTP, HTTP proxy, --location FAIL 975: 'HTTP with auth redirected to FTP allowing auth to continue' HTTP, FTP, --location-trusted FAIL 976: 'HTTP with auth redirected to HTTP on a diff port --location-trusted' HTTP, HTTP proxy, --location-trusted FAIL 977: 'URL with trailing dot and receiving a cookie for the TLD with dot' HTTP, HTTP proxy, cookies FAIL 978: 'verify that --stderr works for -w's stderr as well' HTTP, --stderr FAIL 979: '-u with redirect to absolute URL using same origin and auth' HTTP, HTTP GET, HTTP Basic auth FAIL 980: 'SMTP STARTTLS pipelined server response' SMTP, STARTTLS FAIL 981: 'IMAP STARTTLS pipelined server response' IMAP, STARTTLS FAIL 982: 'POP3 STARTTLS pipelined server response' POP3, STARTTLS FAIL 983: 'FTP STARTTLS pipelined server response' FTP, STARTTLS FAIL 984: 'IMAP require STARTTLS with failing capabilities' IMAP, STARTTLS FAIL 985: 'POP3 require STARTTLS with failing capabilities' POP3, STARTTLS FAIL 986: 'FTP require STARTTLS while preauthenticated' FTP, STARTTLS FAIL 990: 'use -w %output{}' HTTP, HTTP GET, -w FAIL 991: 'use -w %output{} append' HTTP, HTTP GET, -w FAIL 992: 'SASL verify default mechanisms are reset by login options' SMTP, SASL, UPLOAD FAIL 993: 'POP3 LIST 1000 messages' POP3, Clear Text, LIST FAIL 994: '--skip-existing with globbing' HTTP, HTTP GET FAIL 995: '--skip-existing without file present' HTTP, HTTP GET FAIL 996: '--skip-existing with file present' HTTP, HTTP GET FAIL 997: 'POP3 retrieve STAT (CUSTOMREQUEST)' POP3, Clear Text, STAT, CUSTOMREQUEST, RFC2449 FAIL 998: 'HTTP with auth in URL redirected to another host' HTTP, --location-trusted FAIL 999: 'HTTP with auth in first URL but not second' HTTP, --location-trusted FAIL 1000: 'FTP dir list PASV with -I' FTP, PASV, LIST, NOBODY FAIL 1001: 'HTTP POST --digest with PUT and resumed upload and modified method' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 1002: 'HTTP PUT with Digest auth, resumed upload and modified method, twice' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 1003: 'FTP with excessively large server command response line' FTP, RETR, huge response FAIL 1004: 'HTTP GET with empty proxy' HTTP, HTTP GET, HTTP proxy FAIL 1005: 'FTP with excessively large number of server command response lines' FTP, RETR, huge response FAIL 1006: 'FTP with large number of command response lines (boundary condition)' FTP, RETR, huge response FAIL 1007: 'TFTP send with invalid permission on server' TFTP, TFTP WRQ, FAILURE FAIL 1008: 'HTTP proxy CONNECT auth NTLM with chunked-encoded 407 response' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, chunked Transfer-Encoding, NTLM FAIL 1009: 'TFTP retrieve with --local-port' TFTP, TFTP RRQ, --local-port FAIL 1010: 'FTP dir list nocwd' FTP, PASV, LIST FAIL 1011: 'HTTP POST with 301 redirect' HTTP, HTTP POST, followlocation FAIL 1012: 'HTTP POST with 301 redirect and --post301' HTTP, HTTP POST, followlocation FAIL 1013: 'Compare curl --version with curl-config --protocols' curl-config FAIL 1014: 'Compare curl --version with curl-config --features' curl-config FAIL 1015: '--data-urlencode' HTTP, HTTP POST, --data-urlencode FAIL 1016: 'X-Y range on a file:// URL to stdout' FILE, Range FAIL 1017: '0-Y range on a file:// URL to stdout' FILE, Range FAIL 1018: 'X-X range on a file:// URL to stdout' FILE, Range FAIL 1019: 'X- range on a file:// URL to stdout' FILE, Range FAIL 1020: '-Y range on a file:// URL to stdout' FILE, Range FAIL 1021: 'HTTP proxy CONNECT with any proxyauth and proxy offers NTLM and close' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, HTTP proxy NTLM auth, --proxy-anyauth, NTLM FAIL 1022: 'Compare curl --version with curl-config --version' curl-config FAIL 1023: 'Compare curl --version with curl-config --vernum' curl-config FAIL 1024: 'HTTP Location: following with cookies' HTTP, HTTP GET, followlocation, cookies FAIL 1025: 'HTTP Location: following with command-line and server cookies' HTTP, HTTP GET, followlocation, cookies FAIL 1027: 'curl --help' --help FAIL 1028: 'HTTP Location: redirect to FTP URL' HTTP, HTTP GET, followlocation, FTP, PASV, FILE FAIL 1029: 'HTTP Location: and 'redirect_url' check' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1030: 'HTTP PUT with --anyauth authorization (picking Digest)' HTTP, HTTP PUT, HTTP Digest auth, --anyauth FAIL 1031: 'HTTP Location: following to a query string' HTTP, HTTP GET, followlocation FAIL 1032: 'HTTP HEAD with --range' HTTP, HTTP HEAD, Range FAIL 1033: 'HTTP GET with 102 response!' HTTP, HTTP GET FAIL 1034: 'HTTP over proxy with malformatted IDN host name' HTTP, HTTP GET, HTTP proxy, IDN, FAILURE, config file FAIL 1035: 'HTTP over proxy with too long IDN host name' HTTP, HTTP GET, HTTP proxy, IDN, FAILURE FAIL 1036: 'FTP download resume from end of file' FTP, PASV, RETR, Resume FAIL 1037: 'FTP download resume from end of empty file' FTP, PASV, RETR, Resume FAIL 1038: 'FTP PASV upload resume from end of file' FTP, EPSV, APPE, Resume FAIL 1039: 'FTP PASV upload resume from end of empty file' FTP, EPSV, APPE, Resume FAIL 1040: 'HTTP GET with resume from end of entirely-downloaded file' HTTP, HTTP GET, Resume FAIL 1041: 'HTTP PUT with resume from end of already-uploaded file' HTTP, HTTP PUT, Resume, Content-Range FAIL 1042: 'HTTP GET beyond end of entirely-downloaded file, no server resume' HTTP, HTTP GET, Resume, FAILURE FAIL 1043: 'HTTP GET with resume from end of file' HTTP, HTTP GET, Resume FAIL 1044: 'FTP download large file info with -I' FTP, NOBODY, Largefile FAIL 1045: 'HTTP GET with numeric localhost --interface' HTTP, HTTP GET, --interface FAIL 1046: 'HTTP-IPv6 GET with numeric localhost --interface' HTTP, HTTP GET, --interface, IPv6 FAIL 1047: 'FTP dir list PASV with localhost --interface' FTP, PASV, LIST, --interface FAIL 1048: 'FTP-IPv6 dir list PASV with localhost --interface' FTP, FTP-ipv6, IPv6, PASV, LIST, --interface FAIL 1049: 'TFTP retrieve with localhost --interface' TFTP, TFTP RRQ, --interface FAIL 1050: 'FTP-IPv6 dir list, EPRT with specified IP' FTP, FTP-ipv6, IPv6, EPRT FAIL 1051: 'HTTP PUT with Location: following' HTTP, HTTP PUT, followlocation FAIL 1052: 'HTTP 1.0 PUT with Location: following' HTTP, HTTP PUT, followlocation FAIL 1053: 'HTTP RFC1867-type formposting from file with Location: following' HTTP, HTTP FORMPOST, HTTP file upload, followlocation FAIL 1054: 'HTTP POST from file with 301 redirect and --post301' HTTP, HTTP POST, followlocation FAIL 1055: 'HTTP PUT Location: redirect to FTP URL' HTTP, HTTP PUT, followlocation, FTP, EPSV, STOR FAIL 1056: 'HTTP follow redirect from IPv4 to IPv6 with scope' HTTP, HTTP GET, followlocation, IPv6 FAIL 1057: 'FTP retrieve a byte-range relative to end of file' FTP, EPSV, RETR, Range FAIL 1058: 'HTTP range relative to end of file' HTTP, HTTP GET, Content-Range FAIL 1059: 'HTTP CONNECT with proxytunnel to unsupported FTP URL' HTTP, HTTP CONNECT, proxytunnel, FTP, FAILURE FAIL 1060: 'HTTP proxy CONNECT auth Digest, large headers and data' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, HTTP proxy Digest auth FAIL 1061: 'HTTP proxy CONNECT auth Digest, large headers and chunked data' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, chunked Transfer-Encoding, proxytunnel, HTTP proxy Digest auth FAIL 1062: 'FTP with excessively long server command response lines, boundary condition' FTP, RETR, huge response FAIL 1063: 'Invalid large X- range on a file://' FILE, Range, FAILURE FAIL 1064: 'HTTP PUT twice' HTTP, HTTP PUT FAIL 1065: 'HTTP PUT with one file but two URLs' HTTP, HTTP PUT, HTTP GET FAIL 1066: 'HTTP --dump-header - with two URLs' HTTP, HTTP GET FAIL 1067: 'HTTP Location: following with auto-referer' HTTP, HTTP GET, followlocation FAIL 1068: 'HTTP PUT from stdin' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 1069: 'HTTP 1.0 PUT from stdin with no content length' HTTP, HTTP PUT, HTTP/1.0 FAIL 1070: 'HTTP POST with server closing connection before (all) data is received' HTTP, HTTP POST FAIL 1071: 'Downgraded HTTP PUT to HTTP 1.0 with authorization' HTTP, HTTP PUT, HTTP Digest auth, --anyauth, HTTP/1.0 FAIL 1072: 'HTTP chunked PUT to HTTP 1.0 server with authorization' HTTP, HTTP PUT, HTTP Digest auth, --anyauth, HTTP/1.0, chunked Transfer-Encoding FAIL 1073: 'HTTP chunked PUT to HTTP 1.0 server with redirect' HTTP, HTTP PUT, HTTP/1.0, followlocation, chunked Transfer-Encoding FAIL 1074: 'HTTP downgrade to HTTP/1.0 on second request' HTTP, HTTP GET, HTTP/1.0, DELAY FAIL 1075: 'HTTP PUT with --anyauth authorization (picking Basic)' HTTP, HTTP PUT, HTTP Basic auth, --anyauth FAIL 1076: 'HTTP POST with 302 redirect and --post302' HTTP, HTTP POST, followlocation FAIL 1077: 'FTP over HTTP proxy with downgrade to HTTP 1.0' FTP, HTTP, HTTP/1.0, HTTP GET, HTTP proxy FAIL 1078: 'HTTP 1.0 CONNECT with proxytunnel and downgrade GET to HTTP/1.0' HTTP, HTTP/1.0, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1079: 'HTTP retry after closed connection and empty response' HTTP, HTTP GET, HTTP Digest auth FAIL 1080: 'HTTP Location: on two URLs 'redirect_url' check' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1081: 'HTTP no Location: on second URL 'redirect_url' check' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1082: 'HTTP GET with localhost --interface' HTTP, HTTP GET, --interface FAIL 1084: 'HTTP GET with invalid --interface' HTTP, HTTP GET, --interface, FAILURE, non-existing host FAIL 1085: 'HTTP-IPv6 GET with invalid --interface' HTTP, HTTP GET, --interface, IPv6, FAILURE, non-existing host FAIL 1087: 'HTTP, proxy with --anyauth and Location: to new host' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation, --anyauth FAIL 1088: 'HTTP, proxy with --anyauth and Location: to new host using location-trusted' HTTP, HTTP proxy, HTTP Basic auth, HTTP proxy Basic auth, followlocation, --anyauth, --location-trusted FAIL 1089: 'HTTP GET --write-out with redirected fetch' HTTP, HTTP GET, followlocation, --write-out FAIL 1090: 'HTTP GET --write-out with redirected fetch and chunked reply' HTTP, HTTP GET, followlocation, chunked Transfer-Encoding, --write-out FAIL 1091: 'FTP URL with type=i' FTP, RETR, type= FAIL 1092: 'FTP with type=i over HTTP proxy' FTP, HTTP, HTTP GET, HTTP proxy, type= FAIL 1093: 'TFTP retrieve with mode=i' TFTP, TFTP RRQ, mode= FAIL 1094: 'TFTP retrieve with mode=netascii' TFTP, TFTP RRQ, mode= FAIL 1095: 'HTTP with Digest and realm with quoted quotes' HTTP, HTTP GET, HTTP Digest auth FAIL 1096: 'Two FTP downloads, with failed RETR but reused control connection' FTP, PASV, RETR, FAILURE FAIL 1098: 'FTP RETR twice over proxy confirming persistent connection' FTP, HTTP proxy, CURLOPT_PROXY FAIL 1099: 'TFTP get first a non-existing file then an existing' TFTP, TFTP RRQ, FAILURE FAIL 1101: 'NO_PROXY test, with user name in URL' HTTP, HTTP GET, HTTP Basic auth, HTTP proxy, http_proxy, NO_PROXY FAIL 1102: 'FTP OS/400 server name format check' FTP, SYST, SITE, OS400 FAIL 1103: 'FTP non-OS/400 server' FTP, SYST, SITE, OS400 FAIL 1104: 'HTTP cookie expiry date at Jan 1 00:00:00 GMT 1970' HTTP, HTTP GET, HTTP proxy, cookies FAIL 1105: 'HTTP with cookie parser and header recording' HTTP, HTTP POST, cookies, cookiejar FAIL 1106: 'FTP URL and with ftp_proxy environment variable set' FTP, CURLOPT_PORT, HTTP proxy FAIL 1107: 'FTP RETR PASV with PRET' FTP, PASV, RETR, PRET FAIL 1108: 'FTP RETR PASV with PRET not supported' FTP, PASV, RETR, PRET FAIL 1109: 'HTTP GET with URL that contains fragment after the path' HTTP, CURLOPT_URL FAIL 1110: 'HTTP GET with URL that contains a fragment after the query part' HTTP, CURLOPT_URL FAIL 1111: 'HTTP GET with URL whose fragment contains a # (which is illegal)' HTTP, CURLOPT_URL FAIL 1114: 'FTP wildcard download - skip/correctness/FNMATCH_FUNCTION (DOS)' FTP, wildcardmatch, ftplistparser FAIL 1115: 'HTTP GET with unexpected 1xx response' HTTP, HTTP 1xx response code FAIL 1116: 'HTTP GET with chunked trailer without Trailer:' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1117: 'HTTP with invalid range then another URL' HTTP, HTTP GET, Range, DELAY FAIL 1118: 'URL without slash and @-letter in query' HTTP, HTTP GET FAIL 1120: 'FTP with 421 timeout response' FTP, PORT, RETR, 421, timeout, FAILURE FAIL 1121: 'HTTP multiple provided Host: headers' HTTP FAIL 1122: 'HTTP GET gzip transfer-encoded content' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1123: 'HTTP GET deflate transfer-encoded content' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1124: 'HTTP GET gzip+chunked transfer-encoded content' HTTP, HTTP GET, compressed, Transfer-Encoding, chunked Transfer-Encoding FAIL 1125: 'HTTP GET transfer-encoding with custom Connection:' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1126: 'HTTP 200 If-Modified-Since with newer document' HTTP, HTTP GET, If-Modified-Since FAIL 1127: 'HTTP 200 If-Modified-Since with older document' HTTP, HTTP GET, If-Modified-Since FAIL 1128: 'HTTP 200 If-Modified-Since with old+new documents' HTTP, HTTP GET, If-Modified-Since FAIL 1129: 'HTTP POST expect 100-continue with a 404' HTTP, HTTP POST, Expect: 100-continue FAIL 1130: 'HTTP POST forced expect 100-continue with a 404' HTTP, HTTP POST, Expect: 100-continue FAIL 1131: 'HTTP PUT expect 100-continue with a 400' HTTP, HTTP PUT, Expect: 100-continue FAIL 1133: 'HTTP RFC1867-type formposting with filename/data contains ',', ';', '"'' HTTP, HTTP FORMPOST FAIL 1134: 'HTTP connection reuse with different credentials' HTTP, HTTP HEAD, -G FAIL 1136: 'Check cookies against PSL' HTTP, HTTP GET, HTTP proxy, cookies, cookiejar, PSL FAIL 1137: 'FTP RETR --ignore-content-length' FTP, PASV, RETR, --ignore-content-length FAIL 1138: 'HTTP redirect with UTF-8 characters' HTTP, HTTP GET, followlocation FAIL 1141: 'HTTP redirect to http:/// (three slashes!)' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 1142: 'HTTP redirect to http://// (four slashes!)' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 1143: 'HTTP URL with http:/ (one slash!)' HTTP, HTTP GET, followlocation FAIL 1144: 'HTTP HEAD, receive no headers only body' HTTP, HTTP HEAD, HTTP/0.9 FAIL 1145: 'file:// bad host' FILE FAIL 1146: '--proto-default file' FILE, --proto-default FAIL 1147: 'Get -H headers from a file' HTTP, HTTP GET, -H FAIL 1148: 'progress-bar' HTTP, progressbar FAIL 1149: 'FTP dir list multicwd then again nocwd' FTP, PASV, LIST FAIL 1150: 'HTTP proxy with URLs using different ports' HTTP, HTTP GET, HTTP proxy FAIL 1151: 'HTTP with too long cookies' HTTP, HTTP GET, cookies FAIL 1152: 'FTP with uneven quote in PWD response' FTP, PASV, LIST FAIL 1153: 'FTP with quoted double quotes' FTP, PASV, LIST FAIL 1154: 'HTTP GET with 100K (too long) response header' HTTP, HTTP GET FAIL 1155: 'HTTP cookie with parameter word as name' HTTP, HTTP GET, cookies FAIL 1156: 'HTTP resume/range fail range-error content-range combinations' HTTP, HTTP GET, Content-Range, Resume, Range FAIL 1157: 'Get -H headers from empty file' HTTP, HTTP GET, -H FAIL 1158: 'HTTP RFC1867-type formposting with filename containing '"'' HTTP, HTTP FORMPOST FAIL 1159: 'HTTP Location: and 'redirect_url' with non-supported scheme' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1160: 'HTTP with long funny format cookie' HTTP, HTTP GET, cookies FAIL 1161: 'HTTP cookie with path set twice' HTTP, HTTP GET, cookies FAIL 1164: 'HTTP/0.9 GET and all zeroes' HTTP, HTTP GET FAIL 1166: 'HTTP response with cookies but not receiving!' HTTP, HTTP GET, followlocation, cookies FAIL 1168: 'HTTP redirect with credentials using # in user and password' HTTP, HTTP GET, followlocation FAIL 1170: 'HTTP GET transfer-encoding with removed Connection:' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1171: 'HTTP GET transfer-encoding with blanked Connection:' HTTP, HTTP GET, compressed, Transfer-Encoding FAIL 1172: 'HTTP/0.9 GET response denied' HTTP, HTTP/0.9 FAIL 1174: 'HTTP/0.9 GET response denied by default' HTTP, HTTP/0.9 FAIL 1176: '--output using #0' globbing FAIL 1178: 'HTTP proxy auth with credentials longer than 256 bytes' HTTP, HTTP GET, HTTP proxy FAIL 1180: 'HTTP GET request with proxy and -H "Proxy-Connection: keep-alive"' HTTP, HTTP proxy FAIL 1181: 'HTTP GET request with proxy and "Proxy-Connection: Keep-Alive"' HTTP, HTTP proxy FAIL 1183: '%TESTNUMBER used instead of actual test number' HTTP, HTTP GET FAIL 1186: 'Multipart formposting with backslash-escaping filename containing '"'' HTTP, HTTP FORMPOST FAIL 1187: 'SMTP multipart with file name escaping' SMTP, MULTIPART FAIL 1188: '--write-out with %{onerror} and %{urlnum} to stderr' HTTP, HTTP GET, --write-out FAIL 1189: 'Multipart formposting with backslash-escaping of name= and filename=' HTTP, HTTP FORMPOST FAIL 1190: 'MQTT SUBSCRIBE' MQTT, MQTT SUBSCRIBE FAIL 1191: 'MQTT PUBLISH' MQTT, MQTT PUBLISH FAIL 1192: 'MQTT SUBSCRIBE 2k topic' MQTT, MQTT SUBSCRIBE FAIL 1193: 'MQTT PUBLISH 2k payload' MQTT, MQTT PUBLISH FAIL 1194: 'MQTT SUBSCRIBE with PUBLISH before SUBACK' MQTT, MQTT SUBSCRIBE FAIL 1195: 'MQTT SUBSCRIBE with short PUBLISH' MQTT, MQTT SUBSCRIBE FAIL 1196: 'MQTT with error in CONNACK' MQTT, MQTT SUBSCRIBE FAIL 1197: 'HTTP POST redirected to GET and --write-out method' HTTP, HTTP GET, followlocation, --write-out FAIL 1198: 'MQTT PUBLISH empty payload, single space topic' MQTT, MQTT SUBSCRIBE FAIL 1199: 'MQTT PUBLISH empty payload, no topic' MQTT, MQTT SUBSCRIBE FAIL 1200: 'Gopher index' GOPHER, INDEX FAIL 1201: 'Gopher selector' GOPHER, SELECTOR FAIL 1202: 'Gopher query' GOPHER, QUERY FAIL 1203: 'Gopher IPv6 index' GOPHER-ipv6, IPv6, INDEX FAIL 1204: 'HTTP with WWW-Authenticate and multiple auths in a single line' HTTP, HTTP GET, HTTP Basic auth, --anyauth FAIL 1205: 'HTTP GET with 18K HTTP header' HTTP, HTTP GET FAIL 1206: 'FTP PORT and 425 on download' FTP, PORT, RETR, NODATACONN425 FAIL 1207: 'FTP PORT and 421 on download' FTP, PORT, RETR, NODATACONN421 FAIL 1210: 'HTTP GET with -J without Content-Disposition' HTTP, HTTP GET, -J FAIL 1212: 'noproxy setting together with socks proxy' HTTP, SOCKS5, NO_PROXY, noproxy FAIL 1213: 'HTTP with proxy and host-only URL' HTTP, HTTP GET, HTTP proxy FAIL 1214: 'HTTP with proxy and URL with ? and no slash separator' HTTP, HTTP GET, HTTP proxy FAIL 1215: 'HTTP with server NTLM authorization using a proxy' HTTP, HTTP GET, HTTP NTLM auth, HTTP proxy, NTLM FAIL 1216: 'HTTP cookie domains tailmatching the host name' HTTP, HTTP GET, HTTP proxy, cookies FAIL 1217: 'FTP with rubbish before name in 257-response' FTP, PORT, NLST, --data-binary FAIL 1218: 'HTTP cookies and domains with same prefix' HTTP, HTTP GET, HTTP proxy, cookies FAIL 1219: 'FTP with no user+password required (230 response)' FTP, PASV, RETR FAIL 1220: 'file:// URLs with query string' FILE, URL FAIL 1221: '--url-query with --data-urlencode' HTTP, HTTP POST, --data-urlencode, --url-query FAIL 1223: 'HTTP GET -w remote_ip and -w remote_port' HTTP, HTTP GET FAIL 1224: 'FTP fetch a file from the root directory' FTP, PASV, RETR FAIL 1225: 'FTP fetch two files using absolute paths' FTP, PASV, RETR FAIL 1226: 'FTP fetch a file from the root directory with singlecwd' FTP, PASV, RETR FAIL 1227: 'FTP fetch a file from the root directory with nocwd' FTP, PASV, RETR FAIL 1228: 'HTTP cookie path match' HTTP, HTTP GET, HTTP proxy, cookies, cookie path FAIL 1229: 'HTTP with Digest authorization with user name needing escape' HTTP, HTTP GET, HTTP Digest auth FAIL 1230: 'HTTP CONNECT to IPv6 numerical address' HTTP, HTTP CONNECT, HTTP proxy, IPv6 FAIL 1231: 'HTTP URL with dotdot removal from path' HTTP, HTTP GET, dotdot removal FAIL 1232: 'HTTP URL with dotdot removal from path using an HTTP proxy' HTTP, HTTP GET, HTTP proxy, dotdot removal FAIL 1233: 'FTP failing to connect to EPSV port, switching to PASV' FTP, connect to non-listen FAIL 1234: 'abusing {}-globbing' globbing, {} list, FAILURE FAIL 1235: 'multiple requests using {}{} in the URL' HTTP, HTTP GET, globbing, {} list FAIL 1236: '[] globbing overflowing the range counter' globbing, FAILURE FAIL 1237: 'URL with 1000+ letter user name + password' HTTP, HTTP Basic auth FAIL 1238: 'slow TFTP retrieve cancel due to -Y and -y' TFTP, TFTP RRQ, timeout, FAILURE, DELAY FAIL 1239: 'HTTP with -z + -w response_code and simulated 304' HTTP, HTTP GET, -z FAIL 1240: 'glob [0-1] with stuff after range (7.33.0 regression)' globbing, HTTP FAIL 1241: 'HTTP _without_ dotdot removal' HTTP, HTTP GET, HTTP proxy FAIL 1242: 'TFTP retrieve without TFTP options requests' TFTP, TFTP RRQ FAIL 1243: 'TFTP send without TFTP options requests' TFTP, TFTP WRQ FAIL 1245: '--proto deny must override --proto-redir allow' FTP, HTTP, HTTP GET, --proto, --proto-redir, followlocation FAIL 1246: 'URL with '#' at end of host name instead of '/'' HTTP, HTTP GET, HTTP proxy FAIL 1247: '--fail-early' HTTP, --fail-early FAIL 1248: 'Non-proxied host plus --proxy option and --noproxy option' HTTP, HTTP proxy, noproxy FAIL 1249: 'Non-proxied plus --proxy option and NO_PROXY env var' HTTP, HTTP proxy, NO_PROXY FAIL 1250: 'Non-proxied host plus http_proxy env var and --noproxy option' HTTP, HTTP proxy, http_proxy, noproxy FAIL 1251: 'Non-proxied host plus http_proxy env var and NO_PROXY env var' HTTP, HTTP proxy, http_proxy, NO_PROXY FAIL 1252: '--proxy, override NO_PROXY by --noproxy and access target URL directly' HTTP, HTTP proxy, NO_PROXY, noproxy FAIL 1253: '--proxy, override NO_PROXY by --noproxy and access target URL through proxy' HTTP, HTTP proxy, NO_PROXY, noproxy FAIL 1254: 'override NO_PROXY by --noproxy and access target URL through proxy' HTTP, HTTP proxy, NO_PROXY, noproxy FAIL 1255: 'http_proxy, override NO_PROXY by --noproxy and access target URL directly' HTTP, HTTP proxy, http_proxy, NO_PROXY, noproxy FAIL 1256: 'http_proxy, override NO_PROXY by --noproxy and target URL through proxy' HTTP, HTTP proxy, http_proxy, NO_PROXY, noproxy FAIL 1257: 'http_proxy, override NO_PROXY by --noproxy and target URL through proxy' HTTP, HTTP proxy, http_proxy, NO_PROXY, noproxy FAIL 1258: 'HTTP, use cookies with localhost' HTTP, HTTP GET, HTTP replaced headers, cookies, httponly FAIL 1259: 'HTTP URL with semicolon in password' HTTP, HTTP GET FAIL 1260: 'HTTP URL with rubbish after port number' HTTP, HTTP GET FAIL 1261: ''redirect_url' with --location and --max-redirs' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1262: 'FTP request and denied to download an older file with -z' FTP, RETR, -z FAIL 1263: 'HTTP URL with rubbish after IPv6 bracket' HTTP, HTTP GET FAIL 1264: 'HTTP URL with space in host name' HTTP, HTTP GET FAIL 1265: 'NO_PROXY with IPv6 numerical address' HTTP, HTTP proxy, http_proxy, NO_PROXY, noproxy, IPv6 FAIL 1266: 'HTTP GET with a single-byte HTTP/0.9 response' HTTP/0.9 FAIL 1267: 'HTTP GET with an invalid HTTP/1 response line start' HTTP/0.9 FAIL 1268: 'filename argument looks like a flag' warning FAIL 1269: 'too large --retry-delay value' --retry-delay FAIL 1270: 'Basic 'redirect_url'' HTTP, HTTP GET, redirect_url, followlocation, --write-out FAIL 1271: '--write-out from file with empty file' HTTP, HTTP GET, --write-out FAIL 1273: '-f and resume transfer of an entirely-downloaded file' HTTP, HTTP GET, Resume FAIL 1274: 'HTTP header line folding' HTTP, HTTP GET, header line folding FAIL 1277: 'HTTP GET with both content and transfer encoding' HTTP, HTTP GET, compressed, Transfer-Encoding, Content-Encoding FAIL 1278: 'verify extra --no-remote-name' --no-remote-name FAIL 1280: 'simple [a-d] globbing' globbing FAIL 1281: 'reject non-numerical port number in URL' URL FAIL 1282: 'FTP with 633 response before gss initialized' FTP, PASV, RETR FAIL 1283: 'globbing range with same start and stop' HTTP, HTTP GET, globbing, [] range FAIL 1284: 'HTTP POST --digest with user-specified Content-Length header' HTTP, HTTP POST, HTTP Digest auth FAIL 1285: 'HTTP PUT --digest with user-specified Content-Length header' HTTP, HTTP PUT, HTTP Digest auth FAIL 1286: 'HTTP GET --digest increasing nonce-count' HTTP, HTTP GET, HTTP Digest auth, followlocation FAIL 1287: 'HTTP over proxy-tunnel ignore TE and CL in CONNECT 2xx responses' HTTP, HTTP GET, HTTP CONNECT, proxytunnel, verbose logs FAIL 1288: 'Suppress proxy CONNECT response headers' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1289: 'globbing with overflow and bad syntax' HTTP, HTTP GET, globbing FAIL 1290: 'Verify URL globbing ignores []' HTTP, HTTP GET, globbing FAIL 1291: 'Attempt to upload 1000 files but fail immediately' HTTP, HTTP PUT FAIL 1292: 'Replaced internal headers with a blank one' HTTP, HTTP GET, HTTP added headers, HTTP replaced headers FAIL 1293: 'Multipart formpost to two URLs, the first failing' HTTP, HTTP GET, -F FAIL 1296: 'HTTP URL with %0a in name part' HTTP, HTTP Basic FAIL 1297: 'CONNECT to peer that returns nothing' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1298: 'HTTP GET special path with --request-target' HTTP, HTTP GET, --request-target FAIL 1299: 'Send "OPTIONS *" with --request-target' HTTP, --request-target FAIL 1300: 'llist unit tests' unittest, llist FAIL 1301: 'curl_strequal tests' curl_strequal FAIL 1302: 'base64 encode/decode unit tests' unittest, base64 FAIL 1303: 'Curl_timeleft unit tests' unittest, Curl_timeleft FAIL 1304: 'netrc parsing unit tests' unittest, netrc FAIL 1305: 'internal hash create/destroy testing' unittest, hash FAIL 1306: 'internal hash create/add/destroy testing' unittest, hash FAIL 1308: 'formpost tests' curl_formadd, curl_formget, FORM FAIL 1309: 'splay unit tests' unittest, splay FAIL 1310: 'HTTP GET with -J + --show-headers' HTTP, HTTP GET, -J, --show-headers FAIL 1311: 'HTTP GET with -J and Content-Disposition' HTTP, HTTP GET, -J FAIL 1312: 'HTTP GET with -J, Content-Disposition and ; in filename' HTTP, HTTP GET, -J FAIL 1313: 'HTTP GET with -J, Content-Disposition, uneven quotes' HTTP, HTTP GET, -J FAIL 1314: 'HTTP Location: following a // prefixed url' HTTP, HTTP GET, HTTP proxy, followlocation FAIL 1315: 'HTTP RFC1867-type formposting - -F with three files, one with explicit type' HTTP, HTTP FORMPOST, HTTP file upload FAIL 1317: 'HTTP with --resolve' HTTP, HTTP GET, --resolve FAIL 1318: 'HTTP with --resolve and same host name using different cases' HTTP, HTTP GET, --resolve FAIL 1319: 'POP3 fetch tunneled through HTTP proxy' POP3, RETR, HTTP, HTTP CONNECT, HTTP proxy FAIL 1320: 'SMTP send tunneled through HTTP proxy' SMTP, HTTP, HTTP CONNECT, HTTP proxy FAIL 1321: 'IMAP FETCH tunneled through HTTP proxy' IMAP, FETCH, HTTP, HTTP CONNECT, HTTP proxy FAIL 1322: 'HTTP with --resolve and hostname with trailing dot' HTTP, HTTP GET, --resolve, trailing-dot FAIL 1323: 'curlx_tvdiff' unittest, curlx_tvdiff FAIL 1324: 'HTTP with --resolve and [ipv6address]' HTTP, HTTP GET, IPv6, --resolve FAIL 1325: 'HTTP 308-redirect with POST' HTTP, HTTP GET, 308, followlocation FAIL 1326: 'TELNET to HTTP server' TELNET, UPLOAD FAIL 1327: 'TELNET check of upload with stdout redirected' TELNET, UPLOAD FAIL 1328: 'HTTP GET a globbed range with -f' HTTP, HTTP GET, globbing, --fail FAIL 1329: '/-prefixed proxy name' HTTP proxy FAIL 1331: 'HTTP --proxy-anyauth and 407 with cookies' HTTP, HTTP GET, HTTP proxy, cookies FAIL 1332: 'HTTP POST with 303 redirect and --post303' HTTP, HTTP POST, followlocation FAIL 1333: 'HTTP POST zero length, chunked-encoded' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 1334: 'HTTP GET with -O without Content-Disposition, -D file' HTTP, HTTP GET FAIL 1335: 'HTTP GET with -O without Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1336: 'HTTP GET with -O and Content-Disposition, -D file' HTTP, HTTP GET FAIL 1337: 'HTTP GET with -O and Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1338: 'HTTP GET with -O -J without Content-Disposition, -D file' HTTP, HTTP GET, -J FAIL 1339: 'HTTP GET with -O -J without Content-Disposition, -D stdout' HTTP, HTTP GET, -J FAIL 1340: 'HTTP GET with -O -J and Content-Disposition, -D file' HTTP, HTTP GET, -J FAIL 1341: 'HTTP GET with -O -J and Content-Disposition, -D stdout' HTTP, HTTP GET, -J FAIL 1342: 'HTTP GET with -O -i without Content-Disposition, -D file' HTTP, HTTP GET FAIL 1343: 'HTTP GET with -O -i without Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1344: 'HTTP GET with -O -i and Content-Disposition, -D file' HTTP, HTTP GET FAIL 1345: 'HTTP GET with -O -i and Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1346: 'HTTP GET with -O -i without Content-Disposition, without -D' HTTP, HTTP GET FAIL 1347: 'HTTP GET with -O -i and Content-Disposition, without -D' HTTP, HTTP GET FAIL 1348: 'FTP download, file without Content-Disposition inside, using -O' FTP, RETR FAIL 1349: 'FTP download, file without C-D inside, using -O -D file' FTP, RETR FAIL 1350: 'FTP download, file without C-D inside, using -O -D stdout' FTP, RETR FAIL 1351: 'FTP download, file without C-D inside, using -O -J -D file' FTP, RETR, -J FAIL 1352: 'FTP download, file without C-D inside, using -O -J -D stdout' FTP, RETR, -J FAIL 1353: 'FTP download, file without C-D inside, using -O -i -D file' FTP, RETR FAIL 1354: 'FTP download, file without C-D inside, using -O -i -D stdout' FTP, RETR FAIL 1355: 'FTP download, file without C-D inside, using -O -i, without -D' FTP, RETR FAIL 1356: 'FTP download, file with Content-Disposition inside, using -O' FTP, RETR FAIL 1357: 'FTP download, file with C-D inside, using -O -D file' FTP, RETR FAIL 1358: 'FTP download, file with C-D inside, using -O -D stdout' FTP, RETR FAIL 1359: 'FTP download, file with C-D inside, using -O -J -D file' FTP, RETR, -J FAIL 1360: 'FTP download, file with C-D inside, using -O -J -D stdout' FTP, RETR, -J FAIL 1361: 'FTP download, file with C-D inside, using -O -i -D file' FTP, RETR FAIL 1362: 'FTP download, file with C-D inside, using -O -i -D stdout' FTP, RETR FAIL 1363: 'FTP download, file with C-D inside, using -O -i, without -D' FTP, RETR FAIL 1364: 'HTTP GET -o fname without Content-Disposition, -D file' HTTP, HTTP GET FAIL 1365: 'HTTP GET -o fname without Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1366: 'HTTP GET -o fname and Content-Disposition, -D file' HTTP, HTTP GET FAIL 1367: 'HTTP GET -o fname and Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1368: 'HTTP GET -o fname -J without Content-Disposition, -D file' HTTP, HTTP GET, -J FAIL 1369: 'HTTP GET -o fname -J without Content-Disposition, -D stdout' HTTP, HTTP GET, -J FAIL 1370: 'HTTP GET -o fname -J and Content-Disposition, -D file' HTTP, HTTP GET, -J FAIL 1371: 'HTTP GET -o fname -J and Content-Disposition, -D stdout' HTTP, HTTP GET, -J FAIL 1372: 'HTTP GET -o fname -i without Content-Disposition, -D file' HTTP, HTTP GET FAIL 1373: 'HTTP GET -o fname -i without Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1374: 'HTTP GET -o fname -i and Content-Disposition, -D file' HTTP, HTTP GET FAIL 1375: 'HTTP GET -o fname -i and Content-Disposition, -D stdout' HTTP, HTTP GET FAIL 1376: 'HTTP GET -o fname -i without Content-Disposition, without -D' HTTP, HTTP GET FAIL 1377: 'HTTP GET -o fname -i and Content-Disposition, without -D' HTTP, HTTP GET FAIL 1378: 'FTP DL, file without Content-Disposition inside, using -o fname' FTP, RETR FAIL 1379: 'FTP DL, file without C-D inside, using -o fname -D file' FTP, RETR FAIL 1380: 'FTP DL, file without C-D inside, using -o fname -D stdout' FTP, RETR FAIL 1381: 'FTP DL, file without C-D inside, using -o fname -J -D file' FTP, RETR, -J FAIL 1382: 'FTP DL, file without C-D inside, using -o fname -J -D stdout' FTP, RETR, -J FAIL 1383: 'FTP DL, file without C-D inside, using -o fname -i -D file' FTP, RETR FAIL 1384: 'FTP DL, file without C-D inside, using -o fname -i -D stdout' FTP, RETR FAIL 1385: 'FTP DL, file without C-D inside, using -o fname -i, without -D' FTP, RETR FAIL 1386: 'FTP DL, file with Content-Disposition inside, using -o fname' FTP, RETR FAIL 1387: 'FTP DL, file with C-D inside, using -o fname -D file' FTP, RETR FAIL 1388: 'FTP DL, file with C-D inside, using -o fname -D stdout' FTP, RETR FAIL 1389: 'FTP DL, file with C-D inside, using -o fname -J -D file' FTP, RETR, -J FAIL 1390: 'FTP DL, file with C-D inside, using -o fname -J -D stdout' FTP, RETR, -J FAIL 1391: 'FTP DL, file with C-D inside, using -o fname -i -D file' FTP, RETR FAIL 1392: 'FTP DL, file with C-D inside, using -o fname -i -D stdout' FTP, RETR FAIL 1393: 'FTP DL, file with C-D inside, using -o fname -i, without -D' FTP, RETR FAIL 1394: 'unit test for parse_cert_parameter()' unittest FAIL 1395: 'Curl_dedotdotify' unittest FAIL 1396: 'curl_easy_escape and curl_easy_unescape' unittest, curl_easy_escape, curl_easy_unescape FAIL 1397: 'Curl_cert_hostcheck unit tests' unittest, Curl_cert_hostcheck FAIL 1398: 'curl_msnprintf unit tests' unittest, curl_msnprintf FAIL 1399: 'Curl_pgrsTime unit tests' unittest, Curl_pgrsTime FAIL 1400: '--libcurl for simple HTTP GET' HTTP, HTTP GET, --libcurl FAIL 1401: '--libcurl for GET with various options' HTTP, HTTP GET, HTTP Basic auth, HTTP set cookie, cookies, --libcurl FAIL 1402: '--libcurl for simple POST' HTTP, HTTP POST, --libcurl FAIL 1403: '--libcurl for GET with query' HTTP, HTTP GET, --libcurl FAIL 1404: '--libcurl plus -F with 3 files, one with explicit type & encoder' HTTP, HTTP FORMPOST, HTTP file upload, --libcurl FAIL 1405: '--libcurl for FTP with quote ops' FTP, post-quote, pre-quote, --libcurl FAIL 1406: '--libcurl for SMTP' SMTP, --libcurl FAIL 1407: '--libcurl for POP3 LIST one message' POP3, Clear Text , LIST, --libcurl FAIL 1408: 'HTTP receive cookies over IPV6' HTTP, HTTP GET, IPv6, cookies, cookiejar FAIL 1409: 'Pass in string to -C' cmdline, FAILURE FAIL 1410: 'Pass in negative number to --max-time' cmdline, FAILURE FAIL 1411: 'HTTP with zero size file PUT' HTTP, HTTP PUT FAIL 1412: 'HTTP GET with --anyauth with two URLs (picking Digest)' HTTP, HTTP GET, HTTP Digest auth, --anyauth FAIL 1413: 'HTTP redirect with fragment in new URL' HTTP, HTTP GET, followlocation FAIL 1414: 'FTP PORT without SIZE or EPRT support' FTP, PORT, RETR, no SIZE FAIL 1415: 'Delete expired cookies' HTTP, HTTP GET, HTTP proxy, cookies, cookiejar, delete expired cookie FAIL 1416: 'HTTP GET with chunked Transfer-Encoding overflowed chunked size' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 1417: 'HTTP GET with chunked encoding and chunked trailer without CRs' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 1418: 'HTTP with --anyauth and connection reuse' HTTP, HTTP GET, HTTP NTLM auth, connection reuse FAIL 1419: 'HTTP with --anyauth (but no auth!) and connection reuse' HTTP, HTTP GET, HTTP NTLM auth, connection reuse FAIL 1420: '--libcurl for IMAP FETCH message' IMAP, Clear Text , FETCH, --libcurl FAIL 1421: 'Reusing HTTP proxy connection for two different host names' HTTP, HTTP GET, HTTP proxy FAIL 1422: 'HTTP GET with -O -J and Content-Disposition (empty file)' HTTP, HTTP GET, -J FAIL 1423: 'HTTP GET -o fname without Content-Disposition (empty file)' HTTP, HTTP GET FAIL 1424: 'HTTP GET -o fname without Content-Disposition (unmet time condition)' HTTP, HTTP GET, If-Modified-Since, -z FAIL 1427: 'too large -m timeout value' integer overflow FAIL 1428: 'HTTP over proxy-tunnel with --proxy-header and --header' HTTP, HTTP GET, HTTP CONNECT, HTTP Basic auth, proxytunnel FAIL 1429: 'HTTP GET with 999 response code' HTTP, HTTP GET, HTTP/0.9 FAIL 1430: 'HTTP GET with negative response code' HTTP, HTTP GET FAIL 1431: 'HTTP GET with single-digit response code' HTTP, HTTP GET FAIL 1432: 'HTTP GET with 100-digit response code and survive' HTTP, HTTP GET FAIL 1433: 'HTTP GET with 100-digit subversion number in response' HTTP, HTTP GET FAIL 1434: 'HTTP GET resume at exactly the existing file size is fine' HTTP, HTTP GET, Resume FAIL 1435: 'simple HTTP GET over Unix socket' HTTP, HTTP GET, UnixSockets FAIL 1436: 'HTTP requests with multiple connections over Unix socket' HTTP, HTTP GET, UnixSockets FAIL 1437: 'HTTP with duplicated WWW-Authenticate parameters' HTTP, HTTP GET, HTTP Digest auth FAIL 1438: 'Check if %{scheme} returns HTTP' HTTP, protocol, --write-out FAIL 1439: 'Check if %{http_version} returns 1.1' HTTP, --write-out FAIL 1440: 'Check --write-out with trailing %{' --write-out, FILE FAIL 1441: 'Check --write-out with trailing %' --write-out, FILE FAIL 1442: 'Check --write-out with trailing \' --write-out, FILE FAIL 1443: 'HTTP GET with -O and --remote-time' HTTP, HTTP GET, -O, --remote-time FAIL 1444: 'FTP with --remote-time' FTP, EPSV, RETR, --remote-time FAIL 1445: 'file:// with --remote-time' FILE, --remote-time FAIL 1447: 'Provide illegal proxy name' HTTP proxy, FAILURE FAIL 1448: 'Redirect following to UTF-8 IDN host name' HTTP, HTTP GET, IDN, followlocation, --resolve, --write-out FAIL 1449: 'FTP download range with integer overflow' FTP, PASV, RETR, Resume FAIL 1453: 'Too long tftp filename' Too long tftp filename, FAILURE FAIL 1455: 'HTTP GET when PROXY Protocol enabled' HTTP, HTTP GET, proxy, haproxy FAIL 1456: 'HTTP-IPv6 GET with PROXY protocol' HTTP, HTTP GET, proxy, haproxy, IPv6 FAIL 1457: 'Check if %{stderr} and %{stdout} switch between stdout and stderr.' HTTP, protocol, --write-out FAIL 1458: 'HTTP with wildcard --resolve' HTTP, HTTP GET, --resolve FAIL 1460: 'HTTP GET with -Ji and Content-Disposition with existing file' HTTP, HTTP GET, -J FAIL 1462: 'curl invalid category --help' --help FAIL 1463: 'curl file category --help' FILE, --help FAIL 1464: 'curl file category --help with lower/upper mix' FILE, --help FAIL 1465: '--libcurl for POST with binary content' HTTP, HTTP POST, --libcurl FAIL 1466: 'HTTP GET with 3-digit response and only digits in reason' HTTP, HTTP GET FAIL 1467: 'HTTP GET via SOCKS5 proxy via Unix sockets' HTTP, HTTP GET, SOCKS5, UnixSockets FAIL 1468: 'HTTP GET with host name using SOCKS5h via Unix sockets' HTTP, HTTP GET, SOCKS5, SOCKS5h, UnixSockets FAIL 1469: 'Space in FTP upload URL' FTP, URL, FAILURE FAIL 1471: 'Fail to resolve .onion TLD' Onion, Tor, FAILURE FAIL 1472: 'Fail to resolve .onion. TLD' Onion, Tor, FAILURE FAIL 1473: 'first HTTP header starts with white space' HTTP, HTTP GET, header line folding FAIL 1474: '--proto -all disables all protocols' HTTP, HTTP GET, --proto FAIL 1475: '-f and 416 with Content-Range: */size' HTTP, HTTP GET, Resume FAIL 1476: 'PSL violating cookie with mixed case domain and cookie domain property' HTTP, HTTP GET, cookies FAIL 1479: 'HTTP/1.1 response followed by an HTTP/0.9 response over the same connection' HTTP, HTTP/0.9 FAIL 1480: 'HTTP Continue response without final response' HTTP FAIL 1481: '--libcurl with TLS version options' HTTP, HTTP GET, --libcurl FAIL 1482: 'HTTP GET with double chunked in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1483: 'HTTP GET with double chunked in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1484: 'HTTP HEAD with response body to ignore' HTTP, HTTP HEAD FAIL 1485: 'get curlinfo on last header in callback' HTTP, HTTP GET FAIL 1487: 'HTTP GET with -J and Content-Disposition on 301' HTTP, HTTP GET, -J FAIL 1489: '-D sent to stderr' HTTP, HTTP GET FAIL 1490: '"upload" with file:// overwriting existing' FILE FAIL 1491: 'file:// don't overwrite self with --skip-existing' FILE FAIL 1492: 'HTTP GET with -J + --show-headers but no Content-Disposition:' HTTP, HTTP GET, -J, --show-headers FAIL 1493: 'HTTP GET with identity + chunked in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1494: 'HTTP GET with identity twice in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1495: 'HTTP GET with chunked + identity in TE header' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1496: 'HTTP GET with gzip + chunked transfer-encoding without being asked' HTTP, HTTP GET, chunked Transfer-Encoding, DELAY FAIL 1497: 'HTTP GET --retry on 503 error with output to /dev/null' HTTP, HTTP GET, retry FAIL 1498: 'HTTP PUT from stdin using period' HTTP, HTTP PUT, chunked Transfer-Encoding FAIL 1499: 'HTTP chunked encoding and chunked trailer, twice' HTTP, HTTP GET, chunked Transfer-Encoding FAIL 1500: 'curl_multi_wait' HTTP, HTTP GET, multi FAIL 1501: 'FTP with multi interface and slow LIST response' FTP, RETR, multi, LIST, DELAY FAIL 1502: 'HTTP multi with CURLOPT_RESOLVE, cleanup sequence UA' HTTP, HTTP GET, multi, CURLOPT_RESOLVE FAIL 1503: 'HTTP multi with CURLOPT_RESOLVE, cleanup sequence PA' HTTP, HTTP GET, multi, CURLOPT_RESOLVE FAIL 1504: 'HTTP multi with CURLOPT_RESOLVE, cleanup sequence UB' HTTP, HTTP GET, multi, CURLOPT_RESOLVE FAIL 1505: 'HTTP multi with CURLOPT_RESOLVE, cleanup sequence PB' HTTP, HTTP GET, multi, CURLOPT_RESOLVE FAIL 1506: 'HTTP GET connection cache limit (CURLMOPT_MAXCONNECTS)' HTTP, multi, verbose logs FAIL 1507: 'SMTP with multi interface and CURLE_ABORTED_BY_CALLBACK' SMTP, multi FAIL 1508: 'Close a multi handle without using it' HTTP, multi FAIL 1509: 'simple multi http:// through proxytunnel with authentication info' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1511: 'HTTP GET time conditions in repeated requests' HTTP, CURLOPT_TIMECONDITION FAIL 1513: 'return failure immediately from progress callback' PROGRESSFUNCTION, DELAY FAIL 1514: 'HTTP POST with read callback and unknown data size' HTTP, HTTP POST, Content-Length, chunked Transfer-Encoding FAIL 1515: 'caching of manual libcurl DNS entries after DNS cache timeout' HTTP, multi, FAILURE, resolve FAIL 1516: 'caching of manual libcurl DNS entries after dead connection' HTTP, multi, FAILURE, resolve FAIL 1517: 'HTTP POST, server responds before completed send' HTTP, POST, POST callback, slow callback, early response FAIL 1518: 'Extract Location: with broken URL' HTTP FAIL 1519: 'Extract Location: with broken absolute URL' HTTP FAIL 1520: 'SMTP with CRLF-dot-CRLF in data' SMTP FAIL 1521: 'Test all curl_easy_setopt and curl_easy_getinfo options' curl_easy_setopt FAIL 1522: 'CURLINFO_SIZE_UPLOAD with small SO_SNDBUF' CURLINFO_SIZE_UPLOAD FAIL 1523: 'CURLINFO_LOW_SPEED_LIMIT' CURLINFO_LOW_SPEED_LIMIT, DELAY FAIL 1524: 'HTTP PUT with 303 redirect' HTTP, HTTP PUT, followlocation FAIL 1525: 'CURLOPT_PROXYHEADER is ignored CURLHEADER_UNIFIED' HTTP, HTTP PUT, HTTP CONNECT, HTTP proxy, proxytunnel, CURLOPT_PROXYHEADER FAIL 1526: 'CURLOPT_PROXYHEADER: separate host/proxy headers' HTTP, HTTP PUT, HTTP CONNECT, HTTP proxy, proxytunnel, CURLOPT_PROXYHEADER FAIL 1527: 'Same headers with CURLOPT_HEADEROPT == CURLHEADER_UNIFIED' HTTP, HTTP PUT, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1528: 'Separately specified proxy/server headers sent in a proxy GET' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1529: 'HTTP request-injection in URL sent over proxy' HTTP, HTTP GET, HTTP proxy FAIL 1530: 'CURLOPT_OPENSOCKETFUNCTION returns bad socket' CURLOPT_OPENSOCKETFUNCTION FAIL 1531: 'CURLOPT_POSTFIELDS with binary data set after multi_add_handle' CURLOPT_POSTFIELDS FAIL 1532: 'Test CURLINFO_RESPONSE_CODE' HTTP, HTTP GET FAIL 1533: 'HTTP with CURLOPT_KEEP_SENDING_ON_ERROR and an early error response' HTTP, HTTP POST, CURLOPT_KEEP_SENDING_ON_ERROR FAIL 1534: 'CURLINFO_FILETIME init and reset' HTTP, HTTP GET, CURLINFO_FILETIME FAIL 1535: 'Test CURLINFO_RESPONSE_CODE CURLINFO_PROTOCOL' HTTP, HTTP GET FAIL 1536: 'Test CURLINFO_RESPONSE_CODE CURLINFO_SCHEME' HTTP, HTTP GET FAIL 1537: 'libcurl URL escape/unescape tests' URL escape FAIL 1538: 'libcurl strerror API call tests' strerror, verbose logs FAIL 1539: 'HTTP 1.0 POST with read callback and unknown data size' HTTP, HTTP POST, Content-Length, chunked Transfer-Encoding FAIL 1540: 'chunked with trailers and pausing the receive' HTTP, HTTP GET, CURLPAUSE_RECV, chunked Transfer-Encoding, Trailer:, DELAY FAIL 1541: 'chunked with trailers and pausing the receive' HTTP, HTTP GET, chunked Transfer-Encoding, Trailer:, DELAY FAIL 1542: 'connection reuse with CURLOPT_MAXLIFETIME_CONN' HTTP, connection reuse, persistent connection, CURLOPT_MAXLIFETIME_CONN, verbose logs FAIL 1543: 'CURLOPT_CURLU, URL with space and CURLINFO_EFFECTIVE_URL' HTTP, CURLOPT_CURLU FAIL 1545: 'use curl_formadd() data twice with unreadable file' HTTP, HTTP GET FAIL 1546: 'HTTP transfer-encoding wrong order' HTTP, HTTP GET, Transfer-Encoding FAIL 1547: 'FTP dir list PASV overriding PORT' FTP, PASV, LIST FAIL 1548: 'TELNET read stdin without upload file' TELNET FAIL 1549: 'Receive expired cookies and CURLINFO_COOKIELIST' HTTP, cookies FAIL 1550: 'verify setting pipelining blocklisting options' multi FAIL 1551: 're-run redirected transfer without setting URL again' multi FAIL 1552: 'IMAP multi transfer error without curl_multi_remove_handle' IMAP, Clear Text, FETCH FAIL 1553: 'IMAP cleanup before a connection was created' IMAP, Clear Text, FETCH FAIL 1554: 'HTTP with shared connection cache' HTTP, HTTP GET, shared connections FAIL 1555: 'verify api is protected against calls from callbacks' RECURSIVE_API_CALL, DELAY FAIL 1556: 'send long HTTP headers to header callback' HTTP, HTTP GET FAIL 1557: 'Remove easy handle in pending connections doesn't leave dangling entry' multi, crash FAIL 1558: 'CURLINFO_PROTOCOL for file:// transfer' curl_easy_getinfo, CURLINFO_PROTOCOL FAIL 1559: 'Set excessive URL lengths' CURLOPT_URL, verbose logs FAIL 1563: 'Make sure redirects to CURLPROTO_GOPHER are forbidden by default' GOPHER, HTTP GET, followlocation FAIL 1564: 'wakeup before poll with no easy handles' multi, wakeup FAIL 1565: 'wakeup from another thread' HTTP, HTTP GET, multi, multi-threaded, wakeup FAIL 1566: '--etag-compare that gets a 304 back shouldn't overwrite the file' HTTP, HTTP GET, --etag-compare FAIL 1567: 're-run redirected transfer without setting CURLU URL again' HTTP, URL API, CURLOPT_CURLU, CURLOPT_FOLLOWLOCATION FAIL 1568: 'HTTP with Digest authorization on custom CURLOPT_PORT' HTTP, HTTP GET, HTTP Digest auth FAIL 1569: 'FTP first type=A then regular URL' FTP, PASV, RETR FAIL 1570: 'FTP first type=D then regular URL' FTP, PASV, RETR FAIL 1571: 'CURLFOLLOW_OBEYCODE with custom POST method, 302 => GET' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1572: 'CURLFOLLOW_OBEYCODE with custom POST method, 308 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1573: 'CURLFOLLOW_OBEYCODE with custom GET method, 301 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1574: 'CURLFOLLOW_FIRSTONLY with custom GET method, 301 => GET' CURLFOLLOW_FIRSTONLY, CURLOPT_FOLLOWLOCATION FAIL 1575: 'CURLFOLLOW_FIRSTONLY with custom POST method, 308 => POST' CURLFOLLOW_FIRSTONLY, CURLOPT_FOLLOWLOCATION FAIL 1576: 'CURLFOLLOW_OBEYCODE with custom PUT method, 302 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1577: 'CURLFOLLOW_OBEYCODE with custom PUT method, 308 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1578: 'CURLFOLLOW_FIRSTONLY with custom PUT method, 302 => PUT' CURLFOLLOW_FIRSTONLY, CURLOPT_FOLLOWLOCATION FAIL 1579: 'CURLFOLLOW_OBEYCODE with custom PUT method, 303 => GET' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1580: 'CURLFOLLOW_FIRSTONLY with custom PUT method, 308 => PUT' CURLFOLLOW_FIRSTONLY, CURLOPT_FOLLOWLOCATION FAIL 1581: 'CURLFOLLOW_OBEYCODE with custom POST301 method, 301 => custom' CURLFOLLOW_OBEYCODE, CURLOPT_FOLLOWLOCATION FAIL 1590: 'IMAP cleanup before a connection was created' IMAP, Clear Text, FETCH FAIL 1591: 'HTTP PUT with trailers at the end' HTTP, HTTP PUT, CURLOPT_HTTPTRAILER_FUNCTION, CURLOPT_HTTPTRAILER_DATA FAIL 1593: 'HTTP custom header overrides CURLOPT_TIMECONDITION' HTTP, HTTP GET, HTTP replaced headers, CURLOPT_TIMECONDITION, If-Modified-Since FAIL 1594: 'HTTP Retry-After header parsing and extraction' HTTP, HTTP GET, HTTP replaced headers, CURLOPT_TIMECONDITION, If-Modified-Since FAIL 1595: 'HTTP Retry-After header extraction (without header)' HTTP, HTTP GET, HTTP replaced headers, CURLOPT_TIMECONDITION, If-Modified-Since FAIL 1596: 'HTTP Retry-After header parsing using a date' HTTP, HTTP GET, HTTP replaced headers, CURLOPT_TIMECONDITION, If-Modified-Since FAIL 1597: 'CURLOPT_PROTOCOLS_STR' CURLOPT_PROTOCOLS_STR FAIL 1598: 'HTTP POST with trailers at the end' HTTP, HTTP POST, CURLOPT_HTTPTRAILER_FUNCTION, CURLOPT_HTTPTRAILER_DATA FAIL 1599: 'FTP with netrc using no user but control code in password' FTP, netrc FAIL 1600: 'NTLM unit tests' unittest, NTLM FAIL 1601: 'MD5 unit tests' unittest, MD5 FAIL 1602: 'Internal hash create/add/destroy testing, exercising clean functions' unittest, hash FAIL 1603: 'Internal hash add, retrieval, deletion testing' unittest, hash FAIL 1604: 'Test Windows/MS-DOS filename sanitization' unittest FAIL 1605: 'Test negative data lengths as input to libcurl functions' unittest FAIL 1606: 'verify speedcheck' unittest, speedcheck FAIL 1607: 'CURLOPT_RESOLVE parsing' unittest, CURLOPT_RESOLVE FAIL 1608: 'verify DNS shuffling' unittest, curlopt_dns_shuffle_addresses FAIL 1609: 'CURLOPT_RESOLVE parsing' unittest, CURLOPT_RESOLVE FAIL 1610: 'SHA256 unit tests' unittest, SHA256 FAIL 1611: 'MD4 unit tests' unittest, MD4 FAIL 1612: 'HMAC unit tests' unittest, HMAC FAIL 1613: 'Send "OPTIONS *" with --request-target to a proxy' HTTP, HTTP proxy, --request-target FAIL 1614: 'noproxy and cidr comparisons' unittest FAIL 1615: 'SHA-512/256 unit tests' unittest, SHA-512/256 FAIL 1616: 'Internal uint_hash create/add/destroy testing, exercising clean functions' unittest, uint_hash FAIL 1620: 'unit tests for url.c' unittest, URL FAIL 1621: 'unit tests for stripcredentials from URL' unittest, stripcredentials FAIL 1633: '--retry with a 429 response and Retry-After:' HTTP, HTTP GET, RETRY-AFTER FAIL 1634: '--retry with a 429 response and Retry-After: and --fail' HTTP, HTTP GET, RETRY-AFTER FAIL 1635: '--retry with a 429 response and Retry-After: and --fail-with-body' HTTP, HTTP GET, RETRY-AFTER FAIL 1650: 'DoH parsing' unittest, DOH FAIL 1651: 'x509 parsing' unittest, x509 FAIL 1652: 'infof' unittest, infof FAIL 1653: 'urlapi port number parsing' unittest, urlapi FAIL 1654: 'alt-svc' unittest, Alt-Svc FAIL 1655: 'unit test for doh_req_encode' unittest, DOH FAIL 1656: 'Curl_x509_GTime2str unit tests' unittest, Curl_x509_GTime2str FAIL 1657: 'Curl_x509_getASN1Element unit tests' unittest, Curl_x509_getASN1Element FAIL 1658: 'unit test for doh_resp_decode_httpsrr' unittest, doh, httpsrr FAIL 1660: 'HSTS' unittest, HSTS FAIL 1661: 'bufref unit tests' unittest, bufref FAIL 1663: 'unit tests for interface option parsing' unittest, interface, bind FAIL 1664: 'unit tests for strparse.c string parsing functions' unittest, strparse FAIL 1670: '-w individual header output' HTTP, HTTP GET, -w, %header FAIL 1671: '-w header JSON output' HTTP, HTTP GET, -w, %header FAIL 1680: 'HTTP GET with explicit clobber' HTTP, HTTP GET, --clobber FAIL 1681: 'HTTP GET without clobber' HTTP, HTTP GET, --no-clobber FAIL 1682: 'HTTP GET without clobber and --output-dir' HTTP, HTTP GET, --no-clobber FAIL 1683: 'HTTP GET without clobber when 100 files already exist' HTTP, HTTP GET, --no-clobber FAIL 1704: 'HTTP/1 doing HTTP/2 Upgrade: getting an HTTP/2 101 response' HTTP, HTTP GET, HTTP/2 FAIL 1800: 'HTTP/2 upgrade refused' HTTP, HTTP/2 FAIL 1900: 'HSTS curl_easy_duphandle' HTTP, HSTS FAIL 1901: 'Chunked HTTP POST from callback with CURLOPT_POSTFIELDSIZE set' HTTP, HTTP POST, CURLOPT_READFUNCTION FAIL 1903: 'CURLOPT_COOKIEFILE then reset then set again' HTTP, cookies, CURLOPT_COOKIEFILE FAIL 1904: 'HTTP CONNECT with 204 response' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel FAIL 1905: 'CURLOPT_COOKIELIST set to "FLUSH" of a shared cookie object' HTTP, cookies, FLUSH FAIL 1906: 'CURLOPT_CURLU and CURLOPT_PORT' CURLOPT_CURLU, CURLOPT_PORT FAIL 1907: 'CURLINFO_EFFECTIVE_URL with non-scheme URL' CURLINFO_EFFECTIVE_URL FAIL 1909: 'HTTP GET --retry-all-errors to overcome partial transfer' HTTP, HTTP GET, retry FAIL 1910: 'HTTP credentials with newline and redirect' HTTP, HTTP Basic, CURLOPT_FOLLOWLOCATION FAIL 1911: 'verify that curl_easy_setopt() rejects too long string inputs' curl_easy_option FAIL 1912: 'Cross validate that gcc-typecheck macros match the option types.' curl_easy_option, typecheck FAIL 1913: 'FTP with NOBODY set, getting a missing file' FTP, CURLOPT_NOBODY FAIL 1914: 'FTP with NOBODY and FILETIME set, getting a missing file' FTP, CURLOPT_NOBODY, CURLOPT_FILETIME FAIL 1915: 'HSTS read/write callbacks' HTTP, HSTS, CURLOPT_HSTSREADFUNCTION FAIL 1916: 'MQTT PUBLISH with no POSTFIELDSIZE set' MQTT, MQTT PUBLISH FAIL 1917: 'MQTT PUBLISH with CURLOPT_POST set (no payload)' MQTT, MQTT PUBLISH FAIL 1918: 'curl_easy_option_by_name() and curl_easy_option_by_id()' curl_easy_option, curl_easy_option_by_name, curl_easy_option_by_id FAIL 1919: 'set CURLOPT_XOAUTH2_BEARER and do connection reuse' connection reuse FAIL 1940: 'curl_easy_header' curl_easy_header FAIL 1941: 'curl_easy_header with CONNECT' curl_easy_header, CONNECT FAIL 1942: 'curl_easy_header with 1xx response' curl_easy_header, CONNECT FAIL 1943: 'curl_easy_header with trailers' curl_easy_header, CONNECT FAIL 1944: 'curl_easy_header with redirect' curl_easy_header FAIL 1945: 'curl_easy_nextheader with server + CONNECT' curl_easy_header, CONNECT FAIL 1946: 'curl_easy_header with redirect but get headers from first request' curl_easy_header FAIL 1947: 'curl_easy_nextheader on second request after first did redirects' curl_easy_nextheader FAIL 1948: 'CURLOPT_POST after CURLOPT_UPLOAD reusing handle' HTTP, HTTP POST, HTTP PUT FAIL 1960: 'application hands over already connected socket' HTTP, CURLOPT_SOCKOPTFUNCTION, CURL_SOCKOPT_ALREADY_CONNECTED FAIL 1964: 'HTTP AWS_SIGV4 with X-Xxx-Date header set manually' HTTP, CURLOPT_AWS_SIGV4 FAIL 1977: 'CURLOPT_CURLU and CURLINFO_EFFECTIVE_URL' CURLOPT_CURLU, CURLINFO_EFFECTIVE_URL FAIL 1979: 'sigv4 canon_string unit tests' unittest, canon_string, aws-sigv4 FAIL 1980: 'sigv4 canon_query unit tests' unittest, canon_query, aws-sigv4 FAIL 2000: 'FTP RETR followed by FILE' FTP, PASV, FILE, multiprotocol FAIL 2001: 'HTTP GET followed by FTP RETR followed by FILE' HTTP, HTTP GET, FTP, PASV, FILE, multiprotocol FAIL 2002: 'HTTP GET followed by FTP RETR followed by FILE followed by TFTP RRQ' HTTP, HTTP GET, FTP, PASV, FILE, TFTP, TFTP RRQ, multiprotocol FAIL 2003: 'HTTP GET, FTP RETR, FILE, TFTP RRQ then again in rev order' HTTP, HTTP GET, FTP, PASV, FILE, TFTP, TFTP RRQ, multiprotocol FAIL 2005: 'netrc match with password only in file, no username. machine follows' HTTP, netrc FAIL 2023: 'HTTP authorization retry (Basic)' HTTP, HTTP GET, HTTP Basic auth FAIL 2024: 'HTTP authorization retry (Basic switching to Digest)' HTTP, HTTP GET, HTTP Basic auth, HTTP Digest auth FAIL 2025: 'HTTP authorization retry (Basic switching to NTLM)' HTTP, HTTP GET, HTTP Basic auth, HTTP NTLM auth, NTLM FAIL 2026: 'HTTP authorization retry (Digest switching to Basic)' HTTP, HTTP GET, HTTP Basic auth, HTTP Digest auth FAIL 2027: 'HTTP authorization retry (Digest)' HTTP, HTTP GET, HTTP Digest auth FAIL 2028: 'HTTP authorization retry (Digest switching to NTLM)' HTTP, HTTP GET, HTTP Digest auth, HTTP NTLM auth, NTLM FAIL 2029: 'HTTP authorization retry (NTLM switching to Basic)' HTTP, HTTP GET, HTTP Basic auth, HTTP NTLM auth, NTLM FAIL 2030: 'HTTP authorization retry (NTLM switching to Digest)' HTTP, HTTP GET, HTTP Digest auth, HTTP NTLM auth, NTLM FAIL 2031: 'HTTP authorization retry (NTLM)' HTTP, HTTP GET, HTTP NTLM auth, NTLM FAIL 2039: 'FTP (optional .netrc with 'default' override; no user/pass) dir list PASV' FTP, EPSV, LIST, netrc FAIL 2040: 'HTTP Basic authorization, then without authorization' HTTP, HTTP GET, HTTP Basic auth FAIL 2044: 'Attempt to set a default protocol that does not exist' --proto-default FAIL 2045: 'Set the default protocol to ftp for a schemeless URL' FTP, --proto-default FAIL 2046: 'Connection reuse with IDN host name' HTTP, HTTP GET, IDN, followlocation, --resolve, --write-out FAIL 2047: 'Connection reuse with IDN host name over HTTP proxy' HTTP, HTTP GET, HTTP proxy, IDN, followlocation, --write-out FAIL 2049: 'Connect to specific host' HTTP, HTTP GET, CURLOPT_CONNECT_TO FAIL 2050: '--connect-to via HTTP proxy (tunnel mode automatically)' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, CURLOPT_CONNECT_TO FAIL 2051: 'Connect to specific host: Reuse existing connections if possible' HTTP, HTTP GET, CURLOPT_CONNECT_TO FAIL 2052: '--connect-to: do not mix connections with and without a "connect to host"' HTTP, HTTP GET, CURLOPT_CONNECT_TO, --resolve FAIL 2053: 'Connect to specific host with IP addresses' HTTP, HTTP GET, CURLOPT_CONNECT_TO FAIL 2054: 'Connect to specific host: use the first "connect-to" string that matches' HTTP, HTTP GET, CURLOPT_CONNECT_TO FAIL 2055: '--connect-to via SOCKS proxy and HTTP proxy (tunnel mode automatically)' HTTP, HTTP GET, HTTP CONNECT, HTTP proxy, proxytunnel, CURLOPT_CONNECT_TO, SOCKS5 FAIL 2058: 'HTTP Digest with PUT, resumed upload, modified method and SHA-256' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 2059: 'HTTP Digest with PUT, resumed upload, modified method, SHA-256 and userhash' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 2060: 'HTTP Digest with PUT, resumed upload, SHA-512-256, userhash' HTTP, HTTP PUT, HTTP proxy, HTTP Digest auth, Resume, Content-Range, CUSTOMREQUEST FAIL 2061: 'HTTP with RFC7616 SHA256 Digest authorization' HTTP, HTTP GET, HTTP Digest auth FAIL 2062: 'HTTP with RFC7616 SHA-512-256 Digest authorization and userhash=false' HTTP, HTTP GET, HTTP Digest auth FAIL 2063: 'HTTP with RFC7616 SHA-256 Digest authorization and userhash=true' HTTP, HTTP GET, HTTP Digest auth FAIL 2064: 'HTTP with RFC7616 Digest authorization with bad password and SHA256' HTTP, HTTP GET, HTTP Digest auth FAIL 2065: 'HTTP with RFC7616 Digest, bad password, SHA-512-256 and userhash' HTTP, HTTP GET, HTTP Digest auth FAIL 2066: 'HTTP with RFC7616 Digest, bad password, SHA-256 and userhash' HTTP, HTTP GET, HTTP Digest auth FAIL 2067: 'HTTP POST --digest with SHA256 and user-specified Content-Length header' HTTP, HTTP POST, HTTP Digest auth FAIL 2068: 'HTTP POST Digest with SHA-512-256, userhash and set Content-Length' HTTP, HTTP POST, HTTP Digest auth FAIL 2069: 'HTTP POST Digest with SHA-256, userhash and set Content-Length header' HTTP, HTTP POST, HTTP Digest auth FAIL 2071: 'basic file:// file with "127.0.0.1" hostname' FILE FAIL 2072: 'file:// with Unix path resolution behavior for the case of extra slashes' FILE FAIL 2073: 'HTTP form posts with handle reset' HTTP, HTTP FORMPOST FAIL 2074: 'HTTP GET' HTTP, HTTP GET, AUTH OAUTHBEARER FAIL 2075: 'Verify usernames are not allowed in url' --disallow-username-in-url, HTTP FAIL 2076: 'HTTP with digest auth and URI contains query' HTTP, HTTP GET, HTTP Digest auth FAIL 2077: 'curl --fail --negotiate to unauthenticated service fails' HTTP, HTTP GET, GSS-API FAIL 2078: 'curl --negotiate should not send empty POST request only' HTTP, HTTP GET, GSS-API FAIL 2080: 'config file with overly long option' FILE, config FAIL 2081: 'Automatic referrer credential and anchor stripping check' HTTP, HTTP GET, referer, followlocation, --write-out FAIL 2082: 'Pre-request callback for HTTP' HTTP FAIL 2083: 'Pre-request callback for FTP' FTP FAIL 2084: 'Pre-request callback for HTTP with callback terminating transfer' HTTP FAIL 2085: 'Pre-request callback for HTTP with location following' HTTP, followlocation FAIL 2086: 'Pre-request callback for HTTP IPv6' HTTP, IPv6 FAIL 2200: 'MQTT SUBSCRIBE with user and password' MQTT, MQTT SUBSCRIBE FAIL 2201: 'MQTT PUBLISH with user and password valid' MQTT, MQTT PUBLISH FAIL 2202: 'MQTT PUBLISH with invalid user and password' MQTT, MQTT PUBLISH FAIL 2203: 'MQTT with error in CONNACK' MQTT, MQTT SUBSCRIBE FAIL 2204: 'MQTT SUBSCRIBE with user and password' MQTT, MQTT SUBSCRIBE FAIL 2205: 'MQTT with very long user name' MQTT, MQTT SUBSCRIBE FAIL 2306: 'HTTP GET reused handle with first header folded' HTTP, HTTP GET FAIL 2307: 'FTP retrieve a byte-range with end larger than file' FTP, EPSV, RETR, Range FAIL 2308: 'verify return code when write callback returns error' HTTP, HTTP GET FAIL 2309: 'HTTP with .netrc using duped easy handle' netrc, HTTP FAIL 2601: 'bufq unit tests' unittest, bufq FAIL 2602: 'dynhds unit tests' unittest, dynhds FAIL 2603: 'http1 parser unit tests' unittest, http1 FAIL 2604: 'Curl_get_pathname unit test' unittest FAIL 3002: 'SMTP multiple and invalid (first) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3003: 'SMTP multiple and invalid (last) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3004: 'SMTP multiple and invalid (middle) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3005: 'SMTP multiple invalid (all but one) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3006: 'SMTP with multiple invalid (all) --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3007: 'SMTP with invalid --mail-rcpt and --mail-rcpt-allowfails' SMTP FAIL 3008: '--output-dir' -O FAIL 3009: '--output-dir a non-existing directory' -O FAIL 3010: 'HTTP retry-after reset' HTTP, HTTP Basic, RETRY-AFTER FAIL 3011: '--output-dir with --create-dirs' -O FAIL 3012: '--output-dir with -J and -R' -O, -J, --output-dir, --remote-time FAIL 3013: 'Two --output-dir with --next in between' -O, -J, --output-dir FAIL 3014: 'Check if %{num_headers} returns correct number of headers' HTTP, --write-out FAIL 3015: 'HTTP GET -w num_headers with redirected fetch (2 connects)' HTTP, HTTP GET, followlocation, chunked Transfer-Encoding, --write-out FAIL 3016: 'GET a directory using file://' HTTP, HTTP GET, FILE FAIL 3017: 'MQTT SUBSCRIBE with pathological PUBLISH length' MQTT, MQTT SUBSCRIBE FAIL 3018: 'MQTT SUBSCRIBE with PUBLISH larger than --max-filesize' MQTT, MQTT SUBSCRIBE, --max-filesize FAIL 3019: 'HTTP with invalid --resolve syntax' HTTP, HTTP GET, --resolve FAIL 3020: 'HTTP with invalid --connect-to syntax' HTTP, HTTP GET, --connect-to FAIL 3025: 'CURLOPT_HTTP200ALIASES' HTTP, HTTP GET FAIL 3026: 'curl_global_init thread-safety' curl_global_init, thread-safe, slow FAIL 3027: 'Get a file via FTP but 550 after MDTM command' FTP, CURLOPT_FILETIME, MDTM fail FAIL 3028: 'HTTP GET when PROXY Protocol enabled behind a proxy' HTTP, HTTP CONNECT FAIL 3029: 'HTTP with multiple -D' HTTP FAIL 3030: 'HTTP with multiple transfers in one -D' HTTP FAIL 3031: '--output-dir with --create-dirs' --dump-header FAIL 3032: 'HTTP redirect loop 3x swsbounce test' HTTP, --location FAIL 3033: 'CURLOPT_FRESH_CONNECT=2' curl_easy_setopt, connection reuse, libtest FAIL 3034: 'Test reset resolves rewind failure' CURLOPT_READFUNCTION, curl_easy_reset, rewind FAIL 3100: 'RTSP Authentication check' RTSP, RTSP Basic auth FAIL 3101: 'HTTP auth without redirection protocols' HTTP, HTTP Basic auth FAIL 3103: 'CURLOPT_COOKIELIST without expiry' cookies FAIL 3104: 'CURLOPT_COOKIELIST with Netscape format' cookies FAIL 3105: 'curl_multi_remove_handle twice' curl_multi_remove_handle FAIL 3200: 'curl_get_line unit tests' unittest, curl_get_line FAIL 3201: 'HTTP GET when PROXY Protocol enabled and spoofed client IP' HTTP, HTTP GET, proxy, haproxy FAIL 3202: 'HTTP-IPv6 GET with PROXY protocol with spoofed client IP' HTTP, HTTP GET, proxy, haproxy, IPv6 FAIL 3203: 'GET a directory using file://' HTTP, HTTP GET, FILE FAIL 3204: 'Use --etag-compare and --etag-save on an existing file' HTTP, HTTP GET FAIL 3205: 'cipher suite name lookup' unittest, cipher_suite FAIL 3209: 'Upload message via IMAP with upload flags' IMAP, Clear Text, APPEND, UPLOAD FAIL 3210: 'Upload message unread via IMAP' IMAP, Clear Text, APPEND, UPLOAD FAIL 3211: 'uint_bset unit tests' unittest, uint_bset FAIL 3212: 'uint_bset unit tests' unittest, uint_bset FAIL 3213: 'uint_spbset unit tests' unittest, uint_spbset FAIL 3214: 'struct size checks' unittest, size FAIL 3215: 'SMTP DSN' SMTP DSN TESTFAIL: These test cases failed: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 314 315 316 317 318 319 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 357 360 361 362 365 366 367 368 369 370 371 372 373 374 376 378 379 380 381 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 402 405 411 415 416 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 434 435 436 440 441 442 443 444 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 467 468 469 470 471 473 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 507 508 509 510 511 512 513 514 515 516 517 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 559 561 562 563 564 565 566 567 568 569 570 571 572 574 575 576 577 578 579 580 581 584 585 586 588 589 590 591 592 593 595 596 597 598 599 632 643 645 646 647 648 649 650 651 652 653 654 655 658 659 660 661 662 663 666 667 668 669 670 671 672 673 674 675 676 677 679 680 681 682 683 684 685 686 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 746 747 748 749 750 751 752 754 755 756 757 759 760 761 762 763 784 785 786 787 788 789 790 791 792 793 794 796 797 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 824 825 826 827 828 829 830 831 833 834 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 870 871 872 873 874 875 876 877 879 880 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 935 936 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 962 963 964 965 966 967 968 969 973 974 975 976 977 978 979 980 981 982 983 984 985 986 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1084 1085 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1098 1099 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1114 1115 1116 1117 1118 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1133 1134 1136 1137 1138 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1164 1166 1168 1170 1171 1172 1174 1176 1178 1180 1181 1183 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1210 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1273 1274 1277 1278 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1308 1309 1310 1311 1312 1313 1314 1315 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1447 1448 1449 1453 1455 1456 1457 1458 1460 1462 1463 1464 1465 1466 1467 1468 1469 1471 1472 1473 1474 1475 1476 1479 1480 1481 1482 1483 1484 1485 1487 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1511 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1590 1591 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1620 1621 1633 1634 1635 1650 1651 1652 1653 1654 1655 1656 1657 1658 1660 1661 1663 1664 1670 1671 1680 1681 1682 1683 1704 1800 1900 1901 1903 1904 1905 1906 1907 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1940 1941 1942 1943 1944 1945 1946 1947 1948 1960 1964 1977 1979 1980 2000 2001 2002 2003 2005 2023 2024 2025 2026 2027 2028 2029 2030 2031 2039 2040 2044 2045 2046 2047 2049 2050 2051 2052 2053 2054 2055 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2071 2072 2073 2074 2075 2076 2077 2078 2080 2081 2082 2083 2084 2085 2086 2200 2201 2202 2203 2204 2205 2306 2307 2308 2309 2601 2602 2603 2604 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3100 3101 3103 3104 3105 3200 3201 3202 3203 3204 3205 3209 3210 3211 3212 3213 3214 3215 make[1]: *** [Makefile:834: nonflaky-test] Error 1 make[1]: Leaving directory '/build/curl/src/build-curl/tests' make: *** [Makefile:1096: test-nonflaky] Error 2 ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list curl-8.16.0-1-riscv64-build.log curl-8.16.0-1-riscv64-check.log curl-8.16.0-1-riscv64-prepare.log sent 81 bytes received 752,358 bytes 501,626.00 bytes/sec total size is 10,961,046 speedup is 14.57